如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

感谢大家的支持,本篇文章中,苏南大叔还是想和大家说说,有关php源码编译的事情。在上一篇文章中,苏南大叔编译了一个最简版本的php。事实上,这个最简版本的php,距离我们的最终能够使用的地步,还是有很大差距的。在本篇文章中,苏南大叔,稍稍对前两篇文章,进行一下再加工。目的就是:使得自编译的最新版apache,能够支持自编译的最新版php。当然,这种情况下,php和apche的关系是apache handler。特别提示:如果聪明的读者们,并不考虑apache,而使用nginx做服务器软件的话,则不需要考虑本篇内容。

寻找apxs文件位置

如果您的系统里面,本来就存在apxs文件,那么这里,并不需要过多再次费事。如果,在您的mac里面,无法找到apxs文件,那么下面这篇文章,也许是您的选择,https://newsn.net/say/mac-apache24.html

那么,苏南大叔得到的该文件的地址是:/usr/local/apache2/bin/apxs 。这个地址我们可以暂时记下来,下一步会用到这个地址。

apache的php模块安装部署

从上一篇文章中,我们可以知道:默认情况下,apache是不支持php的。编译php的能力启用,是必须通过php和apache的联合再次编译而获得的。这个过程的关键词就是apxs。编译的方式,其实也非常简单,就是在./configure中指定参数`--with-apxs2=/usr/local/apache2/bin/apxs',这样来获得的,其他的情况并无异议。

make clean
./configure --prefix=/usr/local/php72 --enable-fpm --with-apxs2=/usr/local/apache2/bin/apxs
make
sudo make install

mac系统,编译apache的php7模块 - 000

这个apxs的相关参数,我们是通过对./configure文件的的参数列表这样分析获得的。

./configure --help|grep apxs

mac系统,编译apache的php7模块 - 006

编译完成后,我们在apache的模块目录下面,就可以发现一个libphp7.so文件。但是苏南大叔的实际操作过程中,是得到一个warning的,但是貌似没有什么问题。

mac系统,编译apache的php7模块 - 010

但是这个so文件的启用,还需要我们在apache的配置文件httpd.conf中添加些语句,才能启用。

LoadModule php7_module        modules/libphp7.so
AddType application/x-httpd-php .php .html .htm
PHPIniDir /usr/local/etc/php.ini

关于,上述代码中的PHPIniDir,您可以指定一个位置。当然,也可以不用指定这个位置。使用系统默认的ini位置,因为后续,我们需要多次编辑这个ini文件。所以,这里建议您还是指定一个位置,便于我们后续功能模块的添加。当然,文件内容,目前我们可以直接清空即可,会使用默认的ini内容的。

结论

apache的这种php支持方式,我们称之为apache handler模式,是使用apache做服务器软件的时候,最常见的方式。我们通过指定apxs文件,使得apche获得php的执行能力。然后通过指定的ini文件,不断添加新的php模块。这就是这个过程的最基本套路。您学会了么?

更多apache相关文件,可以点击这里查看:https://newsn.net/tag/apache/

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。