centos7.2 环境下配置 Apache2.4 +PHP5.6+Redis+Supervisord

一、升级YUM源

yum -y update

二、安装Apache

查看yum中Apache的版本

yum list httpd #确认版本为2.4版本

安装:

yum install httpd -y

自动安装结束:

systemctl stop httpd.service

systemctl start httpd.service

systemctl restart httpd.service

使用启用/禁用服务来控制开机启动

systemctl enable httpd.service

systemctl disable httpd.service

三、安装PHP

1.安装epel-release #有些第三方软件源需要 EPEL 的'epel-testing'源来安装依赖组件

yum install epel-release

2.添加yum仓

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

3.执行安装php

yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-fpm

4.其他

php-fpm配置文件在: /etc/php-fpm.conf 和 /etc/php-fpm.d/www.conf

重启php-fpm命令: systemctl restart php-fpm

四、安装REDIS

1.安装tcl #按照所查资料分析,tcl测试工具,在centos十分方便

yum -y install tcl

2.进入/usr/local/src 目录并下载redis #目录随意

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

3.解压并进入解压后文件夹

tar zxvf redis-3.2.8.tar.gz

cd redis-3.2.8

4.编译

make

make PREFIX=/usr/local/redis install #/usr/local/redis目录为我创建的存放redis的目录

5.测试redis(可省略)

cd src #进入解压包的src目录

make test #执行测试命令

正常测试之后最后的结果显示为:\o/ All tests passed without errors!

6.配置conf文件

之前我们已经为redis 创建了一个目录 /usr/local/redis,现在在此文件夹中在创建一个目录etc用来存放配置文件

mkdir -p /usr/local/redis/etc

进入redis解压目录把redis.conf 文件复制到 /usr/local/redis/etc/下面

cd /usr/local/src/redis-3.2.8

cp redis.conf /usr/local/redis/etc/

复制好配置文件后,我这里对配置文件编辑了两处

vim /usr/local/redis/etc/redis.conf

daemonize yes #redis将以守护进程的方式运行,默认为no会暂用你的终端

timeout 300 #当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

7.创建启动脚本

拷贝解压包下utils下redis启动脚本redis_init_script 至 /etc/init.d/下面并命名为redis

cp /usr/local/src/redis-3.2.8/utils/redis_init_script /etc/init.d/redis

修改redis修改脚本pid及conf路径为实际路径

vim /etc/init.d/redis

我修改的参数如下:

REDISPORT=6379

EXEC=/usr/local/redis/bin/redis-server

CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid

CONF="/usr/local/redis/etc/redis.conf"

wq! 保存\退出

给启动脚本添加权限

chmod +x /etc/init.d/redis #相应的删除权限命令是 chmod –x /etc/init.d/redis

设置自启动

chkconfig redis on

设置自启动运行报错,请在etc/init.d/redis文件中添加启动优先级信息,

vim /etc/init.d/redis

内容如下:

--------------------------------

# chkconfig:2345 90 10

--------------------------------

再次执行chkconfig redis on,成功

校验启动命令:service redis stop{start\restart}

五、安装Supervisord

使用Setuptools快速安装

yum install python-setuptools

easy_install pip

pip install supervisor

如果提示版本过低执行

pip install --upgrade pip

生成必要的配置文件

echo_supervisord_conf > supervisord.conf

将配置文件统一放在/etc下

cp supervisord.conf /etc/supervisord.conf

新建一个配置文件夹以分离加载配置

mkdir /etc/supervisord.d/

修改配置文件

vi /etc/supervisord.conf

修改内容(开启web管理)

[inet_http_server]

port=0.0.0.0:9001

username=user

password=123

并加入以下配置信息

[include]

files = /etc/supervisord.d/*.conf

创建启动脚本

vi /etc/init.d/supervisord

内容如下:

#!/bin/sh
#
# /etc/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord
 
# Source init functions
. /etc/rc.d/init.d/functions
 
prog="supervisord"
 
prefix="/usr/local"
exec_prefix="${prefix}"
prog_bin="${exec_prefix}/bin/supervisord"
PIDFILE="/var/run/$prog.pid"
 
start()
{
       echo -n $"Starting $prog: "
       daemon $prog_bin -c /etc/supervisord.conf --pidfile $PIDFILE
       [ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup"
       echo
}
 
stop()
{
       echo -n $"Shutting down $prog: "
       [ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown"
       echo
}
 
case "$1" in
 
 start)
   start
 ;;
 
 stop)
   stop
 ;;
 
 status)
       status $prog
 ;;
 
 restart)
   stop
   start
 ;;
 
 *)
   echo "Usage: $0 {start|stop|restart|status}"
 ;;
 
esac

对脚本加入启动项

chmod +x /etc/init.d/supervisord

chkconfig --add supervisord

chkconfig supervisord on

service supervisord start

创建一个被守护的进程tail

vim /etc/supervisord.d/tail.conf

内容

----------------------------------------------------------------------

[program:x] # x是一个程序的名字

command = php /var/www/web1/index.php #此处写入一个需要守护执行的命令行

autostart = true #跟随Supervisor启动

autorestart = true #开启守护,进程意外kill等情况下自动重启进程

startretries= 3 #尝试启动次数

stdout_logfile=/var/log/out.log #控制台标准输出写入日志

stderr_logfile=/var/log/err.log #控制台错误输出写入日志

-------------------------------------------------------------------------

然后重启服务看看守护效果

supervisord -c /etc/supervisord.conf

/etc/init.d/supervisord restart