linux单机部署(>= V3.5.0)

基于商派封装的源进行快速简易的安装

这是一个使用yum源安装shopex OMS的标准化教程,可以大大减轻搭建环境的工作量。

我们希望提供给部署运维人员的不仅仅是一个教程,也是一个思路,而不是一个傻瓜式的部署步骤(ctrl+c加ctrl+v),在实际安装部署过程中,由于操作系统或环境的差异,出现依赖库冲突等问题,可自行调整或咨询官方后进行解决。

约定

  1. 操作系统为Centos 6.5 x64 或6系列的以上版本(centos 6.x 或者el6)
  2. 系统基于最小化安装即可

PS : 7.0以上 是不支持的,注意系统必须是64位

关闭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

一.apache+php5.3

安装OMS环境,主要是php apache mysql zend redis php-pthreads

apache+php+mysql51
yum install -y httpd php-pdo php-xml php-pecl-imagick php-soap php php-fpm php-bcmath php-pecl-memcached php-pecl-igbinary php-common php-mysql php-mcrypt php-mbstring php-pecl-memcache php-pecl-redis php-gd php-cli php-xmlrpc php-pecl-mongo php-ZendGuardLoader mysql51 redis 

安装 php-pthreads
yum install php-pthreads -y

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

站点根目录 建议/data/httpd/oms.xxx.com(xxx为具体客户的真实域名)

apache: 
配置文件目录 /etc/httpd/conf/httpd.conf

php:
配置文件  /etc/php.ini
php 扩展配置文件目录 /etc/php.d/
zend 配置文件   /etc/php.d/Zend.ini

mysql5.1:
basedir /usr/local/mysql51
datadir /data/mysql/3306
配置文件 /usr/local/mysql51/my.cnf

可以使用 mysqladmin password 'xxxxxx' 设置mysql的root密码

php-pthreads:
basedir /usr/local/php-pthreads

memcache:
配置文件 /etc/sysconfig/memcached

redis :
配置文件 /etc/redis.conf

关于启动命令
apache 
service httpd start
mysql51
service mysql51 start
memcache
service memcached start
redis
service redis start

关于加入开机启动项
chkconfig xxx on
xxx 为服务名

php配置

修改 /etc/php.ini
date.timezone = "Asia/Shanghai" //调整时区

修改 /etc/php.d/zend.ini
zend_loader.license_path = '/data/httpd/oms.xxx.com/config/developer.zl' //请根据实际情况进行配置

1) 复制代码到安装目录

/data/httpd/oms.xxx.com/

2) 对 data,config,public 目录赋 777

chmod -R 777 /data/httpd/oms.xxx.com/data
chmod -R 777 /data/httpd/oms.xxx.com/config
chmod -R 777 /data/httpd/oms.xxx.com/public

3) 配置apache

#ServerName www.example.com:80
修改为
ServerName oms.xxx.com:80

DocumentRoot "/var/www/html"
修改为
DocumentRoot "/data/httpd/oms.xxx.com/"

<Directory "/var/www/html">
修改为
<Directory "/data/httpd/oms.xxx.com/">

当然如果apache服务下设置多个站点话,我们也可以设置vhost:

<VirtualHost *:80>
    DocumentRoot "/data/httpd/oms.xxxx.com"
    ServerName oms.xxxx.com
    <Location /script/>
        Order deny,allow
        Deny from all
    </Location>
    <Location /config/>
        Order deny,allow
        Deny from all
    </Location>
    <Directory "/data/httpd/oms.xxxx.com">
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

使用/etc/init.d/httpd configtest进行配置文件检测,出现 Syntax OK 表示检查没有问题,使用 /etc/init.d/httpd start 启动web服务

4) 开始安装应用

直接访问OMS访问地址,一步步执行下去即可。

5) taskmgr app 配置(详细说明请查看"任务管理"章节说明)

App/taskmgr/config/config.php
一般默认安装后只要修改以下两个参数
//设置定时任务的请求域名,建议直接走内网127.0.0.1(或内网ip),执行脚本服务器能通过127.0.0.1(或内网ip)访问OMS站点即可,如果设置真实域名还要从本机跳到外网再绕一圈再进来,有点多余。
define('DOMAIN', '127.0.0.1');

//定义内部任务请求的token
define('REQ_TOKEN', 'SzjJ7VF9w2Dy3yt4K9vcV3LEwFc5pX3cXHu');

6) crontab 部署

部署前,检查下redis队列有没有起来,没有的话执行/etc/init.d/redis start

//任务管理器守护进程
* * * * * /bin/sh /alidata1/httpd/oms.xxx.com/app/taskmgr/check.sh

//历史任务处理日志清理
0 0 * * * /bin/sh /alidata1/httpd/oms.xxx.com/app/taskmgr/cleanlogs.sh

