PHP官网www.php.net 当前主流版本为5.6/7.1

下载php

cd /usr/local/src/ 
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

解压源码包

tar zxf php-5.6.30.tar.gz

配置编译参数

cd php-5.6.30
 ./configure \
 --prefix=/usr/local/php \
 --with-apxs2=/usr/local/apache2.4/bin/apxs \
 --with-config-file-path=/usr/local/php/etc  \
 --with-mysql=/usr/local/mysql \
 --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
// --with-apxs2  apache的一种工具,它可以自动的将扩展模块放到apache的modules目录下,并且在它的配置文件里加上一行
//--with-config-file-path  指定php配置文件的路径
//--with-mysql   指定mysql路径

编译安装

make && make install

安装报错:

错误1:
configure: error: xml2-config not found. Please check your libxml2 installation.
解决办法:
yum install -y libxml2-devel
错误2:
checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
解决办法:
yum install -y bzip2-devel
错误3:
configure: error: jpeglib.h not found.
解决办法:
yum install -y libjpeg-turbo-devel
错误4:
configure: error: png.h not found.
解决办法:
yum install -y libpng libpng-devel
错误5:
configure: error: freetype-config not found.
解决办法:
yum install -y freetype freetype-devel
错误6:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决办法:
yum install -y epel-release
yum install -y libmcrypt libmcrypt-devel

拷贝配置文件

cp php.ini-production /usr/local/php/etc/php.ini

libphp5.so

du -sh /usr/local/apache2.4/modules/libphp5.so 
37M	/usr/local/apache2.4/modules/libphp5.so
这个就是我们想要的扩展模块,apache和php相结合是通过.so

查看加载的模块

/usr/local/php/bin/php -m