在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境
原文: How to install OpenERP 8.0 Alpha on a fresh Debian / Ubuntu server.
OpenERP的安装,可以有多种方式,通过添加源,到 http://nightly.openerp.com 找对应版本,然后:
sudo apt-get install -f openerp
即可。这种方式会自动安装依赖包,当然postgresql还要先装好。
也可以下载deb包用dpkg -i安装。找到的引文使用bzr下载branch,发现下载addons总是出错。我改造一下,直接用源码安装成功。
打开防火墙80、22端口,我是自己测试用的,索性把防火墙关了。
安装用到的软件
$ sudo apt-get install postgresql-9.3 nginx uwsgi
安装必要的依赖包:
$ sudo apt-get install python-dev build-essential postgresql libpq-dev uwsgi nginx bzr git graphviz ghostscript postgresql-client libxml2-dev libxslt1-dev libjpeg62-dev zlib1g-dev python-virtualenv python-pip gettext libldap2-dev libsasl2-dev uwsgi-plugin-python python-lxml python-pypdf
最后两个,lXml和pyPdf是我添加的。我是先通过deb方式安装再卸载,所有依赖包都装好了。
$ sudo mkdir /var/www
$ sudo chown www-data:www-data /var/www
; 创建/var/www目录并将它的所有权给www-data用户
$ cd /srv
$ sudo mkdir openerp
; 我们在/srv/openerp目录下安装
$ sudo chown MY_USERNAME openerp
; MY_USERNAME是自己的用户名,比如我的是mack
$ cd openerp
; $ bzr branch lp:openerp-web
; $ bzr branch lp:openobject-server server ; 下载到server目录,和直接下载改名方式一致
; $ bzr branch lp:openobject-addons
; 原文通过bzr下载,上面已经解释,有问题;我直接下载源码包
$ wget http://nightly.openerp.com/trunk/nightly/src/openerp-8.0dev-latest.tar.gz
$ tar -xvf openerp-8.0dev-latest.tar.gz
; 解压缩
$ mv openerp-8.0dev-20140314-000102(解压缩出来的当前版本名字) server
; 改个名字方便些。因为下载需要时间,可以开另外一个tty终端做下面的事情,新版本也可以直接用cp复制到server就升级了。
$ sudo -u postgres -s createuser openerp -P
# ENTER DESIRED DB PASSWORD
; 创建postgres数据库中的用户openerp,#后面提示输入密码,有两次。如果已经有了,也可以用原来的用户,记得和下文数据库配置对应就好。
$ sudo -u postgres -s createdb openerp_test -O openerp
; 创建openerp_test数据库。如果不创建也可以,安装好之后用OpenERP自己的数据库管理功能新建数据库。
; $ virtualenv --no-site-packages env
; $ source env/bin/activate
; 这两句是在虚拟环境中进行配置,我也搞不懂,我在实机上装就不需要了。
$ pip install pypdf
$ pip install lxml; 原文漏了这句,搞了我好久。
; 确认下载解压改名完成
$ cd server
$ python setup.py develop
; 其实这一步也是配置环境,如果缺少依赖包会自动下载,或者根据提示自己安装
; $ sudo ln -s /srv/openerp/openerp-web/addons/* /srv/openerp/server/openerp/addons/
; $ sudo ln -s /srv/openerp/openobject-addons/* /srv/openerp/server/openerp/addons/
; 原文是分开的三个文件夹,我这里只有一个包,就不需要这两句
创建并编辑wsgi-openerp.py文件:
$ vim wsgi-openerp.py
import openerp
openerp.multi_process = True # Nah!
openerp.conf.server_wide_modules = ['web'] conf = openerp.tools.config
conf['addons_path'] = '/srv/openerp/server/openerp/addons'
conf['db_name'] = 'openerp_test'
conf['db_host'] = 'localhost'
conf['db_user'] = 'openerp'
conf['db_port'] = 5432
conf['db_password'] = 'MY_DB_PASSWORD' # 注意数据库名、用户名、密码都要对应 application = openerp.service.wsgi_server.application
openerp.service.server.load_server_wide_modules()
创建并编辑openerp.conf文件,即openerp的配置文件。这种方式直接把配置加入运行环境了。
$ vim openerp.conf
[options]
addons_path=/srv/openerp/server/openerp/addons
db_name=openerp_test
db_host=localhost
db_user=openerp
db_port=5432
db_password=MY_DB_PASSWORD; # 注意数据库名、用户名、密码都要对应
新建一个config目录,用来放置uwsgi和nginx配置文件:
$ mkdir config
然后在config目录下新建并编辑uwsgi -openerp .ini文件
$ vim config/uwsgi-openerp.ini
[uwsgi]
chdir=/srv/openerp/-server/
uid=www-data
gid=www-data
# virtualenv=/srv/openerp/env ; 我没有使用虚拟环境,所以注销这句
socket=/srv/openerp/uwsgi.sock
wsgi-file=wsgi-openerp.py
master=True
vacuum=True
max-requests=5000
buffer-size=32768
$ vim config/nginx-openerp.conf
server {
listen 80;
server_name MY_HOSTNAME; # 主机名,可以随便填,如果有机器域名就填完整域名
client_max_body_size 50M;
keepalive_timeout 120;
location / {
include uwsgi_params;
uwsgi_read_timeout 300;
uwsgi_pass unix:/srv/openerp/uwsgi.sock;
}
}
如果已经配置了nginx,那么要注意端口配置区分开,或者使用虚拟目录,或者用域名区分。
把配置文件关联起来:
$ sudo ln -s /srv/openerp/server/config/uwsgi-openerp.ini /etc/uwsgi/apps-enabled/openerp.ini
$ sudo ln -s /srv/openerp/server/config/nginx-openerp.conf /etc/nginx/sites-enabled/openerp
将/etc/nginx/nginx.conf中的这句“ server_names_hash_bucket_size 64 ”的注释去掉,如果有的话:)。
下面配置一下:
$ sudo chown -R www-data:www-data /srv/openerp
$ sudo su www-data -s /bin/bash
; 进入www-data用户环境
$ cd /srv/openerp/openobject-server/
; $ source ../env/bin/activate 在虚拟环境下需要
$ ./openerp-server -c openerp.conf -d openerp_test -u all --stop-after-init
; 这是把配置信息写入OpenERP,如果运行中有红色的ERROR提示,就说明失败了,需要再检查。
; 配置完退出www-data用户环境,ctrl-D或者$ exit
最后重起服务
$ sudo service uwsgi restart
$ sudo service nginx restart
现在就可以访问机器进入OpenERP网页界面了,初次选择数据库为openerp_test(如果前面建立了的话)用户名和密码默认都是admin。



; 虚拟环境,我在实机上装就不需要了。
在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境的更多相关文章
- 在Ubuntu 12 服务器上源码安装 OpenERP 8.0
原文:http://vivianyw.blog.163.com/blog/static/134547422201421112349489/ 1. 安装SSH: sudo apt-get install ...
- 在Ubuntu Server 14.04上源码安装Odoo 9.0
1. 更新Ubuntu服务器软件源 sudo apt-get update #更新软件源 sudo apt-get dist-upgrade #更新软件包,自动查找依赖关系 sudo shutdown ...
- [原创]在Centos7.2上源码安装PHP、Nginx、Zentao禅道
版本 操作系统:CentOS Linux release 7.2.1511 (Core) PHP:5.6.33 Nginx:1.12.2 MySQL:5.6.38(192.168.1.103的Wind ...
- ubuntu php5.6源码安装
本系列的lnmp的大框架基本上是按照http://www.linuxzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan ...
- ubuntu mysql5.7源码安装
本系列的lnmp的大框架基本上是按照http://www.linuxzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan ...
- Centos6.6上源码安装Nodejs V4版本
本来就是想在vps上装一个Ghost博客,这个博客依赖的是Nodejs,然后推荐的是V4版本.然后我就对着官网的步骤安装,发现根本没有Centos6 i386的资源了(64位的还是有的), 我只能在那 ...
- [笔记] Ubuntu 18.04源码安装caffe流程
虽然Ubuntu 18.04可以通过apt安装caffe,但是为了使用最新的代码,还是值得从源码安装一遍的. 安装环境 OS: Ubuntu 18.04 64 bit 显卡: NVidia GTX 1 ...
- centos上源码安装clang 3.8
之前想在centos系统上安装clang 3.6版本,由于yum上版本太低,想通过源码编译安装.按照网上说的源码安装步骤,下好llvm.clang.clang-tools-extra和compiler ...
- CentOS源码安装 Tomcat/8.0.24
依个人的习惯,喜欢将源码安装在/usr/local这个目录下面: 第一步:下载源码 wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.2 ...
随机推荐
- HDU 2993 MAX Average Problem(斜率DP经典+输入输出外挂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2993 题目大意:给出n,k,给定一个长度为n的序列,从其中找连续的长度大于等于k的子序列使得子序列中的 ...
- K8s的内部Pod之间都不通,搞了快两天
试了不亚于二十种方法,绝望的时候,回到了家. 想手工安装,又遇到flannel在手工下,会更改docker启动项的不完善. cni,或许就是k8s的大方向吧. 最后,抱着试一试的态度,将flannel ...
- javascript高程笔记:逻辑与和逻辑或
逻辑与和或 逻辑与 当 && 前后两个操作数都是布尔值,无可厚非,同时为true才为true.与其他强类型语言不同的是,javascript逻辑与前后的操作数可以应用于任何类型. 而且 ...
- js禁止页面所有a链接访问
<script type="text/javascript"> var arr=document.getElementsByTagName("a") ...
- 洛谷P3620 [APIO/CTSC 2007] 数据备份 [堆,贪心,差分]
题目传送门 题目描述 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽 ...
- 关于Spring和SpringMVC的一点感悟
一年前,我们项目最开始使用的SSH(spring+springmvc+hibernate),那时候项目经理搭建好了框架就交给了我们,后来在一次配置事务的过程中,出现了大名鼎鼎的no seesion. ...
- 丑数(LintCode)
丑数 设计一个算法,找出只含素因子3,5,7 的第 k大的数. 符合条件的数如:3,5,7,9,15...... 您在真实的面试中是否遇到过这个题? Yes 样例 如果k=4, 返回 9 挑战 要求时 ...
- 【tomcat】tomcat远程调试
修改tomcat bin目录下的catalina.sh,增加下面这行: CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=9 ...
- 【LA 3641】 Leonardo's Notebook (置换群)
[题意] 给出26个大写字母组成 字符串B问是否存在一个置换A使得A^2 = B [分析] 置换前面已经说了,做了这题之后有了更深的了解. 再说说置换群. 首先是群. 置换群的元素是置换,运算时是 ...
- [P4064][JXOI2017]加法(贪心+树状数组+堆)
题目描述 可怜有一个长度为 n 的正整数序列 A,但是她觉得 A 中的数字太小了,这让她很不开心. 于是她选择了 m 个区间 [li, ri] 和两个正整数 a, k.她打算从这 m 个区间里选出恰好 ...