apache的fastcgi模式下,如何安全设置phar文件?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
书接上文,apache
对接php
有两种模式,大多数情况下,使用的是handler
模式。但是个别情况下,也会使用fastcgi
模式,也就是说,php
文件都是交予php-fpm
处理的,这种情况下,phar
的安全性又如何呢?答案将在本文中揭晓。
前言
读取本文内容之前,请自行查看phpinfo里面关于server api
的值,是否是FPM/FastCGI
,以确定您的环境,是否和本文中苏南大叔所描述环境一致。
如何配置apache对接php-fpm,请参考苏南大叔的这篇文章。https://newsn.net/say/apache-fastcgi-php.html 。
修改apache的配置文件
httpd.conf关键点如下:
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so
#LoadModule php7_module libexec/apache2/libphp7.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/other/*.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf
<Directory />
AllowOverride none
#Require all denied
allow from all
</Directory>
other/php7.conf:
<IfModule php7_module>
AddType application/x-httpd-php .phar
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
<IfModule proxy_module>
<FilesMatch \.php|\.phar$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</IfModule>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
在这里有三条IfModule指令:
IfModule php7_module
已经失效,大家无视即可。IfModule proxy_module
,这里是敲黑板重点,注意里面的phar字样。IfModule dir_module
,这个设置默认首页的,我们从php7_module
里面提出来了。
效果对比
对于启用phar前后,phar的处理对比图如下:
结论
我们通过修改apache的配置,成功的识别并保护了phar源码,很开心的节奏。
更多有关phar的相关经验文件,苏南大叔提示您,点击这里查看:https://newsn.net/tag/phar/ 。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。