mac系统,apache使用fastcgi模式对接php
发布于 作者:苏南大叔 来源:程序如此灵动~默认情况下,php是作为apache的一个mod运行的。而最近,苏南大叔为了研究『.user.ini』文件的使用办法,需要把apache和php的关系,从从属的mod关系,变成对等的fastcgi的关系。
是不是有点晕?写个phpinfo()文件吧,然后看里面Server API这个项目,写着apache handler2.0的话。就无法实践『.user.ini』的好处了,别问我为什么,实践出真知。官方文档也没有说这事。
准备php-fpm
苏南大叔是在mac下面实践的这个事情,所以,apache和php-fpm实际上都是已经安装好的。苏南大叔在命令行里面敲了一下php-fpm,貌似有些问题。先是提示/private/etc/php-fpm.conf配置文件没有,后来提示,log文件权限没有。似乎是有些麻烦啊。在etc下面发现了个php-fpm.conf.default文件,果断复制改名。然后把里面的log目录给换个地方。
然后,执行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/ 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。