Odoo10社区版的源码安装

一、安装环境及软件

服务器: 阿里云ECS Ubuntu14.04 64位
数据库: Postgresql9.4
反向代理:Nginx
源码: 10.0社区版

二、安装数据库

官方安装页面 http://www.postgresql.org/download/linux/ubuntu

1 更新数据源

新建文件

/etc/apt/sources.list.d/pgdg.list

文件中添加内容

deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main

导入签名key并更新包列表

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

2 安装postgresql-9.4

sudo apt-get install postgresql-9.4

3 为PostgreSQL添加并配置odoo用户

切换到postgres用户下:

sudo su - postgres

以postgres的身份创建一个新的数据库用户odoo, Odoo程序将以他的身份访问postgresql数据库,来创建删除数据库文件

createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo

根据系统提示两次输入密码:

Enter password for new role: Enter it again: 

记住这里设置的密码,将在odoo的配置文件中用到
最后退出postgres用户身份:

 exit 

三、安装Nginx

编辑 /etc/apt/sources.list

echo deb http://nginx.org/packages/ubuntu/trusty nginx >> /etc/apt/sources.list
echo deb-src http://nginx.org/packages/ubuntu/trusty nginx >> /etc/apt/sources.list

然后,同样更新并导入升级Key

wget http://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
sudo apt-get update

安装Nginx

apt-get install nginx

四、安装NodeJS及相关库

安装地址 https://github.com/nodesource/distributions#debinstall
安装Nodejs6.x

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

安装Less插件

npm install -g less
npm install -g less-plugin-clean-css

五、安装Odoo

1 更新服务器软件源并重启服务器

sudo apt-get update
sudo apt-get upgrade
sudo shutdown -r now

2 Odoo的依赖包将用pip来管理,如果未安装pip的话,可以新安装最新的pip

sudo wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

3 创建一个系统用户odoo,用它来运行管理Odoo程序

sudo adduser --system --home=/opt/odoo --group odoo

上述命令中home参数制定了odoo用户的根目录,我们的程序也将装在这个目录下

4 下载Odoo10源码

这里通过源码安装,如果系统未安装git,请先安装好git软件

sudo apt-get install git 

切换到odoo用户下:

sudo su - odoo -s /bin/bash

使用git从github网站上下载一份10.0分支代码下来

git clone https://www.github.com/odoo/odoo --branch 10.0 --single-branch .

参数single-branch后面的空格加点’ .’不能少,这个点表示当前目录
下载完成后退出odoo用户:

exit

5 安装Python运行库以及Odoo相关依赖包

odoo源码目录下的 requirements.txt 文件里面列出了 odoo10 依赖的所有 Python lib。
因为lxml ldap psycopg2 需要使用gcc进行编译,所以需要先安装开发相关的库 libxml2, libxslt, libpq-dev, libldap2-dev, libsasl2-dev

sudo apt-get install -y python-dev libxml2-dev libxml2 libxslt-dev libpq-dev libldap2-dev libsasl2-dev libevent-dev zlib1g-dev
sudo apt-get install python-imaging python-lxml python-ldap python-openid
sudo apt-get update
sudo apt-get upgrade

使用 pip 安装 odoo-10 依赖的 Python 库

sudo pip install -r /opt/odoo/requirements.txt

安装wkhtmltopdf

sudo apt -f install fonts-freefont-ttf fontconfig-config fontconfig libfontconfig1 libxrender1 libfontenc1 libxfont1 x11-common xfonts-encodings xfonts-utils xfonts-base xfonts-75dpi
sudo wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-amd64.deb

安装完成后将可执行文件拷贝到usr/bin下:

sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf

更改所有这为root用户,并增加可执行属性

sudo chown root:root /usr/bin/wkhtmltopdf
sudo chmod +x /usr/bin/wkhtmltopdf

测试一下看是否成成一个pdf文件到你的根目录下

 wkhtmltopdf www.baidu.com ~/baidu.pdf 

安装中文字体

sudo apt-get install ttf-wqy-zenhei
sudo apt-get install ttf-wqy-microhei

6 配置Odoo程序

odoo默认的配置文件在/opt/odoo/debian/odoo.conf,包括基础的设置内容,这里我们将这个文件复制到etc下

sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

更改它的所有权和许可

sudo chown odoo:  /etc/odoo-server.conf
sudo chmod 640  /etc/odoo-server.conf

上述命令让这个文件被odoo用户和用户组拥有,并且只有odoo用户和root用户可以读取

编辑配置文件: vim /etc/odoo-server.conf
找到 db_password = False 将False改成刚才postgresql那里创建数据库用户odoo时设置的密码
找到 addons_path = /usr/lib/python2.7/dist-packages/openerp/oddons 这一行改成
addons_path = /opt/odoo/addons
在文件末尾添加一行 logfile = /var/log/odoo/odoo-server.log 指定odoo日志输出路径
;dbfilter = ^%d$ 以域名前缀为默认账套名称
保存退出配置文件

创建日志目录

sudo mkdir /var/log/odoo
sudo chown odoo:root /var/log/odoo

配置启动脚本
这里有一个他人制作号的脚本文件可以直接下载下来使用,稍作修改

sudo wget http://www.theopensourcerer.com/wp-content/uploads/2014/09/odoo-server

修改过后的内容
#!/bin/sh
### BEGIN INIT INFO
# Provides: odoo-server
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Complete Business Application software
# Description: Odoo is a complete suite of business tools.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/odoo/odoo-bin
NAME=odoo-server
DESC=odoo-server

# Specify the user name (Default: odoo).
USER=odoo

# Specify an alternate config file (Default: /etc/odoo-server.conf).
CONFIGFILE="/etc/odoo-server.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
    start)
            echo -n "Starting ${DESC}: "

            start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                    --chuid ${USER} --background --make-pidfile \
                    --exec ${DAEMON} -- ${DAEMON_OPTS}

            echo "${NAME}."
            ;;

    stop)
            echo -n "Stopping ${DESC}: "

            start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                    --oknodo

            echo "${NAME}."
            ;;

    restart|force-reload)
            echo -n "Restarting ${DESC}: "

            start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                    --oknodo
  
            sleep 1

            start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                    --chuid ${USER} --background --make-pidfile \
                    --exec ${DAEMON} -- ${DAEMON_OPTS}

            echo "${NAME}."
            ;;

    *)
            N=/etc/init.d/${NAME}
            echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
            exit 1
            ;;
esac

exit 0

注意:DAEMON 修改成 /opt/odoo/odoo-bin
退出保存,然后把他改成可执行文件,由root用户拥有:

sudo chown root:  /etc/init.d/odoo-server
sudo chmod 755 /etc/init.d/odoo-server

将odoo-bin的文件权限分配给 odoo用户:

sudo chown odoo: /opt/odoo/odoo-bin
sudo chmod 755 /opt/odoo/odoo-bin

启动Odoo服务:

sudo /etc/init.d/odoo-server start
或
sudo service odoo-server start

停止Odoo服务:

sudo /etc/init.d/odoo-server stop
或
sudo service odoo-server stop

重启Odoo服务:

sudo /etc/init.d/odoo-server restart
或
sudo service odoo-server restart

将Odoo设为开机自启动

sudo update-rc.d odoo-server defaults
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容