为httpd2.4.x编译安装php模块

前面咱们已经编译安装了httpd服务,那么如今,咱们就来编译php吧~~php

php简介html

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸取了C语言、Java和Perl的特色,利于学习,使用普遍,主要适用于Web开发领域。mysql

跟web服务的结合主要可使用CGI、apache module、fcgi的方式结合,CGI由于效率问题已经算是被淘汰的技术了,而将php做为apache module的话,配置相对简单,但效率不是最好的,由于apache再加载静态资源的时候也会加载php-module,而将php以fcgi的方式貌似成为了如今的主流选择,这篇文章主要记录下编译Php做为apache模块的步骤。linux

下载phpweb

访问php的官方网站,能够看到如今主要有三个分支5.6.x 7.0.x 7.1.x,我选择5.6.x来编译。sql

cd ~
wget http://hk1.php.net/distributions/php-5.6.31.tar.gz

配置并编译apache

先安装两个包 yum install libxml2-devel openssl-devel ,这两个包在后面编译会被依赖。app

tar -xf php-5.6.31.tar.gz 
cd php-5.6.31
./configure --prefix /usr/local/php56 --with-apxs2=/usr/local/httpd24/bin/apxs  --with-config-file-path=/etc/ --with-config-file-scan-dir=/etc/php.d --with-libxml-dir --with-openssl --with-zlib --enable-mbstring --with-mysql
make -j 2 && make install
  • --prefix /usr/local/php56 //设置安装路径
  • --with-apxs2=/usr/local/httpd24/bin/apxs //指定apache2的apxs程序,此程序是用来编译apache模块的
  • --with-config-file-path=/etc/ //在哪里加载php.ini文件
  • --with-config-file-scan-dir=/etc/php.d //在哪里扫描额外的php配置
  • --with-libxml-dir //启用libxml ,虽然不知道干什么的...可是看着顺眼就启用了
  • --with-openssl //启用openssl支持
  • --with-zlib //启用zlib支持
  • --enable-mbstring //启用mbstring支持
  • --with-mysql //启用mysql支持

关于这些选项能够执行./configure --help查看帮助,由于小弟是个菜鸟,因此不少东西没启用抱歉
或者你也能够在生产环境中的phpinfo()函数中得到编译选项,以下图所示
为httpd2.4.x编译安装php模块为httpd2.4.x编译安装php模块函数

注意:如遇下面报错请执行make clean 后再编译便可学习

libtool: link: `ext/date/php_date.lo' is not a valid libtool object

建立php配置文件

cp php.ini-development /etc/php.ini  //此文件在源码目录下
mkdir /etc/php.d/

修改apache配置

1.检查httpd.conf中是否加载了相应模块,这里程序应该帮咱们加过了

LoadModule php5_module modules/libphp5.so

2.添加以下配置到httpd.conf

SetHandler application/x-httpd-php

3.重启httpd服务

apachectl restart

测试

1.在web目录下建立test.php文件

echo "< ?php phpinfo() ?>" > /usr/local/httpd24/htdocs//test.php      //这里填相应的web根目录便可

2.访问 http://IP/tset.php
为httpd2.4.x编译安装php模块为httpd2.4.x编译安装php模块

编译php扩展模块

php源码包中有一个ext目录,这里存放了全部当前版本可用的扩展模块,若是在编译时没有为php启用某些支持,能够编译扩展模块来额外添加支持。

1.编译模块

cd /root/php-5.6.31/ext/mcrypt
export PATH=$PATH:/usr/local/php56/bin/  //这里我临时改下PATH环境变量,推荐加入到配置文件中
phpize 
./configure 
make 
make install

看到相似以下提示即说明安装成功
Installing shared extensions: /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/

2.修改配置

修改php.ini 将其extension-dir修改到咱们安装的这个目录

echo "extension_dir = \"/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/\"" >> /etc/php.ini
echo "extension=mcrypt.so"  >> /etc/php.ini

3.测试

重启httpd

apachectl restart

再次访问phpinfo页面,看到以下图即为安装成功
为httpd2.4.x编译安装php模块为httpd2.4.x编译安装php模块

原文来自:http://100ye.wang/linux/httpd-make-php.html

本文地址:http://www.linuxprobe.com/httpd-make-php.html

相关文章
相关标签/搜索