关键词:odoo OpenERP 部署 linux
这是笔者的第一篇技术博客,希望作为一个良好的开始,能在此和大家分享自己遇到的问题以及收获的经验。
最近由于实习的关系,接触到了odoo(OpenERP)的二次开发,希望能一边学习一边和大家分享经验,也算是督促自己学习的一种方式。
关于odoo的介绍就免了,也不是关心的重点,有需要的同学可以去自行搜索。
由于实习的地方是搞开源软件的,操作系统用的都是linux,所以整套odoo的系统都需要部署在linux上。因此这篇文章作为我的第一篇文章,就来说说如何在linux上部署odoo 8(貌似在windows上安装odoo非常简单的样子,要是搞不定的完全可以用windows的)。
(使用的系统是Ubuntu 14.04 Desktop LTS)
我自己是照着公司老司机给发的教程安装的,原文作者为Alan Lord,地址:http://www.theopensourcerer.com/2014/09/how-to-install-openerp-odoo-8-on-ubuntu-server-14-04-lts/ 翻译者为 odoo中文社区 郑州-Dean。安装时有部分内容略有出入,在文中会标明。
步骤:
1. 安装ubuntu
2. 创建系统用户odoo
3. 安装postgreSQL
4. 安装py库以及wkhtmltopdf
5. 安装odoo
6. 配置odoo
7. 安装启动脚本
8. 测试服务器
9. 自动化odoo的启动关闭
第一步:安装ubuntu(这步没啥好说的 直接跳过)
第二步:创建一个系统用户来拥有odoo
运行:
sudo adduser --system --home=/opt/odoo --group odoo
这句话执行之后,将为系统添加一个名为odoo的系统用户,并将其home目录设置为/opt/odoo
这个用户名和home目录的位置都是可以自定义的,本文仅仅是举个例子,并不是说不按照这种方式就不能正常使用。不过原文作者人为,使用这种方式可以比较方便的操作。
系统用户将不能被用来直接进行登录,但是我们可以在必要的时候切换至该用户执行需要某些权限的操作。
当需要切换用户时候可以执行:
sudo su - odoo -s /bin/bash
输入完这个命令之后,系统会将当前用户切换为odoo
第三步:安装配置postgreSQL
打开终端 执行命令:
sudo apt-get install postgresql
当出现输入确认的时候请按Y 便可安装完毕。
安装完postgreSQL之后需要配置系统的postgres账户的密码。这个账户将作为postgreSQL的数据库用户,同时也是系统账户而存在。
这里需要执行命令:sudo passwd postgres (也许这一步并不是必须的,原文中并没有为postgres账户设定密码的步骤,所以请各位酌情使用)
系统会提示你输入自己的密码,之后再为postgres账户 设定密码。设定完密码之后,
可以执行:sudo su - postgres 切换当前用户,
之后再输入:psql -version
如果成功输出了版本信息,则账户配置成功。
完成后退出至自己的账户(Ctrl + D 连打),
执行:sudo apt-get update
以及:sudo apt-get dist-upgrade
来更新系统的软件包。
更新完成之后,可以重启一下,使所有的更改都可以被应用
可以通过执行:sudo shutdown -r now 完成重启操作
接下来切换至postgres账户,
然后执行命令:createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
执行之后,系统会提示你输入两次密码(为新账户设定密码)。这样系统变回创建一个名为odoo的数据库用户,odoo程序将以这个身份来访问数据库。
请注意 需要记住这里设定的密码,因为之后会用到它。
最后退出postgres账户。
第四步:安装所需的python库以及wkhtmltopdf(将html转换为pdf的插件)
Odoo是基于python的软件,ububtu系统自带python2.7的运行环境。但是如果想让odoo正常运行,还需要安装一些其它的运行库。
可以将如下语句保存为installLib.sh:
sudo apt-get install python-dateutil python-decorator python-docutils python-feedparser python-gdata python-gevent python-imaging python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-werkzeug python-xlwt python-yaml
之后为其赋予可执行权限(如保存位置为“~/桌面”的话 可以先执行命令:cd ~/桌面, 之后执行命令 chmod +x installLib.sh 便可为文件赋予可执行权限)
接下来执行命令 /bin/bash installLib.sh 系统会询问是否继续 选Y则会继续安装工作。
接下来安装wkhtmltopdf
执行命令:
wget http://sourceforge.net/projects/wkhtmltopdf/files/0.12.2.1/wkhtmltox-0.12.2.1_linux-wheezy-amd64.deb (命令中没有换行 wget之后打一个空格之后输入链接)
下载所需要的deb文件
(此处的下载链接有可能失效,若失效则请至:
http://sourceforge.net/projects/wkhtmltopdf
寻找最新的安装包,下载下来的deb可直接安装)
执行命令:sudo dpkg -i wkhtmltox-0.12.2.1_linux-wheezy-amd64.deb 进行解包
(此处有可能因为某些原因导致系统提示缺少xx库,导致没能成功安装的情况,比如笔者提示了以下错误
这个时候可以使用sudo apt-get install (缺少的库的名字,比如这里就是xfonts-75dpi) 将其缺少的库安装完整后 再次执行dpkg命令即可)
接下来 复制文件至/usr/bin
执行:sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
之后,更改文件所有这为root用户,并增加可执行属性
sudo chown root:root /usr/bin/wkhtmltopdf
sudo chmod +x /usr/bin/wkhtmltopdf
接下来我们测试一下是不是安装完成:
在保证网络连接的情况下,
执行以下命令:wkhtmltopdf www.baidu.com ~/baidu.pdf
如果能成功输出pdf文件至home目录则意味着安装成功
至此,odoo 8 需要的依赖遍已经安装完毕。
第五步 安装odoo服务器
首先安装git软件:sudo apt-get install git (git是什么就不用介绍了吧…… Odoo的代码在github上面有,这里面就是要clone下来git上面的odoo的代码)
切换到odoo用户:sudo su - odoo -s /bin/bash
接下来使用git软件从github网站下载一套8.0分支的代码:
执行:git clone https://www.github.com/odoo/odoo --branch 8.0 --single-branch /opt/odoo/server 命令
后面的路径将是你的代码的根路径(原文中使用的是.来表示当前路径 但是笔者在clone的时候总是会出现如下错误:
也许是因为有什么隐藏文件啥的吧 笔者也没有仔细看 还是建议clone到一个单独的目录,以免出现混乱。
整个过程可能会下载个几百M的文件,根据网速不同需要的时间也不一样。
当下载结束之后,退出odoo用户。
(需要注意的是 下载完毕之后,最好看看文件是不是真的下下来了 笔者在单位第一次安装的时候,看他下了半天文件,最后一到下载目录一看居然是空的。现在怀疑可能是当时路径设置有问题,所以下载完之后请一定自行确认一下)
第六步 配置odoo:
Odoo有自己的默认配置文件,在这里可以进行一些自定义的改动,让odoo可以在系统上更好的运行。
Odoo默认的配置文件的位置是(odoo根目录)/debian/openerp-server.conf,为了保证之后的更改不会直接影响系统文件,我们先将其拷贝到/etc文件夹下:
执行:
sudo cp /opt/odoo/server/debian/openerp-server.conf /etc/odoo-server.conf
接下来更改其所有权及权限
sudo chown odoo: /etc/odoo-server.conf
sudo chmod 640 /etc/odoo-server.conf
以上命令将使此文件被odoo用户及用户组所有,且只有odoo用户和root用户可以读取。
接下来用文本编辑器编辑它,可以使用vim、nano、gedit等文本编辑器。笔者作为初学者,觉得使用gedit比较方便(毕竟有图形界面),所以在这里以gedit为例。
执行命令:sudo gedit /etc/odoo-server.conf, 会打开如下窗口:
将其中的db_password一行等号之后的部分改为之前配置postgreSQL时候输入的密码。
然后将addons_path一行等号之后的部分改为 /opt/odoo/addons
接下来再在文件末尾添加一行
Logfile = /var/log/odoo/odoo-server.log
保存退出
接下来尝试启动odoo服务器,看其运行是否正常
切换到odoo用户:sudo su - odoo -s /bin/bash
然后执行 ~/server/openerp-server
如果命令行界面没有出现error信息,就打开浏览器,输入地址127.0.0.1:8069,看是否能出现odoo的界面,如下图:
如果能看到这个的话,说明你之前的安装是成功的,接下来我们来做最后一步。
停止odoo服务器只需要按Ctrl + C即可。
哦对了,别忘了接下来操作之前还要先退出odoo用户。
第七部:安装启动脚本
Odoo的启动过程比较复杂,不过可以通过一个脚本来进行控制。Odoo自带了一个现成的脚本,不过笔者在并没有找到,所以咱们直接下载原文作者修改好的脚本文件。
执行:
wget (这里也是个空格而不是回车) http://www.theopensourcerer.com/wp-content/uploads/2014/09/odoo-server
之后拷贝到/etc/init.d目录下
Sudo cp ./odoo-server /etc/init.d/odoo-server
修改所有者和权限:
sudo chmod 755 /etc/init.d/odoo-server
sudo chown root: /etc/init.d/odoo-server
打开文件:sudo gedit /etc/init.d/odoo-server
出现如下文件内容:
找到其中“DAEMON”一行,将等号后内容改为自己刚才用来启动odoo的程序的路径,其余的根据自己情况酌情修改,一般情况下用默认的即可。
接下来我们创建日志目录
sudo mkdir /var/log/odoo
Sudo chown odoo:root / var/log/odoo
好了 配置基本就算完成了
第八步:测试服务器
启动odoo服务器 只需要输入 sudo /etc/init.d/odoo-server start
查看日至文件可以使用命令 less /var/log/odoo/odoo-server.log
停止只需输入 sudo /etc/init.d/odoo-server stop 即可
(在这里笔者得说一下,照着原文的做法,笔者使用脚本启动之后,查看日志中出现了很多错误信息,打开页面也会显示500错误,说明可能配置还是有问题。不过依旧可以在使用odoo用户登录之后 使用~/server/openerp-server 或者 python ~/server/odoo.py来启动。这种情况下,如果想加入自定义插件目录的话 只需要在后面加上参数 --addons-path (目录名)即可
第九部:自动化odoo的启动关闭
执行命令:sudo update-rc.d odoo-server defaults 即可
此时如果你重新启动的话,odoo服务应该已经在运行了。可以通过执行命令 ps aux | grep odoo 来查看信息。
好了,就说这些吧,接下来笔者会开始学习模块开发,希望能和大家继续分享经验。