Centos下安装Odoo

安装CentOS6.8后,python是2.6.6版的,先升级到2.7.13最新版。

先yum install gcc。才能编译源代码。

1.到python官网下载最新的Python-2.7.13.tgz。解压

tar -xvf Python-2.7.13.tgz

2.创建目录/usr/lib/python2.7

3.cd Python-2.7.13 #进入解压后的Python目录

4../configure --prefix=/usr/lib/python2.7

5.make && make install #等待安装

6.make的时候虽然python2.7 build完成了,但是报错。

building dbm using gdbm
INFO: Can't locate Tcl/Tk libs and/or headers

Python build finished, but the necessary bits to build these modules were not found:
_curses            _curses_panel      _sqlite3       
_ssl               _tkinter           bsddb185       
bz2                dl                 imageop        
readline           sunaudiodev        zlib           
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

running build_scripts
running install_lib
copying build/lib.linux-x86_64-2.7/_sysconfigdata.py -> /usr/lib/python2.7/lib/python2.7/lib-dynload
copying build/lib.linux-x86_64-2.7/_sysconfigdata.pyo -> /usr/lib/python2.7/lib/python2.7/lib-dynload

查网上说是tcl-devel和tk-devel没有安装

yum install tcl-devel tk-devel。

_curses            _curses_panel      _sqlite3       
_ssl               _tkinter           bsddb185       
bz2                dl                 imageop        
readline           sunaudiodev        zlib

这些类库,可以用

yum search 命令来查找包名,如:yum search sqlite3

yum install openssl-devel

继续make,其他错误忽略

vim /etc/profile.

加上 export PATH="/usr/lib/python2.7/bin:$PATH"   (注意=两边不能有空格)

source /etc/profile

网上有的文章说CentOS升级后没法使用yum了,说yum只支持python2.6。要把/usr/bin的python备份后yum要修改yum #! /usr/bin/python成#! /usr/bin/python2.6。我安装的CentOS6.8好像不需要这样操作。

https://pip.pypa.io/en/stable/installing/

安装pip。

1.下载get-pip.py。

2.运行python get-pip.py,安装完成pip,

安装odoo的需要的python包

cd到odoo代码目录下

#pip install -r requirements.txt

其他包安装都比较顺利,

安装到reportlab-3.3.0的时候,就一直停住了,到官网下载reportlab-3.3.0.tar.gz之后,本地安装也是停住了,一开始以为要vpn,vpn也不行。后来用pip install -v命令发现安装一直停在download t1 fonts curves上。后来查google看到有人把reportlab下的rl_addons目录删除后,安装包成功。我是easy_install停住的过程中,按ctrl+c。结果也安装成功下去了。

但是有后遗症,待会儿叙述。

安装wkhtmltopdf,

odoo打印pdf的话,要安装wkhtmltopdf,http://wkhtmltopdf.org/downloads.html下载linux 64bit的包,

wkhtmltox-0.12.4_linux-generic-amd64.tar.xz直接解压到/usr/lib/wkhtmltox,

然后#cp /usr/lib/wkhtmltox/wkhtmltopdf /usr/bin

#chown root:root /usr/bin/wkhtmltopdf

#chmod +x /usr/bin/wkhtmltopdf

测试#wkhtmltopdf http://www.baidu.com baidu.pdf能出来pdf说明安装成功了。

然后重新启动odoo。pdf正常出来了。

但是pdf条码没有显示出来。

其中一个模块报错说msyh.ttf字体没有,按照网上的方法安装了字体,

cp msyh.ttf /usr/share/fonts/

chmod 644 /usr/share/fonts/msyh.ttf

mkfontscale

mkfontdir

fc-cache -fv

但是另外的条码打印的地方又显示RenderPMError: Can't setFont(Times-Roman) missing the T1 files

考虑到是不是当时reportlab安装的时候download t1 fonts curves的问题。

后来google到人家的解决方法

Download and uncompress in /path/to/your/python/site-packages/reportlab/fonts these file

http://www.reportlab.com/ftp/fonts/pfbfer.zip

Restart odoo server and try

安装postgresql

1.到https://yum.postgresql.org/repopackages.php#pg94下载rpm

yum install pgdg-centos94-9.4-3.noarch.rpm。

yum list postgres*可以列出可用的安装包

yum install postgres94-server

[root@MiWiFi-R1D-srv /]# service postgresql-9.4 initdb
正在初始化数据库:                                         [确定]
[root@MiWiFi-R1D-srv /]# chkconfig postgresql-9.4 on
[root@MiWiFi-R1D-srv /]# service postgresql-9.4 restart
停止 postgresql-9.4 服务:                                 [确定]
启动 postgresql-9.4 服务:                                 [确定]
[root@MiWiFi-R1D-srv /]#
10.1 修改postgresql.conf 文件
# vi /var/lib/pgsql/9.4/data/postgresql.conf
将listen_addresses 前的#去掉,并将 listen_addresses = 'localhost' 改成 listen_addresses = '*'
10.2 修改客户端认证配置文件pg_hba.conf
将需要远程访问数据库的IP地址或地址段加入该文件。
# vi /var/lib/pgsql/9.4/data/pg_hba.conf
IPv4区下的127.0.0.1/32修改为0.0.0.0/0; 将ident修改为md5

Centos防火墙设置

#vi /etc/sysconfig/iptables

添加

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8069 -j ACCEPT

#service iptables restart

系统会自动创建一个postgres的用户,

#passwd postgres更改密码。

