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

书接上文,apache对接php有两种模式,大多数情况下,使用的是handler模式。但是个别情况下,也会使用fastcgi模式,也就是说,php文件都是交予php-fpm处理的,这种情况下,phar的安全性又如何呢?答案将在本文中揭晓。

前言

apache的fastcgi模式下,phar安全设置 - 000
apache的fastcgi模式下,phar安全设置(图3-1)

读取本文内容之前,请自行查看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的fastcgi模式下,phar安全设置 - 003
apache的fastcgi模式下,phar安全设置(图3-2)

apache的fastcgi模式下,phar安全设置 - 004
apache的fastcgi模式下,phar安全设置(图3-3)

结论

我们通过修改apache的配置,成功的识别并保护了phar源码,很开心的节奏。

更多有关phar的相关经验文件,苏南大叔提示您,点击这里查看:https://newsn.net/tag/phar/

 【源码】代码片段及相关软件点此获取

 【php】秘籍文章入口,仅传授于有缘之人   php    apache

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!