`

PHP环境搭建

 
阅读更多

1.安装编译环境

yum -y install gcc automake autoconf libtool make gcc-c++ glibc

 

2.安装依赖包(按需安装)

yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel

 

3.安装PHP

wget -O php-5.6.14.tar.gz http://cn2.php.net/get/php-5.6.14.tar.gz/from/this/mirror

tar zxvf php-5.6.14.tar.gz

cd php-5.6.14

 

./configure --enable-fpm \

--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \

--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \

--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \

--enable-zip --with-pcre-regex --with-mysql --with-mysqli \

 

--with-gd --with-jpeg-dir

 

make

 

make install

 

4.给php创建专有的用户和组www-data

groupadd www-data

 

useradd -g www-data www-data

 

5.生成修改php-fpm的默认配置,并使php-fpm以www-data用户的身份运行

cd /usr/local/etc/

cp php-fpm.conf.default php-fpm.conf

vi php-fpm.conf

找到并修改为以下行(149行)

user = www-data

group = www-data

找到并修改以下行(164行)(为了支持使用任意IP访问,为后面负载均衡做准备):

listen = [::]:9000

 

以上修改成功后,php-fpm是可以直接提供服务了

 

6.将php-fpm注册将为系统服务

首先,修改php-fpm的配置文件,设置pid文件存放路径:

vi /usr/local/etc/php-fpm.conf

找到并修改如下内容(25行):

pid = /var/run/php-fpm.pid

在/etc/init.d/中我们创建一个服务脚本php-fpm

vi /etc/init.d/php-fpm

 

写入以下内容:

#! /bin/sh

 

### BEGIN INIT INFO

# Provides:          php-fpm

# Required-Start:    $remote_fs $network

# Required-Stop:     $remote_fs $network

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: starts php-fpm

# Description:       starts the PHP FastCGI Process Manager daemon

### END INIT INFO

 

prefix=/usr

exec_prefix=/usr

 

php_fpm_BIN=/usr/local/sbin/php-fpm

php_fpm_CONF=/usr/local/etc/php-fpm.conf

php_fpm_PID=/var/run/php-fpm.pid

 

 

php_opts="--fpm-config $php_fpm_CONF"

 

 

wait_for_pid () {

        try=0

 

        while test $try -lt 35 ; do

 

                case "$1" in

                        'created')

                        if [ -f "$2" ] ; then

                                try=''

                                break

                        fi

                        ;;

 

                        'removed')

                        if [ ! -f "$2" ] ; then

                                try=''

                                break

                        fi

                        ;;

                esac

 

                echo -n .

                try=`expr $try + 1`

                sleep 1

 

        done

 

}

 

 

case "$1" in

        start)

                echo -n "Starting php-fpm "

 

                $php_fpm_BIN $php_opts

 

                if [ "$?" != 0 ] ; then

                        echo " failed"

                        exit 1

                fi

 

                wait_for_pid created $php_fpm_PID

 

                if [ -n "$try" ] ; then

                        echo " failed"

                        exit 1

                else

                        echo " done"

                fi

        ;;

 

        stop)

                echo -n "Gracefully shutting down php-fpm "

 

                if [ ! -r $php_fpm_PID ] ; then

                        echo "warning, no pid file found - php-fpm is not running ?"

                        exit 1

                fi

 

                kill -QUIT `cat $php_fpm_PID`

 

                wait_for_pid removed $php_fpm_PID

 

                if [ -n "$try" ] ; then

                        echo " failed. Use force-quit"

                        exit 1

                else

                        echo " done"

                fi

        ;;

 

        force-quit)

                echo -n "Terminating php-fpm "

 

                if [ ! -r $php_fpm_PID ] ; then

                        echo "warning, no pid file found - php-fpm is not running ?"

                        exit 1

                fi

 

                kill -TERM `cat $php_fpm_PID`

 

                wait_for_pid removed $php_fpm_PID

 

                if [ -n "$try" ] ; then

                        echo " failed"

                        exit 1

                else

                        echo " done"

                fi

        ;;

 

        restart)

                $0 stop

                $0 start

        ;;

 

        reload)

 

                echo -n "Reload service php-fpm "

 

                if [ ! -r $php_fpm_PID ] ; then

                        echo "warning, no pid file found - php-fpm is not running ?"

                        exit 1

                fi

 

                kill -USR2 `cat $php_fpm_PID`

 

                echo " done"

        ;;

 

        *)

                echo "Usage: $0 {start|stop|force-quit|restart|reload}"

                exit 1

        ;;

 

 

esac

 

给该脚本赋予执行权限:

chmod +x /etc/init.d/php-fpm

注册为服务并随系统启动:

chkconfig php-fpm on

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics