CentOS7+Apache配置PHP7

下载和准备工作

在 PHP 官网找到 PHP7.0.5 的下载地址,并且使用 wget 下载

1
wget http://cn2.php.net/get/php-7.0.5.tar.gz/from/this/mirror

下载之后解压

1
tar -vzxf mirror

安装之前,确定一些 PHP 的依赖包已经安装,如果没有,可以一并安装

1
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel php-mcrypt libmcrypt libmcrypt-devel

如果没法安装一些库的话,可以先为 centos 配置 rpmforge 及 epel 源,具体方法可以搜索一下。

安装

进入解压之后的文件夹,进行配置,并输入配置参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-mcrypt=/usr/include \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache

然后编译安装

1
make && make install

配置 PHP7

复制一些配置文件

1
2
3
4
5
cp php.ini-production /usr/local/php7/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
chmod +x /etc/init.d/php7-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

启动 php-fpm

1
/etc/init.d/php7-fpm start

再启动 php-fpm 之后,如果出现问题,可以修改配置文件

1
vim /usr/local/php7/etc/php-fpm.d/www.conf

把监听的端口改变一下 然后可以查看 php 版本

1
/usr/local/php7/bin/php -v

可以看到,已经是 PHP7 了。

安装方法可以参考:http://www.tuicool.com/articles/BR7Bza

配置 Apache

这里,使用 php-fpm 和 fast-cgi 进行配合,抛弃之前的 php_moudel。

使用 Apache2.4 可以支持的最简单的 ProxyPass 方法,在 Apache 配置文件中的</Directory> 之后加入

1
2
3
4
<LocationMatch ^(.*\.php)$>
ProxyPass fcgi://127.0.0.1:9000/path/to/webroot/
ProxyErrorOverride on
</LocationMatch>

重启 Apache,完成!

具体配置方法可以参考:https://cnzhx.net/blog/apache-httpd-mod_proxy_fcgi-php-fpm/