Skip to content
  • Categories
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse

Odoo 中文社区

  1. Home
  2. Categories
  3. Odoo 安装指南
  4. CentOS6.4下源代码安装以及nginx配置

CentOS6.4下源代码安装以及nginx配置

Scheduled Pinned Locked Moved Odoo 安装指南
30 Posts 17 Posters 52.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    stone2009
    wrote on last edited by
    #1

    以前网上有个centos下的自动安装脚本,脚本本身应该是正确的,但是可能在多人转载后,中间有信息遗漏或者丢失,所以造成脚本失败,不能直接用

    我把自己在CentOS下源代码安装OE以及与nginx整合的操作步骤拿出来分享一下,如有谬误,请坛友多指正


    [size=12pt][b]第一部分,安装OE[/b][/size]
    说明:CentOS版本为6.4版本,命令行采用bash,PostgreSQL为9.2版本,Nginx为1.4版本

    1、CentOS 的安装选项有最小化安装、基本服务器安装、虚拟主机安装等等的,我这里采用的是基本服务器安装(带的东西较少,其实我们也只需要网络能联通加上yum可用即可)
    2、安装postgresql9.2(默认的8.4版本我没试过,我一般都是把默认的8.4给卸载掉,下文中pg就代表postgresql-9.2)

    注意:#代表root用户命令行状态(不做特别说明了),中间会涉及到切换到其他用户

    #cd /tmp              //进入tmp目录,这是系统的临时目录,里面的文件不重要,即使误删危害也不大,所以推荐在tmp目录下做临时性操作
    #yum remove postgres //卸载原有的pg,如果pg默认没有安装这条命令则无视
    #rpm -Uvh [检测到链接无效,已移除] //RPM方式从网络上安装pg的RPM包
    #yum -y install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel //使用yum安装相关依赖包
    #service postgresql-9.3 initdb  //初始化pg数据库
    #service postgresql-9.3 start  //启动pg服务
    #chkconfig postgresql-9.3 on  //将pg启动服务加入CentOS的启动列表,相当于windows里面的启动项

    #su - postgres                      //切换到postgres用户,该用户为安装pg时安装包自动创建的,它是pg默认的超级用户,在该用户环境下有一些管理命令
    -bash-4.1(postgres)$createuser --superuser openerp    //创建一个叫openerp的超级用户(此时创建的用户只是数据库的用户,openerp在操作系统中并不存在,请注意其中的区别)

    #rpm -ivh [检测到链接无效,已移除] //从网络上安装epel包,我这里的RPM链接是针对x86_64版本的,如果是其他版本请做对应修改
    #yum -y python-dateutil python-docutils python-feedparser python-imaging python-jinja2 python-ldap libxslt-python python-lxml python-mako python-mock python-openid  python-psutil python-psycopg2 python-reportlab python-yaml  pywebdav  python-vobject  python-vatnumber python-unittest2  python-simplejson pytz python-gdata python-ZSI  pychart pydot pybabel pyparsing python-werkzeug  //安装OE依赖的库,大部分都是python库,也有一部分其他依赖库

    #wget [检测到链接无效,已移除] //这东西起什么作用我也不清楚,不过它很好安装
    #unzip gdata-2.0.18.zip
    #cd gdata-2.0.18
    #python setup.py install

    #cd /tmp
    #rm -rf openerp*                          //清理不用的旧的openerp开头的所有文件(慎用)
    #wget [检测到链接无效,已移除] //下载OE源代码包,准备安装
    #tar xvzf openerp-7.0-latest.tar.gz          //解压OE源代码包
    #mkdir /opt/oe7
    #cp -R openerp*/{openerp,install/{openerp-server.init,openerp-server.conf},openerp-server,setup.py} /opt/oe7  //将我们需要的文件拷贝到安装目录
    #adduser openerp                            //创建openerp用户,它与postgres创建的openerp是关联的
    #chown openerp:openerp /opt/oe7 -R          //将OE安装目录下的所有文件所有者设定为openerp用户

    #cd /opt/oe7
    #chmod u+x openerp-server.init  //.init文件是oe的一个启动脚本,需要给它设置可执行权限
    #mv openerp-server.init  /etc/init.d/oe7server   
    #chkconfig oe7server on        //将oe加入CentOS启动列表
    #cp openerp-server.conf /etc    //将OE的配置文件拷贝到/etc目录下,如果想自定义配置文件路径可以通过给openerp-server设置选项或者修改openerp-server.init文件里面的路径来实现,这里采用的方法不用做修改,较为简单

    ;;到这里OE基本上安装完成了
    #service oe7server start            //启动OE,这时候应该可以通过浏览器访问OE了


    [size=12pt][b]第二部分,安装Nginx[/b][/size]
    OE本身自带的webserver效能较低,在前端采用nginx做代理

    #yum install nginx                  //nginx安装很简单
    配置/etc/nginx/nginx.conf文件,如果只是为OE服务,建议一个配置文件即可,步科的多文件配置方式是在ubuntu上测试的,在CentOS上缺少相关目录(当然应该是我不熟)

    ;;/etc/nginx/nginx.conf配置文件
    #设定http服务器,利用它的反向代理功能提供负载均衡支持

    user              nginx;
    worker_processes  1;

    error_log  /var/log/nginx/error.log;
    #error_log  /var/log/nginx/error.log  notice;
    #error_log  /var/log/nginx/error.log  info;

    pid        /var/run/nginx.pid;

    events {
        use epoll;
        worker_connections  1024;
    }

    http {
        #设定mime类型,类型由mime.type文件定义
        include      /etc/nginx/mime.types;
        default_type  application/octet-stream;
        #设定日志格式
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  /var/log/nginx/access.log  main;

        sendfile        on;
        #tcp_nopush    on;

        #keepalive_timeout  0;
        keepalive_timeout  65;

        gzip  on;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        #添加一个类型 application/javascript
        gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        # Load config files from the /etc/nginx/conf.d directory
        # The default server is in conf.d/default.conf
        include /etc/nginx/conf.d/.conf;

        upstream oe_server{
            #这里可以给出多个server,用来分担OE服务器的负担,并且还可以设定权重(具体请参考nginx配置)
            server 127.0.0.1:8069;    //这是OE提供服务的地址及端口,可以指定多个server,也就是可以使用多个OE服务器来均衡负载,但是后台数据库还是要保证在逻辑上是一台
                              //我是因为nginx与OE在同一台机器,所以可以写成127段地址
        }

      #第一个虚拟服务器
      server {
            #侦听192.168.1.2的80端口
            listen      80;
            server_name  192.168.1.2;

            location /{
              root  /opt/oe7/openerp/addons/;      #定义服务器的默认网站根目录位置
              proxy_pass  [检测到链接无效,已移除] ;#请求转向mysvr 定义的服务器列表
              #以下是一些反向代理的配置可删除.
              proxy_redirect off;
              #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              client_max_body_size 10m;    #允许客户端请求的最大单文件字节数
              client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,
              proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)
              proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)
              proxy_read_timeout 90;        #连接成功后,后端服务器响应时间(代理接收超时)
              proxy_buffer_size 4k;            #设置代理服务器(nginx)保存用户头信息的缓冲区大小
              proxy_buffers 4 32k;              #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
              proxy_busy_buffers_size 64k;    #高负荷下缓冲大小(proxy_buffers
    2)
              proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传
            }
        }
    }


    #service nginx start 


    [size=14pt]OK,现在可以通过nginx来访问OE了
    如果加上花生壳软件,再配置路由器端口映射,外网就可以通过域名来访问内网OE了[/size]


    1 Reply Last reply
    0
    • 1 Offline
      1 Offline
      18684036
      wrote on last edited by
      #2

      写得灰常不错,攒一个

      1 Reply Last reply
      0
      • mrshellyM Offline
        mrshellyM Offline
        mrshelly
        wrote on last edited by
        #3

        赞, 收藏....

        1 Reply Last reply
        0
        • mrshellyM Offline
          mrshellyM Offline
          mrshelly
          wrote on last edited by
          #4

          推荐给贴子添加几个常见的 Tag 以方便检索..

          1 Reply Last reply
          0
          • W Offline
            W Offline
            wangbuke
            wrote on last edited by
            #5

            Good Job !  🙂

            1 Reply Last reply
            0
            • C Offline
              C Offline
              ccdos
              wrote on last edited by
              #6

              好文章

              1 Reply Last reply
              0
              • JoshuaJ Offline
                JoshuaJ Offline
                Joshua 管理员
                wrote on last edited by
                #7

                谢谢分享。

                【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                1 Reply Last reply
                0
                • Q Offline
                  Q Offline
                  qq342406169
                  wrote on last edited by
                  #8

                  已保存到印象笔记中

                  1 Reply Last reply
                  0
                  • wjfonhandW Offline
                    wjfonhandW Offline
                    wjfonhand
                    wrote on last edited by
                    #9

                    转载到我的博客了,谢谢楼主好文章。

                    GoodERP -- Odoo China fork

                    1 Reply Last reply
                    0
                    • Q Offline
                      Q Offline
                      qq342406169
                      wrote on last edited by
                      #10

                      [quote author=Jeff link=topic=7293.msg16747#msg16747 date=1372082025]
                      转载到我的博客了,谢谢楼主好文章。
                      [/quote]

                      你的博客是???

                      1 Reply Last reply
                      0
                      • J Offline
                        J Offline
                        jinyong
                        wrote on last edited by
                        #11

                        楼主我按照你的方法装了一遍启动服务的时候报错如下:
                        [root@fedorasystem oe7]# service oe7server start
                        Starting oe7server (via systemctl):  Job for oe7server.service failed. See 'systemctl status oe7server.service' and 'journalctl -xn' for details.
                                                                                  [失败]
                        系统是 fedora 18 

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          stone2009
                          wrote on last edited by
                          #12

                          [quote author=jinyong link=topic=7293.msg16765#msg16765 date=1372237230]
                          楼主我按照你的方法装了一遍启动服务的时候报错如下:
                          [root@fedorasystem oe7]# service oe7server start
                          Starting oe7server (via systemctl):  Job for oe7server.service failed. See 'systemctl status oe7server.service' and 'journalctl -xn' for details.
                                                                                    [失败]
                          系统是 fedora 18
                          [/quote]


                          我要申明一下,我这个步骤只是我在CentOS6.4下面亲测(因为服务器LINUX我还是偏向CentOS的,所以将我的经验拿来分享一下),至于fedora我没有测试过,上面我把每一个步骤干什么都写清楚了,你要注意一下版本(特别是x86_64跟i686),至于其他版本的LINUX我不能保证啊

                          个人建议:通过日志来排查错误
                          你可以看两个日志文件一个是oe7的,默认/var/log/openerp/open-XXX.log  (如果你指定了日志文件,请检查指定的位置)
                          另一个是系统的日志文件,/var/log/messages

                          可以用tail -f logfile 命令来等待日志追加,然后在执行service oe7server start,这时候日志会追加信息

                          一般服务起不来多半跟端口占用或者缺少软件包有关,如果严格按照上述按住步骤来的话,软件包缺少的可能性较小,你检查一下是否端口被占用了

                          1 Reply Last reply
                          0
                          • W Offline
                            W Offline
                            wangbuke
                            wrote on last edited by
                            #13

                            楼主的模块安装命令有不少重复和错误的包名字,

                            更正下:

                            # yum install python-dateutil python-docutils python-feedparser python-imaging python-jinja2 python-ldap libxslt-python python-lxml python-mako python-mock python-openid  python-psutil python-psycopg2 python-reportlab python-yaml  pywebdav  python-vobject  python-vatnumber python-unittest2  python-simplejson pytz python-gdata python-ZSI  pychart pydot pybabel pyparsing

                            顺便当自己的笔记。

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              stone2009
                              wrote on last edited by
                              #14

                              [quote author=wangbuke link=topic=7293.msg16770#msg16770 date=1372255475]
                              楼主的模块安装命令有不少重复和错误的包名字,

                              更正下:

                              # yum install python-dateutil python-docutils python-feedparser python-imaging python-jinja2 python-ldap libxslt-python python-lxml python-mako python-mock python-openid  python-psutil python-psycopg2 python-reportlab python-yaml  pywebdav  python-vobject  python-vatnumber python-unittest2  python-simplejson pytz python-gdata python-ZSI  pychart pydot pybabel pyparsing

                              顺便当自己的笔记。
                              [/quote]


                              Thank you

                              1 Reply Last reply
                              0
                              • J Offline
                                J Offline
                                jinyong
                                wrote on last edited by
                                #15

                                这次换了centons6.4 64位  完全按照楼主的方法操作启动的时候提示如下:
                                [root@mazenserver oe7]# service oe7server start
                                启动 OpenERP Server Daemon (openerp-server):              [确定]
                                [root@mazenserver oe7]# ERROR: couldn't create the logfile directory. Logging to the standard output.
                                2013-06-29 19:53:34,416 1935 INFO ? openerp: OpenERP version 7.0-20130703-231023
                                2013-06-29 19:53:34,416 1935 INFO ? openerp: addons paths: /usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/addons
                                2013-06-29 19:53:34,416 1935 INFO ? openerp: database hostname: localhost
                                2013-06-29 19:53:34,416 1935 INFO ? openerp: database port: 5432
                                2013-06-29 19:53:34,416 1935 INFO ? openerp: database user: openerp
                                Traceback (most recent call last):
                                  File "/usr/bin/openerp-server", line 5, in <module>
                                    pkg_resources.run_script('openerp==7.0-20130703-231023', 'openerp-server')
                                  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 461, in run_script
                                    self.require(requires)[0].run_script(script_name, ns)
                                  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1194, in run_script
                                    execfile(script_filename, namespace, namespace)
                                  File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/EGG-INFO/scripts/openerp-server", line 5, in <module>
                                    openerp.cli.main()
                                  File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/init.py", line 61, in main
                                    o.run(args)
                                  File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/server.py", line 265, in run
                                    main(args)
                                  File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/server.py", line 245, in main
                                    setup_pid_file()
                                  File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/server.py", line 88, in setup_pid_file
                                    fd = open(config['pidfile'], 'w')
                                IOError: [Errno 2] 没有那个文件或目录: '/var/run/openerp/openerp-server.pid'

                                1 Reply Last reply
                                0
                                • wjfonhandW Offline
                                  wjfonhandW Offline
                                  wjfonhand
                                  wrote on last edited by
                                  #16

                                  不太懂,猜一下是不是权限问题啊。

                                  GoodERP -- Odoo China fork

                                  1 Reply Last reply
                                  0
                                  • J Offline
                                    J Offline
                                    jinyong
                                    wrote on last edited by
                                    #17

                                    权限应该没有问题啊,都是 chmod 我执行了 至少2 次。。

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      stone2009
                                      wrote on last edited by
                                      #18

                                      [quote author=jinyong link=topic=7293.msg16851#msg16851 date=1372908239]
                                      这次换了centons6.4 64位  完全按照楼主的方法操作启动的时候提示如下:
                                      [root@mazenserver oe7]# service oe7server start
                                      启动 OpenERP Server Daemon (openerp-server):              [确定]
                                      [root@mazenserver oe7]# ERROR: couldn't create the logfile directory. Logging to the standard output.
                                      2013-06-29 19:53:34,416 1935 INFO ? openerp: OpenERP version 7.0-20130703-231023
                                      2013-06-29 19:53:34,416 1935 INFO ? openerp: addons paths: /usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/addons
                                      2013-06-29 19:53:34,416 1935 INFO ? openerp: database hostname: localhost
                                      2013-06-29 19:53:34,416 1935 INFO ? openerp: database port: 5432
                                      2013-06-29 19:53:34,416 1935 INFO ? openerp: database user: openerp
                                      Traceback (most recent call last):
                                        File "/usr/bin/openerp-server", line 5, in <module>
                                          pkg_resources.run_script('openerp==7.0-20130703-231023', 'openerp-server')
                                        File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 461, in run_script
                                          self.require(requires)[0].run_script(script_name, ns)
                                        File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1194, in run_script
                                          execfile(script_filename, namespace, namespace)
                                        File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/EGG-INFO/scripts/openerp-server", line 5, in <module>
                                          openerp.cli.main()
                                        File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/init.py", line 61, in main
                                          o.run(args)
                                        File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/server.py", line 265, in run
                                          main(args)
                                        File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/server.py", line 245, in main
                                          setup_pid_file()
                                        File "/usr/lib/python2.6/site-packages/openerp-7.0_20130703_231023-py2.6.egg/openerp/cli/server.py", line 88, in setup_pid_file
                                          fd = open(config['pidfile'], 'w')
                                      IOError: [Errno 2] 没有那个文件或目录: '/var/run/openerp/openerp-server.pid'
                                      [/quote]

                                      基本上可以确定是权限问题,我原帖里面没有说关于日志的默认输出路径以及权限设置

                                      默认情况下oe的日志输出路径为/var/log/openerp/openerp-server.log 
                                      “[color=red][root@mazenserver oe7]# ERROR: couldn't create the logfile directory. Logging to the standard output.[/color]”
                                      这个错误提示说的是不能创建日志文件目录,日志记录到标准输出(也就是屏幕),这基本上说明是权限不够的问题
                                      这个提示同时也表明如果日志文件不能创建,其实并不影响OE启动

                                      “[color=red]IOError: [Errno 2] 没有那个文件或目录: '/var/run/openerp/openerp-server.pid'[/color]”这个错误说明OE启动的时候无法创建这个文件导致的
                                      每次OE启动会创建一个PID文件,这个文件里面只有一个数值,就是当前启动成功后的OE进程ID。这个文件无法创建应该是影响OE启动的

                                      请你在/var/run/目录下创建一个openerp目录,并且把它授权给你的oe用户

                                      1 Reply Last reply
                                      0
                                      • J Offline
                                        J Offline
                                        jinyong
                                        wrote on last edited by
                                        #19

                                        果然是权限的问题 😢 😢 谢谢了
                                        mkdir //var/run/openerp
                                        chown openerp:openerp /var/run/openerp -R

                                        1 Reply Last reply
                                        0

                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Categories
                                        • Tags
                                        • Popular
                                        • Users
                                        • Groups