1. 编译安装apache 2.4

参考Centos 6.9 apahce 2.4.29编译安装

2. PHP官网下载Stable版本

http://php.net/downloads.php

#curl -O http://cn2.php.net/distributions/php-7.2.3.tar.bz2

3.安装依赖包

有个别包需要EPEL源,可提前配置好Aliyun的Yum源

#yum install bzip2-devel libxml2-devel libmcrypt-devel

注意:php-7.0以上版本使用--enable-mysqlnd --withmysqli=mysqlnd ,原--with-mysql不再支持

4.编译安装

在编译之前,了解一下表中的内容,特别是连接mysql的api方法

image

编译参数

#cd php-7.2.3

./configure --prefix=/usr/local/php-7.2.3 \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts \
--disable-fileinfo

编译与安装

# make -j 8
出现Build complete. 那么,恭喜编译成功

# make install

创建一个软链接,方便管理版本

#ln -s php-7.2.3/ php

5.复制php配置文件

注意,这些文件是在源码目录里
# cp php.ini-production /etc/php.ini
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm

6.修改php-fpm启动脚本

# vim /etc/rc.d/init.d/php-fpm

prefix=/usr/local/php   > 把这行修改为指定的编译路径

7.生成php-fpm配置文件

# sed -ri.bak s#php-7.2.3#php#g /usr/local/php/etc/php-fpm.conf.default
# mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# mv /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

8.添加php-fpm为启动服务

# chkconfig --add php-fpm
# chkconfig php-fpm

9.配置httpd支持php

# vim /etc/httpd2.4/httpd.conf
确保以下2条取消注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

# 如果使用的是虚拟主机形式,把下面4行添加到主机标签中
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/www/virtualhost/$1

其中/app/www/virtualhost指的是站点文件目录

例子:

<VirtualHost *:80>
    DocumentRoot "/app/www/virtualhost"
    ServerName www.hunk.tech
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/www/virtualhost/$1

        <IfModule dir_module>
                DirectoryIndex index.php index.html
        </IfModule>

        <Directory "/app/www/virtualhost">
                AllowOverride None
                Options None
                Require all granted
        </Directory>

</VirtualHost>

10.测试php

#ss -nlt
fcgi正在监听端口
State      Recv-Q Send-Q                                           Local Address:Port 
LISTEN     0      128                                                  127.0.0.1:9000 

编辑一个php的测试文件
#vim /app/www/virtualhost/index.php

<?php
  phpinfo();
?>

image

image