mac系统,如何编译apache的php7模块?
发布于 作者:苏南大叔 来源:程序如此灵动~感谢大家的支持,本篇文章中,苏南大叔还是想和大家说说,有关php源码编译的事情。在上一篇文章中,苏南大叔编译了一个最简版本的php。事实上,这个最简版本的php,距离我们的最终能够使用的地步,还是有很大差距的。在本篇文章中,苏南大叔,稍稍对前两篇文章,进行一下再加工。目的就是:使得自编译的最新版apache,能够支持自编译的最新版php。当然,这种情况下,php和apche的关系是apache handler
。特别提示:如果聪明的读者们,并不考虑apache,而使用nginx做服务器软件的话,则不需要考虑本篇内容。
寻找apxs
文件位置
如果您的系统里面,本来就存在apxs
文件,那么这里,并不需要过多再次费事。如果,在您的mac里面,无法找到apxs
文件,那么下面这篇文章,也许是您的选择:
那么,苏南大叔得到的该文件的地址是:/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
这个apxs
的相关参数,我们是通过对./configure
文件的的参数列表这样分析获得的。
./configure --help|grep apxs
编译完成后,我们在apache的模块目录下面,就可以发现一个libphp7.so
文件。但是苏南大叔的实际操作过程中,是得到一个warning的,但是貌似没有什么问题。
但是这个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/ 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。