完成以上步骤后,OMS系统即可正常访问使用。

二.nginx+php5.6

安装PHP5.6 nginx mysql5.6 redis3.0 zend5.6 memcached

install
yum install php-fpm56 ngx_openresty mysql Zend56 php-redis56 redis php-mongo56  php-amqp56 php-memcache56 php-memcached56 memcached -y
安装 php-pthreads (oms跑任务需要)
yum install php-pthreads -y

环境配置相关
  • 关于配置文件以及相关目录说明
名称 本次版本(2017.04) 相关说明 启动脚本
nginx openresty/1.11.2.2 配置文件 /usr/local/nginx/conf/nginx.conf
vhost配置文件 /usr/local/nginx/conf/vhosts/*.conf
/etc/init.d/nginx
php 5.6.30 配置文件 /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
/etc/init.d/php-fpm56
php-pthreads 5.3.29 配置文件 /usr/local/php-pthreads/etc/php.ini
无启动脚本
mysql 5.6.35 basedir /usr/local/mysql
datadir /data/mysql/3306
配置文件 /usr/local/mysql/my.cnf
/etc/init.d/mysqld
redis 3.0.3 配置文件 /etc/redis.conf /etc/init.d/redis
memcached
(选装,单机部署可不装)
1.4.4 配置文件 /etc/sysconfig/memcached /etc/init.d/memcached
代码目录 - /data/httpd
  • 配置oms站点目录

创建oms代码目录(代码存放在 /data/httpd/oms/)

mkdir -p /data/httpd/oms/
cp -r [oms代码] /data/httpd/oms/

设置权限(注意不要设置成777)

chown -R www.www /data/httpd/oms/

配置nginx vhosts文件

vim /usr/local/nginx/conf/vhosts/default.conf

server
{
    listen       80 default;
    server_name  oms.shopex.cn;
    index index.html index.htm index.php;
    root  /data/httpd/oms;

    location ~ .*\.php.*
    {
        include php_fcgi.conf;
        include pathinfo.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~* \.(ini|sql|conf|bak)$ {
         return 404;
    }

    location ~* ^/(themes|images|logs|data|demo|wap_themes)/.*\.(php|php5)$ {
        deny all;
    }

    location ~ /\.(svn|git|)/ {
       deny all;
    }

    location ~ .*\.(js|css)?$
    {
        expires      1h;
    }
    access_log /var/log/nginx/access.log access;
    #access_log off;
}
  • 配置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/oms/config/developer.zl'
  • 服务的启动

一般情况下php-fpm nginx mysqld memcached 安装之后会自动启动 redis则需要手动启动

/etc/init.d/php-fpm56 start
/etc/init.d/nginx start
/etc/init.d/mysqld start
/etc/init.d/redis start
/etc/init.d/memcached start

注意上面修改完nginx和php的配置文件之后 需要重启服务

/etc/init.d/php-fpm56 restart
/etc/init.d/nginx restart

redis加入开机自启(其他服务都可以用这种方式设置开机自动启动)

chkconfig redis on

  • 关于mysql

mysql默认安装完之后root密码为空,这里为安全起见我们修改一下root密码

mysqladmin  password 'omspassword'

授权并创建oms数据库账号密码

mysql -S /tmp/mysql.sock -p omspassword  -e "GRANT ALL ON oms_dbname.* TO 'oms_username'@'127.0.0.1' IDENTIFIED BY 'oms_password';"

三.apache+php5.6

安装PHP5.6 apache mysql5.6 redis3.0 zend5.6 memcached

install
yum install php-fpm56 php-fpm56-apache  httpd  mysql Zend56 php-redis56 redis php-mongo56  php-amqp56 php-memcache56 php-memcached56 memcached -y

环境配置相关
  • 关于配置文件以及相关目录说明
名称 本次版本(2017.04) 相关说明 启动脚本
httpd httpd/2.2.15 配置文件 /etc/httpd/conf/httpd.conf
vhost配置文件 /etc/httpd/conf.d/
/etc/init.d/httpd
php 5.6.30 配置文件 /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
/etc/init.d/php-fpm56
安装apache应该把该服务停掉
service php-fpm56 stop
php-pthreads 5.3.29 配置文件 /usr/local/php-pthreads/etc/php.ini
无启动脚本
mysql 5.6.35 basedir /usr/local/mysql
datadir /data/mysql/3306
配置文件 /usr/local/mysql/my.cnf
/etc/init.d/mysqld
redis 3.0.3 配置文件 /etc/redis.conf /etc/init.d/redis
memcached
(选装,单机部署可不装)
1.4.4 配置文件 /etc/sysconfig/memcached /etc/init.d/memcached
代码目录 - /data/httpd
  • 配置oms站点目录

创建oms代码目录(代码存放在 /data/httpd/oms/)

mkdir -p /data/httpd/oms/
cp -r [oms代码] /data/httpd/oms/

设置权限(注意不要设置成777)

chown -R www.www /data/httpd/oms/

配置httpd vhosts文件

vim /etc/httpd/conf.d/oms.conf

NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost *:80>
    ServerAdmin wujianhua@shopex.cn
    DocumentRoot "/data/httpd/oms"
    ServerName oms.shopex.cn
    #ServerAlias alias.shopex.cn
    ErrorLog logs/oms_err_log
    CustomLog logs/oms_log common
    <Location /.git/>
        Order deny,allow
        Deny from all
    </Location>
    <Directory "/data/httpd/oms">
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
  • 配置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/oms/config/developer.zl'
  • 服务的启动

apache +php 的环境中我们不需要php-fpm进程

所以我们关闭php-fpm 并且设置开机不启动

/etc/init.d/php-fpm56 stop
chkconfig php-fpm56 off

需要启动的服务,注意已经启动的服务可以不去启动

/etc/init.d/httpd start
/etc/init.d/mysqld start
/etc/init.d/redis start
/etc/init.d/memcached start

注意上面修改完apache和php的配置文件之后 需要重启服务

/etc/init.d/httpd restart

apache和redis加入开机自启(其他服务都可以用这种方式设置开机自动启动)

chkconfig redis on
chkconfig httpd on

apache启动之后可能会出现以下报错

正在启动 httpd:httpd: apr_sockaddr_info_get() failed for 192-168-10-61
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

解决方法

1.vim /etc/httpd/conf/httpd.conf
ServerName localhost:80                        
2.或者在 /etc/hosts 中填入自己的主机名称 192-168-10-61,
如下:
   192.168.10.61 192-168-10-61

  • 关于mysql

mysql默认安装完之后root密码为空,这里为安全起见我们修改一下root密码

mysqladmin  password 'omspassword'

授权并创建oms数据库账号密码

mysql -S /tmp/mysql.sock -p omspassword  -e "GRANT ALL ON oms_dbname.* TO 'oms_username'@'127.0.0.1' IDENTIFIED BY 'oms_password';"

四.从基于rpm包安装的php5.3 升级到php5.6

需要注意的是升级的时候 请事先做好一切备份不仅限于文档中的配置文件,一切你可以想到的以防万一!!

php环境检查

查看之前部署的包

rpm -qa |grep php

php-pear-1.9.4-5.el6.noarch
php-pecl-igbinary-1.2.1-1.el6.x86_64
php-pdo-5.3.29-1.el6.x86_64
php-pecl-memcached-1.0.0-1.el6.x86_64
php-xml-5.3.29-1.el6.x86_64
php-pecl-redis-2.2.8-1.el6.x86_64
php-pecl-mongo-1.4.4-1.el6.x86_64
php-5.3.29-1.el6.x86_64
php-xmlrpc-5.3.29-1.el6.x86_64
php-fpm-5.3.29-1.el6.x86_64
php-ZendGuardLoader-5.3.29-1.shopex.x86_64
php-common-5.3.29-1.el6.x86_64
php-cli-5.3.29-1.el6.x86_64
php-pecl-imagick-2.2.2-5.el6.x86_64
php-gd-5.3.29-1.el6.x86_64
php-mysql-5.3.29-1.el6.x86_64
php-mcrypt-5.3.29-1.el6.x86_64
php-pecl-memcache-3.0.5-4.el6.x86_64
php-bcmath-5.3.29-1.el6.x86_64
php-soap-5.3.29-1.el6.x86_64
php-mbstring-5.3.29-1.el6.x86_64

rpm -qa |grep httpd

httpd-tools-2.2.15-59.el6.centos.x86_64
httpd-2.2.15-59.el6.centos.x86_64
备份相关的配置文件
mkdir bak
cp /etc/php.ini /etc/php.d/Zend.ini bak/
cp -r /etc/httpd/ bak/

安装PHP5.6 以及相关扩展

install
yum install php-fpm56 php-fpm56-apache   Zend56 php-redis56  php-mongo56  php-amqp56 php-memcache56 php-memcached56 -y

修改apache调用的php模块
/etc/init.d/httpd stop
rm -f /etc/httpd/conf.d/php.conf

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/oms/config/developer.zl'
/etc/init.d/httpd start

至此php已经升级到5.6

需要注意的是升级的时候 请事先做好一切备份不仅限于文档中的配置文件,一切你可以想到的以防万一!!


沪ICP备05002918号

© 2003-2017 ShopEx,Inc.All rights reserved.