同事需要安装php环境,本来想编译安装的,但是里面已经有Apache,用YUM安装的,卸载了怕之前设置好的内容丢失,影响使用,所以就想着编译安装加个PHP。

1.YUM安装Apacche。

# yum install -y httpd httpd-devel

查看Apache版本信息:

# apachectl -v

列出Apache相关安装内容:

# rpm -qa | grep httpd

卸载Apache

# rpm –e httpd


2.安装PHP。

apache对PHP的支持是通过apache的mod_php5模块来支持的,这点与nginx不同。nginx是通过第三方的fastcgi处理器才可以对php进行解析。


如果源码编译安装php的话,需要在编译时指定--with-apxs2=/usr/local/apache2/bin/apxs表示告诉编译器通过apache的mod_php5模块来提供对php的解析。


同时php安装的最后一步make install时,我们会看到将动态链接库libphp5.so拷贝到apache2的安装目录的modules目录下,并且还需要在 httpd.conf配置文件中添加LoadModule语句来动态将libphp5.so模块加载进来,从而实现Apache对php的支持。


下载:

# wget http://cn2.php.net/get/php-5.5.35.tar.gz/from/this/mirror

修改名字&&解压:

# mv mirror php-5.5.35.tar.gz && tar xvf php-5.5.35.tar.gz

进入目录:

# cd php-5.5.35

显示当前目录:

# pwd

wKioL1iz7veDkFN2AAANHdqezso024.png


编译:

./configure --prefix=/usr/local/php-5.5.35  --with-apxs2=/usr/bin/apxs
--with-config-file-path=/usr/local/php-5.5.35/etc 
--with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 
--with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local 
--with-freetype-dir=/usr/local --enable-gd-native-ttf 
--with-iconv-dir=/usr/local --enable-mbstring --enable-calendar 
--with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd 
--with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm 
--with-libdir=lib64 --enable-bcmath

PHP cofigure参数解释:

--prefix=/usr/local/php-5.5.35    //php安装路径
--with-apxs2=/usr/bin/apxs    //apxs程序所在路径,默认/usr/bin/apxs或/usr/local/bin/apxs
--with-config-file-path=/usr/local/php-5.5.35/etc    //php配置文件路径
--with-bz2    //支持bz2压缩
--with-curl
--enable-ftp
--enable-sockets    //PHP支持套接字
--disable-ipv6 
--with-gd
--with-jpeg-dir=/usr/local    //jpeg图片生成工具
--with-png-dir=/usr/local    //png图片生成工具
--with-freetype-dir=/usr/local
--enable-gd-native-ttf 
--with-iconv-dir=/usr/local
--enable-mbstring
--enable-calendar 
--with-gettext
--with-libxml-dir=/usr/local    //指定xml库目录
--with-zlib    //让数据文件先压缩在传送
--with-pdo-mysql=mysqlnd 
--with-mysqli=mysqlnd //php访问mysql的另外一种机制
--with-mysql=mysqlnd //编译使用mysql驱动指明路径,如果是rpm包安装的mysql只需写--with-mysql
--enable-dom
--enable-xml    //启用xml功能
--enable-fpm    //以fpm方式运行
--with-libdir=lib64
--enable-bcmath


编译并安装:

# make && make install

安装完成,程序自动将编译完的so文件放到/usr/lib64/httpd/modules/libphp5.so并在Apache的主配置文件/etc/httpd/conf/httpd.conf中引入php5。

wKiom1iz6ojBbisNAAE7ksSHTbk706.png-wh_50

自动

wKioL1iz61_xnOPCAAAyUkQpoMk930.png-wh_50

测试:

#echo "<?php phpinfo(); ?>" > /var/www/html/index.php

在浏览器里 打开网页看能不能显示PHP信息。路径:http://你的IP/index.php  如果显示PHP版信息的紫色界面就说明安装成功了。


PHP服务:

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf  
# cp /root/php-5.5.35/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  
# chmod +x /etc/init.d/php-fpm


并发数压力测试: 用Apache自带的ab

# ab -n 5000 -c 100

测试结果

Requests per second:    263.38 [#/sec] (mean)
Time per request:       379.675 [ms] (mean)
Time per request:       3.797 [ms] (mean, across all concurrent requests)







参考文章:

http://www.cnblogs.com/mrwang1101/p/5513158.html

https://zhidao.baidu.com/question/332795586.html

http://blog.csdn.net/jespere_ling/article/details/49493619

http://blog.csdn.net/yuanyuan_186/article/details/51316799

http://5990383.blog.51cto.com/5980383/1655276

http://blog.csdn.net/gumingyaotangwei/article/details/26092315

http://sunjie123.blog.51cto.com/1263687/1737977