postgresql默认是以postgres用户创建的,要切换到postgres才能运行psql

#su postgres

[root@MiWiFi-R1D-srv /]# su postgres
bash-4.1$ psql
psql (9.4.10)
输入 "help" 来获取帮助信息.

postgres=# \q
bash-4.1$ psql -Upostgres
psql (9.4.10)
输入 "help" 来获取帮助信息.

postgres=# password postgres更改密码,
psql: 致命错误:  对用户"odoo"的对等认证失败

[root@MiWiFi-R1D-srv data]# vim pg_hba.conf
修改pg_hba.conf的

# "local" is for Unix domain socket connections only
local   all             all                                     md5
把原来的peer改成md5

就能用psql进来了。

[root@MiWiFi-R1D-srv /]# psql -Upostgres -W
用户 postgres 的口令:
psql (9.4.10)
输入 "help" 来获取帮助信息.

postgres=#

这样远程的pgAdmin就能以postgres登录进来了。

#cd /usr/odoo 进入odoo代码目录

#pip install -r requirements.txt  通过requirements.txt安装odoo需要的模块

通过requirements.txt安装psycopg2失败,尝试下载psycopg2,手动安装。

pip install psycopg2 失败。报错说没有pg_config的PATH。

(也可以通过source方式:http://initd.org/psycopg/download/下载psycopg2-2.6.2.tar.gz

解压后,python setup.py build)

是因为没有安装postgres9.4-devel

The pg_config program: it is usually installed by the libpq-dev package but sometimes it is not in a PATH directory. Having it in the PATH greatly streamlines the installation, so try running pg_config --version: if it returns an error or an unexpected version number then locate the directory containing the pg_config shipped with the right libpq version (usually /usr/lib/postgresql/X.Y/bin/) and add it to the PATH:

pg_config在/usr/pgsql-9.4/bin下

#vim /etc/profile

添加

export PATH="$PATH:/usr/pgsql-9.4/bin"

#source /etc/profile

#pip install psycopg2成功

注意:openerp-server.conf的db_hostname要改成127.0.0.1如果是用localhost的话,

odoo启动好之后,访问数据一直报错说 用户 Ident认证失败。

centos的当前用户名radzhang创建postgres的用户。

$ sudo su - postgres -c "createuser -s $USER"

运行$psql的话,postgres会默认找radzhang这个数据库

$pssql -d postgres 正常进入postgresql

这样openerp-server.conf的更换成centos的loginuser一样的用户名和密码就可以了。

db_user = radzhang db_password=123456

注意,$python openerp-server -c openerp-server.conf不能再root下运行,会报安全错误,

supervisor的配置

odoo的源代码放在usr/odoo下

[program:odoo]

command=/usr/local/python278/bin/python2.7 /opt/odoo/openerp-server -c /opt/odoo/openerp-server.conf

directory=/opt/odoo

autostart=true

autorestart=true

startsecs=3

user=openerp

stdout_logfile=/opt/odoo/openerp-server.log

stdout_logfile_maxbytes=500MB

stdout_logfile_backups=50

stdout_capture_maxbytes=1MB

stdout_events_enabled=false

2017-2-13comment

安装完成之后,配置openerp-server.conf。因为自己的模块放在另外一个目录下,所以addons_path=/home/radzhang/workspace/tse2.0/openerp/addons,/home/radzhang/workspace/tse2.0/openerp/addons_self。设置了两个路径。但是#./openerp-server开启odoo服务端的时候,一直无法识别后面那个新加的addons_self目录。

然后把我自己的模块放到openerp/addons目录下的话,程序是能正常运行的。

后来通过openerp-server命令,直接指定addons路径,然后用-s参数,保存了一下,之后,就能正常识别第二个

2017-12-31comment

#pip install -r requirement.txt的时候,报错

  1. src/lxml/lxml.etree.c:157929: error: ‘xsltLibxsltVersion’ undeclared (first use in this function)  
  2. src/lxml/lxml.etree.c:157941: error: ‘__pyx_v_4lxml_5etree_XSLT_DOC_DEFAULT_LOADER’ undeclared (first use in this function)  
  3. src/lxml/lxml.etree.c:157941: error: ‘xsltDocDefaultLoader’ undeclared (first use in this function)  
  4. src/lxml/lxml.etree.c:157950: error: ‘__pyx_f_4lxml_5etree__xslt_doc_loader’ undeclared (first use in this function)  
  5. error: command 'gcc' failed with exit status 1  

pip list查看有lxml4.1.1安装过了,但是还是报lxml的错误。

查看了一下#rpm -qa|grep libxlm2*,

[root@tse4-odoo tse_4.0]# rpm -qa|grep libxml2*

libxml2-python-2.7.6-21.el6_8.1.x86_64

libxml2-2.7.6-21.el6_8.1.x86_64

libxml2-devel-2.7.6-21.el6_8.1.x86_64

libxml2-static-2.7.6-21.el6_8.1.x86_64

已经安装了,但是没有libxslt。

#yum install libxslt*

[root@tse4-odoo tse_4.0]# rpm -qa|grep libxslt*

libxslt-1.1.26-2.el6_3.1.x86_64

libxslt-devel-1.1.26-2.el6_3.1.x86_64

然后就正常了。requirement.txt的lxml是3.3.5版本的,pip install -r requirement.txt自动会删除lxml4.1.1。然后安装lxml3.3.5

猜你喜欢

转载自radzhang.iteye.com/blog/2348174