阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

28次阅读
没有评论

共计 2256 个字符,预计需要花费 6 分钟才能阅读完成。

前面我们已经编译安装了 httpd 服务,那么现在,我们就来编译 php 吧~~

php 简介

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

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

下载 php

访问 php 的官方网站,可以看到现在主要有三个分支 5.6.x 7.0.x 7.1.x,我选择 5.6.x 来编译。

cd ~
wget http://hk1.php.net/distributions/php-5.6.31.tar.gz
配置并编译

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

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 模块

注意:如遇下面报错请执行 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 "" > /usr/local/httpd24/htdocs//test.php      // 这里填相应的 web 根目录即可 

2. 访问 http://IP/tset.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 模块

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计2256字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中