1. 单机部署

1.1. 以下文档请不要盲目复制粘贴,要稍微看看再去操作

1.2. 约定

  • 操作系统:Centos 6.5 x64或6系列更高版本
  • 服务器的mac地址不可以动态变化,必须是固定的(例如微软云则不支持)
  • nginx、php-fpm的用户和组默认是 www和www
  • 执行代码相关操作的的时候,例如bbc本身的update命令或代码复制的时候最好不要用root直接操作,请用 sudo -u www 您的命令 来进行,防止目录权限错误
  • 不要安装php自带的redis扩展,系统默认可以连接redis

1.3. 部署步骤

  • 关闭selinux

    注意:因为有个别机器会和selinux产生冲突,所以是否关闭请自行衡量

      #命令行临时关闭 SeLinux
      setenforce 0
      #修改SeLinux配置,下次启动则默认关闭
      修改  /etc/selinux/config  文件
      将  SELINUX=enforcing  改为  SELINUX=disabled
  • 初始化yum源

    将shopex-lnmp源加入到系统中,在线地址查看有哪些软件 <http://mirrors.shopex.cn/shopex/shopex-lnmp/> 可以安装

      yum install wget -y
      cd /etc/yum.repos.d/
      wget http://mirrors.shopex.cn/shopex/shopex-lnmp/shopex-lnmp.repo
  • 安装epel扩展源

      yum install epel-release -y
  • 安装ONEX BBC环境 主要是安装:php、nginx、mysql、zend解密工具、memcached、redis

    注:单机部署的时候可不装memcached

      yum install php-fpm56 ngx_openresty mysql Zend56 php-memcached56 memcached redis -y
  • 配置环境

    • 关于配置文件以及相关目录说明

      | 名称 | 本次版本(2016.07) | 相关说明 | | :-------- | :----| :----- | | nginx | openresty/1.9.7.4 | 配置文件 /usr/local/nginx/conf/nginx.conf
      vhost配置文件 /usr/local/nginx/conf/vhosts/*.conf | | php | 5.6.19 | 配置文件 /usr/local/php56/etc/php.ini
      php 扩展配置文件目录 /usr/local/php56/etc/php.d/
      zend 配置文件 /usr/local/php56/etc/php.d/Zend.ini
      memcached 配置文件 /usr/local/php56/etc/php.d/memcached.ini| | mysql | 5.6.22 | basedir /usr/local/mysql
      datadir /data/mysql/3306
      配置文件 /usr/local/mysql/my.cnf | | redis | 3.0.3 | 配置文件 /etc/redis.conf | | memcached
      (选装,单机部署可不装) | 1.4.4 | 配置文件 /etc/sysconfig/memcached | | 代码目录 | - | /data/httpd |

    • 配置ZendGuardLoader的证书文件地址(请不要直接复制下面配置,请填您代码实际的zl文件的地址)

      vim /usr/local/php56/etc/php.d/Zend.ini

        zend_extension='/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/ZendGuardLoader.so'
        zend_extension='/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/opcache_zend.so'
        zend_loader.enable=1
        zend_loader.disable_licensing=0
        zend_loader.obfuscation_level_support=3
        ;最后一项是证书文件地址,请根据实际情况进行配置
        zend_loader.license_path='/data/httpd/config/developer.zl'
  • 配置php56,开启配置 always_populate_raw_post_data

    vim /usr/local/php56/etc/php.ini #704行,修改对应配置

      #将always_populate_raw_post_data的分号去掉
      always_populate_raw_post_data = -1
  • 配置redis持久化 redis持久化介绍文档

    vim /etc/redis.conf #修改对应配置

      #启用AOF
      appendonly yes
    
      # 文件存放目录,与RDB共用。默认为当前工作目录。
      dir ./
      # 默认文件名为appendonly.aof
      appendfilename "appendonly.aof"
·
  • 启动环境

      /etc/init.d/php-fpm56 start
      /etc/init.d/nginx start
      /etc/init.d/mysqld start
      /etc/init.d/redis start
      #如果安装了memcached,则需要启动,一般单机下BBC无需安装memcached,安装了性能也不高,用默认的本地缓存即可
      /etc/init.d/memcached start
  • 安装ONEX BBC

    将bbc安装包解压,复制b2b2c目录到/data/httpd/目录下,如果是二级目录,则自己在/data/httpd下新建目录存放bbc代码

    注意:配置license路径,可能需要修改/usr/local/php56/etc/php.d/Zend.ini内的zl文件的路径

    并将/data/httpd目录的所有者和组都设置为www:

      chown -R www:www /data/httpd

打开http://example.com/public/index.php/即可安装,域名和目录请填写您的实际域名或者目录(如需rewrite请自行配置)

具体安装过程可以参考 <http://club.ec-os.net/doc/b2b2c-dev/700.operator/100.deploy/500.setup.md>

  • 配置ONEX BBC的定时任务

      #检查 /home/目录下是否有www目录,没有则创建一个
      mkdir /home/www
      #配置定时任务,必须配置的是www权限的crontab,不要在root或者其他用户下配置
      crontab -uwww -e
      #将下面的配置复制进去
      * * * * *  /data/httpd/script/queue/queue.sh /usr/local/php56/bin/php > /dev/null
      * * * * *  /usr/local/php56/bin/php  /data/httpd/script/crontab/crontab.php >/dev/null