【操作记录】CentOS 6 编译安装php

下载

wget http://php.net/distributions/php-5.6.15.tar.gz

解压

tar zxvf php-5.6.15

安装依赖

yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel openssl openssll-devel libxslt-devel libmcrypt-devel mhash-devel 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 krb5-devel libidn libidn-devel

编译安装

./configure --prefix=/home/server/php \
--enable-fpm \
--enable-mbstring \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd


make && make install && make clean

创建配置文件,并复制到正确位置

cp 解压包路径/php.ini-development /home/server/php/php.ini
cp /home/server/php/etc/php-fpm.conf.default /home/server/php/etc/php-fpm.conf
cp /home/server/php/sbin/php-fpm /usr/local/bin

添加用户组和用户www

groupadd www
useradd -r -g www -s /bin/false www

将php.ini文件中的配置项cgi.fix_pathinfo 设置为 0 。

vi /home/server/php/php.ini

定位到 cgi.fix_pathinfo= 并将其修改为如下所示
cgi.fix_pathinfo=0

在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www 用户和 www用户组的身份运行。

vi /home/server/php/etc/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

# 保存修改,并退出编辑
:wq

# 然后启动php-fpm服务
/usr/local/bin/php-fpm

在/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

# php程序根目录
PHP_PATH=/home/server/php

php_fpm_BIN=/usr/local/bin/php-fpm
php_fpm_CONF=$PHP_PATH/etc/php-fpm.conf
php_fpm_PID=$PHP_PATH/etc/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

添加php-fpm到服务

chkconfig --add php-fpm

开启服务

/etc/init.d/php-fpm start

开机自启

chkconfig php-fpm on

配置nginx以支持php应用

# 修改nginx配置文件,因为之前已经创建独立的网站配置文件localhost.conf
vi /home/server/nginx/conf/vhosts/localhost.conf

location / {
    # 网站根目录
    root   /home/webroot/localhost;
    # 默认文档
    index  index.php index.html index.htm;
}

# 添加对php文档的支持
location ~ \.php$ {
    root           /home/webroot/localhost;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值