odoo ubuntu环境部署
部署之前首先升级apt,否则所有的包都无法获取
sudo apt-get update
PostgreSQL相关:
安装
1.首先安装必要的命令行工具
sudo apt-get install postgresql
apt-get install postgresql-client
apt-get install postgresql
2.然后你可以选择是否安装图形化界面
apt-get install pgadmin3
3.图形化界面启动命令是:
pgadmin3
启动
/etc/init.d/postgresql start
这时已经启动了服务器
切换到数据库自动创建的用户
su – postgres
进入数据库操作
psql
然后命令行会变化为:
root@kali:~# su – postgres
postgres@kali:~$ psql
psql (9.5.10)
输入 “help” 来获取帮助信息.
postgres=#
使用
接下来修改postgres用户的密码
postgres=# \password postgres;
输入新的密码:
再次键入:
创建用户
postgres=# create user odoo with password ‘odoo’;
CREATE ROLE
设置权限
ALTER ROLE odoo WITH Superuser Createrole CreateDB Replication BypassRLS;
查看是否成功
\du
设置完成
删除用户
DROP ROLE test;
退出
\q
为了使本地pgadmin3可以连接远端postgresql
1.修改监听地址
vim /etc/postgresql/9.5/main/postgresql.conf
将 #listen_addresses = ‘localhost’ 的注释去掉并改为 listen_addresses = ‘*’
2.修改可访问用户的ip段
vim /etc/postgresql/9.5/main/pg_hba.conf
在# IPv4 local connections:
host all all 127.0.0.1/32 md5
下面添加一行
host all all 0.0.0.0 0.0.0.0 md5
3.重启数据库
/etc/init.d/postgresql restart
创建odoo用户
adduser odoo 输入密码,然后一路回车,Y确认创建
创建log目录
sudo mkdir /var/log/odoo
sudo mkdir /var/log/nginx
将/var/log/odoo的权限给odoo用户
chown -R odoo:odoo /var/log/odoo
chmod 760 /var/log/odoo
安装git
apt-get install git
准备odoo源码
因为我将odoo项目放在/opt中所以直接 cd /opt进入opt目录下,git clone项目
git clone https://github.com/odoo/odoo.git
因为需要odoo用户来启动odoo服务所以将odoo项目的权限给odoo
chown -R odoo:odoo /opt
chmod 760 /opt
进入odoo项目cd /opt/odoo安装依赖包
pip install -r requirements.txt
切换到odoo用户
su odoo
启动odoo
python odoo-bin -c odoo.conf
会报出缺少的依赖包
例如: ImportError: No module named dateutil.relativedelta
pip install dateutils
ImportError: No module named PIL
pip install pillow
不再报缺少包之后可能会出现静态js不加载问题
安装npm
apt-get install npm
安装less
npm install -g less
源码安装nginx
1.安装依赖库
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install libtool
sudo apt-get install gcc-c++
sudo apt-get install openssl libssl-dev libperl-dev
2.下载nginx源码
wget http://nginx.org/download/nginx-1.11.3.tar.gz
解压文件
tar -zxvf nginx-1.11.3.tar.gz
进入nginx-1.11.3
cd nginx-1.11.3
./configure
make
make install
配置nginx
vim /usr/local/nginx/conf/nginx.conf
将log_format注释放开
log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;
更改server配置
server {
listen 80;
server_name odoo.dev.xcharge.com(指定域名);
access_log /var/log/nginx/access_odoo.log main;
error_log /var/log/nginx/error_odoo.log;
charset utf-8;
index index.html index.php index.htm;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
client_body_timeout 1200s;
proxy_connect_timeout 1200s;
proxy_send_timeout 1200s;
proxy_read_timeout 1200s;
client_max_body_size 30m;
proxy_pass http://127.0.0.1:8069/;
}
启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
可能会出现的问题:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
解决方式
sudo fuser -k 80/tcp
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
自动备份 auto_backup 依赖模块:pysftp
sudo pip install pysftp
界面less加载有问题解决方案
sudo npm install -g less
sudo npm install -g less-plugin-clean-css
sudo ln -s /usr/local/bin/lessc /usr/bin/lessc
sudo ln -s /usr/bin/nodejs /usr/bin/node
安装nodejs
sudo apt-get install g++
sudo apt-get install libssl-dev
wget http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
tar zxvf node-v0.8.16.tar.gz
./configure
make && make install
安装wkhtmltopdf
xz -d wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar
得到一个目录wkhtmltox,把wkhtmltopdf复制到/usr/bin目录,更改所有者,并增加可执行属性
sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/
sudo chown root:root /usr/bin/wkhtmltopdf
sudo chmod +x /usr/bin/wkhtmltopdf
apt-get install libXrender*
apt-get install libfontconfig*
测试一下
wkhtmltopdf http://www.baidu.com baidu.pdf
“Done”表明顺利完成,当前目录下出现一个baidu.pdf
删掉测试pdf
rm baidu.pdf
安装中文字体
sudo apt-get install ttf-wqy-zenhei #安装中文字体(正黑)
sudo apt-get install ttf-wqy-microhei #安装中文字体(微软雅黑)
纯手打,转载请注明出处
author:北京-李逍遥