LAMP 架构——PHP-7.1.6 源码编译安装

说明

一个 apache 服务器内可以同时安装 php5 和 php7,但是只能运行其中一个,另外一个需要注释掉 apache 配置文件内对应的 LoadModule


1, 下载并安装

[root@dl-001 src]#  wget http://cn2.php.net/distributions/php-7.1.6.tar.gz
[root@dl-001 src]#  tar -zxvf php-7.1.6.tar.gz
[root@dl-001 src]#  cd php-7.1.6

2, 初始化

[root@dl-001 php-7.1.6]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif 

说明:php7 内已经移除了–with-mysql 参数

错误 1

configure: error: xml2-config not found. Please check your libxml2 installation.

说明:缺少 xml2 库。

解决办法:

[root@dl-001 php-5.6.30]# yum list |grep libxml2		//查找相关的库安装包
[root@dl-001 php-5.6.30]# yum install -y libxml2-devel	//安装库文件

错误 2

configure: error: Cannot find OpenSSL's <evp.h>

说明:缺少 OpenSSL’s。
#### 解决办法

[root@dl-001 php-5.6.30]# yum install -y openssl-devel

错误 3

configure: error: Please reinstall the BZip2 distribution

说明:重新安装 BZip2。

解决办法

[root@dl-001 php-5.6.30]# yum install -y bzip2-devel

错误 4

configure: error: jpeglib.h not found.

说明:缺少 jpeg 库。

解决办法

[root@dl-001 php-5.6.30]# yum install -y libjpeg-devel

错误 5

configure: error: png.h not found.

说明:缺少 png 库。

解决办法

[root@dl-001 php-5.6.30]# yum install -y libpng-devel

错误 6

configure: error: freetype-config not found.

说明:缺少 freetype 库。
#### 解决办法

[root@dl-001 php-5.6.30]# yum install -y freetype-devel

错误 7

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

说明:缺少 mcrypt 库。

解决办法

[root@dl-001 php-5.6.30]# yum install epel-release
[root@dl-001 php-5.6.30]# yum install -y libmcrypt-devel

3, 编译安装

[root@dl-001 php-7.1.6]# make			//编译
[root@dl-001 php-7.1.6]#  make install			//安装

PHP 说明:

查看 apache 生成 php7 模块

[root@dl-001 src]# ls /usr/local/apache2.4/modules/libphp7.so

查看 php7 所加载的模块

[root@dl-001 src]#  /usr/local/php7/bin/php -m

apache 服务器可以存在 2 种版本的 php,通过在 apache 的配置文件中注释掉相应的行来关闭某个版本的 php 模块

[root@dl-001 src]#  vim /usr/local/apache2.4/conf/httpd.conf

在 LoadModule 行前加 #注释