CentOS 7 Linux 安装PHP5.6 - 编译安装(咋个办呢 zgbn)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ai_zxc/article/details/82453345

官方网站下载源码包

http://www.php.net/downloads.php#v5.6.37
这里写图片描述
找到包下载地址后,复制一下,到linux中通过wget命令直接下载。

wget http://am1.php.net/distributions/php-5.6.37.tar.gz

加压缩源码包

tar -zxvf php-5.6.37.tar.gz

编译PHP5.6

进入解压后的php5.6源码文件夹。

配置编译参数

./configure --prefix=/opt/php/php5.6 \
--with-config-file-path=/opt/php/php5.6/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-readline \
--without-pear \
--disable-phar \

编译PHP源码,等待编译结束,中途可能会有错误,按着错误提示安装对应的程序要,直接使用yum安装即可。

make
make install

配置PHP服务参数

从源码包中将php.ini-production文件复制到php安装目录下

cp php.ini-production /opt/php/php5.6/etc/php.ini

进入php安装目录设置php-fpm服务

cd /opt/php/php5.6/etc
cp php-fpm.conf.default php-fpm.conf

修改配置文件中的监听端口号和启动用户

## file : php-fpm.conf

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www
group = www
## file : php-fpm.conf

listen = 127.0.0.1:9001

创建php-fpm启动脚本(脚本代码参见下节),将脚本放到/etc/init.d/php-fpm5.6
测试一下
添加系统服务

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地址
prefix=/opt/php/php5.6
exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_ini=${prefix}/etc/php.ini

php_opts="--fpm-config $php_fpm_CONF -c $php_ini --pid $php_fpm_PID"


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 --daemonize $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
    ;;

    status)
        if [ ! -r $php_fpm_PID ] ; then
            echo "php-fpm is stopped"
            exit 0
        fi

        PID=`cat $php_fpm_PID`
        if ps -p $PID | grep -q $PID; then
            echo "php-fpm (pid $PID) is running..."
        else
            echo "php-fpm dead but pid file exists"
        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"
    ;;

    configtest)
        $php_fpm_BIN -t
    ;;

    *)
        echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
        exit 1
    ;;

esac

猜你喜欢

转载自blog.csdn.net/ai_zxc/article/details/82453345