安装PHP5

安装PHP5
#cd /usr/local/src/
#wget http://cn2.php.net/distributions/php-5.6.32.tar.gz //下载包
#tar zxvf php-5.6.32.tar.gz //解压
#cd php-5.6.32/
#./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
//命令解释:
--prefix指定安装目录;
--with-apxs2是Apache的一个工具,它可以自动把模块放到Apache的mods目录里,且在它的配置文件里增加一行load module,自动安装扩展模块;
--with-config-file-path指定配置文件所在路径;
--with-mysql指定mysql路径;
--with-pdo-mysql指定pdo-mysql路径;
--with-mysqli和上面两个是指定mysql的库或驱动,要让PHP和mysql进行通信,首先需要编译出一个支持它的模块,老版本使用--with-mysql,新版本使用--with-mysqli,新版本直接把老版本的--with-mysql废弃,不再使用;
后面的一些都是指定PHP的一些模块,如果没有特殊要求,直接复制这段参数就可以,基本都是通用的,要搞清楚一个指定Apache的,一个指定mysql的。
安装过程中,可能会报一些错误,大多数是因为缺少某些库
安装出现如下报错:error:xml2-config not found. Please check you libxml2 installation.
安装PHP5
解决方法:# yum install -y libxml2-devel //安装libxml2-devel
如不确定它缺少哪个库,可以使用命令# yum list |grep xml2列出来,一般使用的库名称都是:库名称-devel
安装完成之后,再次执行./configure + 一长串参数的命令
#./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
再次报错:error:Cannot find OpenSSL's <evp.h>
安装PHP5
解决方法: # yum install -y openssl-devel
再次执行./configure + 一长串参数的命令,它这个报错是遇到一个错误就停止

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

再次报错: error: Please reinstall the BZip2 distribution
安装PHP5
解决方法:# yum install -y bzip2-devel
继续执行./configure + 一长串参数的命令
再一次的报错:error:jpeglib.h not found.
安装PHP5
解决方法:# yum install -y libjpeg-devel,我自己是yum安装的libjpeg-devel包,但是它安装的是libjpeg-turbo-devel-1.2.90-5.el7包,这是它自动匹配的
安装PHP5
再执行./configure + 一长串参数的命令
再次报错:error:png.h not found.
安装PHP5
解决方法:# yum install -y libpng-devel
再执行./configure + 一长串参数的命令
再次报错: error: freetype-config not found.
安装PHP5
解决方法:# yum install -y freetype-devel
再执行./configure + 一长串参数的命令
再次报错:error: mcrypt.h not found. Please reinstall libmcrypt.
安装PHP5
解决方法:首先安装epel扩展源,因为libmcrypt在epel扩展源里面,所以先安装epel扩展源

yum install -y epel-release

yum install -y libmcrypt-devel

再执行./configure + 一长串参数的命令
安装PHP5
出现如图所示,则说明./configure + 一长串参数的命令执行成功

echo $? //也可以执行echo $?来查看是否执行成功

make //安装

echo $? //检查make执行是否有错误

make install

ls /usr/local/php/ //查看php目录下的几个文件

bin etc include lib php

ls /usr/local/php/bin/php //PHP的核心配置文件路径

/usr/local/apache2.4/modules/libphp5.so //这个路径就是我们想要的PHP扩展模块,PHP和Apache结合是通过libphp5.so 的这个.so文件实现的

/usr/local/php/bin/php -m //查看PHP所加载的模块有哪些

/usr/local/apache2.4/bin/httpd -M //查看Apache的模块

安装PHP5
可以看到最后一行 php5_module (shared),说明php是作为httpd一个扩展模块的形式存在的,如果删除.so文件,那么Apache肯定不支持PHP了

ls -l /usr/local/apache2.4/modules/libphp5.so //php的.so模块文件路径

vi /usr/local/apache2.4/conf/httpd.conf //httpd的配置文件,可以看到下图它指定的模块路径

:q!

安装PHP5

/usr/local/php/bin/php -i |less //-i可以查看到PHP的一些信息,包括一些参数

安装PHP5

cp php.ini-production /usr/local/php/etc/php.ini //production是正式生产环境上使用的

cp php.ini-development /usr/local/php/etc/php.ini //development 是测试环境、开发环境使用的

/usr/local/php/bin/php -i |less

安装PHP5

猜你喜欢

转载自blog.51cto.com/13669226/2120686