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

默认情况下,php是作为apache的一个mod运行的。而最近,苏南大叔为了研究『.user.ini』文件的使用办法,需要把apache和php的关系,从从属的mod关系,变成对等的fastcgi的关系。

是不是有点晕?写个phpinfo()文件吧,然后看里面Server API这个项目,写着apache handler2.0的话。就无法实践『.user.ini』的好处了,别问我为什么,实践出真知。官方文档也没有说这事。

mac系统,apache使用fastcgi模式对接php - phpinfo

准备php-fpm

苏南大叔是在mac下面实践的这个事情,所以,apache和php-fpm实际上都是已经安装好的。苏南大叔在命令行里面敲了一下php-fpm,貌似有些问题。先是提示/private/etc/php-fpm.conf配置文件没有,后来提示,log文件权限没有。似乎是有些麻烦啊。在etc下面发现了个php-fpm.conf.default文件,果断复制改名。然后把里面的log目录给换个地方。

mac系统,apache使用fastcgi模式对接php - php-fpm-01

然后,执行sudo php-fpm后,貌似就正常启动了。敲入127.0.0.1:9000,似乎也没有看到期待的东西。革命尚未成功,同志还需努力。

准备apache

修改apache的httpd.conf文件,路径在/private/ect/apache2/ 。注释掉了libphp5.so,开启了mod_proxy_fcgi.so和mod_proxy.so,当然,不要忘了vhost相关。

#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/extra/httpd-vhosts.conf
<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
    <IfModule dir_module>
    DirectoryIndex index.html index.php
    </IfModule>
</FilesMatch>

上边对php文件的处理,就转到了fastcgi了。而在 /private/etc/apache2/other/php5.conf中,原版的处理是这样的。特别说明的是:下面的这个配置就是拿出来学习一下,因为已经注释掉了mod_php了,所以这个配置也是没用的了。仅供学习参考一下而已。

<IfModule php5_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

注意: 您的系统里面可能是php7的字样,php5已经快成为过去时了。

附加内容

附上mac系统下,重启apache的命令,如下:

停止服务:sudo apachectl stop
开启服务:sudo apachectl start
重启服务:sudo apachectl restart

重启后,看看phpinfo()的serverAPI吧。如果看到fastcgi的字样,那么就应该是可以的了。加油!

结语

本文内容到此结束,欢迎关注苏南大叔的apache系列博客内容。https://newsn.net/tag/apache/

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