How to install Odoo 12 on Ubuntu 16.04
安装odoo12 for ubuntu
STEP 1
sudo apt-get update
STEP 2
sudo apt-get -y upgrade
STEP 3
sudo apt-get install python3-pip
INSTALL DEPENDENCIES USING PIP3
pip3 install Babel decorator docutils ebaysdk feedparser gevent greenlet html2text Jinja2 lxml Mako MarkupSafe mock num2words ofxparse passlib Pillow psutil psycogreen psycopg2 pydot pyparsing PyPDF2 pyserial python-dateutil python-openid pytz pyusb PyYAML qrcode reportlab requests six suds-jurko vatnumber vobject Werkzeug XlsxWriter xlwt xlrd
STEP 4
sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g less less-plugin-clean-css
sudo apt-get install node-less
STEP 5
sudo apt-get install python-software-properties
sudo vim /etc/apt/sources.list.d/pgdg.list
add a line for the repository
deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.6
STEP 6
Create Database user for Odoo
sudo su postgres
cd
createuser -s odoo
createuser -s ubuntu_user_name
exit
STEP 7
Create Odoo user and group
sudo adduser --system --home=/opt/odoo --group odoo
STEP 8
Install Gdata
cd /opt/odoo
sudo wget https://pypi.python.org/packages/a8/70/bd554151443fe9e89d9a934a7891aaffc63b9cb5c7d608972919a002c03c/gdata-2.0.18.tar.gz
sudo tar zxvf gdata-2.0.18.tar.gz
sudo chown -R odoo: gdata-2.0.18
sudo -s
cd gdata-2.0.18/
python setup.py install
exit
STEP 9
Odoo 11 Download from GitHub
cd /opt/odoo
sudo apt-get install git
sudo su - odoo -s /bin/bash
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 --single-branch
exit
STEP 10
Create Odoo Log File
sudo mkdir /var/log/odoo
sudo chown -R odoo:root /var/log/odoo
STEP 11
Edit Odoo configuration file
sudo gedit/etc/odoo.conf
#Copy this lines and change with users and password
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
logfile = /var/log/odoo/odoo-server.log
addons_path = /opt/odoo/addons,/opt/odoo/odoo/addons
sudo chown odoo: /etc/odoo.conf
STEP 12
sudo apt-get -f install
sudo wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
STEP 13
Run Odoo Server
cd /opt/odoo/odoo
./odoo-bin
STEP 14
Open browser on :
http://localhost:8069
STEP 15
cd /usr/local/lib/
sudo git clone https://github.com/sass/sassc.git --branch 3.4.2 --depth 1
sudo git clone https://github.com/sass/libsass.git --branch 3.4-stable --depth 1
sudo git clone https://github.com/sass/sass-spec.git --depth=1
STEP 16
echo ‘SASS_LIBSASS_PATH="/usr/local/lib/libsass"’ | sudo tee -a /etc/environment
source /etc/environment
STEP 17
sudo make -C libsass
STEP 18
sudo make -C sassc
sudo make -C sassc install
STEP 19
手动启动:
- sudo -su odoo
- ./odoo-bin -c /etc/odoo.conf
设置 Odoo 为系统服务
设置 Odoo 为系统服务
现在我们需要将 Odoo 设为系统服务,并在系统启动时自动开启。
在Ubuntu或Debian中,init程序负责服务的启动。Debian或其分支操作系统曾使用过sysvinit,Ubuntu曾使用过兼容的名为Upstart的启动程序。但最近都进行了修改,最新的Debian和Ubuntu发行版的init程序都使用了systemd。这表示现在有两种方式来安装系统服务,你需要根据操作系统的版本来选择正确的方法。Ubuntu 16.04或之后的版本中应使用systemd,但是很多云服务商还在使用更早的版本,所以很有可能你也会使用到这些老版本。要检查系统中是否使用systemd,可使用如下命令:
man init
这条命令会打印当前使用的 init 程序的文档,然后就可以查看所使用的启动服务。
ℹ️Window的子系统(WSL) 中的 Ubuntu环境仅适用于开发,它有可能发生些异常问题,完全不适合用于运行生产环境。在写本文时,man init显示启动服务为systemd,但并不能安装systemd服务,反而安装sysvinit服务时是正常的。
补充:如出现-bash: man: command not found,则通过sudo apt install man -y来执行安装
创建systemd服务
如果你使用的是较近的操作系统,如Debian 8或Ubuntu 16.04,你的启动服务就应该是systemd。要在系统中添加服务,只需创建一个描述服务的文件。我们创建vi /lib/systemd/system/odoo.service文件并加入如下内容:
[Unit]
Description=Odoo
After=postgresql.service
[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/home/odoo/odoo-12/odoo-bin -c /etc/odoo/odoo.conf
[Install]
WantedBy=multi-user.target
小贴士:Odoo源码中在debian/下包含一个odoo.service文件示例。你可以不用新建方件,直接把拷贝该文件然后进行所需修改。至少需要根据设置来修改ExecStart选项。
下一步我们需要使用如下命令来注册这个新服务:
sudo systemctl enable odoo.service
使用如下命令启动该服务:
sudo systemctl start odoo
使用如下命令检查该服务状态:
sudo systemctl status odoo
Odoo 12开发之部署和维护生产实例
最后,如需停止服务,请使用如下命令:
sudo systemctl stop odoo
通过如下命令可查看日志文件的内容:
sudo less /var/log/odoo/odoo-server.log
你还可以使用tail -f 来实时查看日志文件中新增的内容:
sudo tail -f /var/log/odoo/odoo-server.log
常见问题解决Q1
1.使用odoo用户执行python odoo-bin 时,看起来启动正常,当访问URL时,网页无内容,经查看log出现以下提示:
su root用户启动出现(odoo不允许root身份启动): Running as user ‘root’ is a security risk, aborting
odoo.http: HTTP Configuring static files site:odoo.com
解决办法:A1
问题原因:
A1.在Ubuntu中,运行Odoo的用户odoo默认无登录权限,这样对于odoo的源码调试有些不方便,为此需要给odoo用户登录权限。
步骤如下:
1)给odoo用户设置密码:
sudo passwd odoo
2)为该用户指定命令解释程序(通常为/bin/bash):
sudo usermod -s /bin/bash odoo
现在你可以尝试用odoo用户登录,并用命令行方式启动Odoo了,如启动Odoo12的命令为:
进度odoo用户的主目录:/datadrive/odoo
su odoo
启动odoo系统:
python odoo-bin -c /etc/odoo.conf