安装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之后,本地安装也是停住了,一开始以为要,也不行。后来用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的时候,报错
- src/lxml/lxml.etree.c:157929: error: ‘xsltLibxsltVersion’ undeclared (first use in this function)
- src/lxml/lxml.etree.c:157941: error: ‘__pyx_v_4lxml_5etree_XSLT_DOC_DEFAULT_LOADER’ undeclared (first use in this function)
- src/lxml/lxml.etree.c:157941: error: ‘xsltDocDefaultLoader’ undeclared (first use in this function)
- src/lxml/lxml.etree.c:157950: error: ‘__pyx_f_4lxml_5etree__xslt_doc_loader’ undeclared (first use in this function)
- 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