错误SCRIPT_FILENAME&PHP_SELF中的Apache 2.4.26
与Apache 2.4.26使用PHP-FPM 7.1.6,$_SERVER['SCRIPT_FILENAME']
(和$_SERVER['PHP_SELF']
)是一个文件夹上不正确的:错误SCRIPT_FILENAME&PHP_SELF中的Apache 2.4.26
阿帕奇2.4.26:
/index.php
的Apache 2.4.25:
/myfolder/index.php
有什么不对?
我这个新的配置指令固定它的Apache配置:
ProxyFCGIBackendType GENERIC
在全球配置中SetHandler指令之前。默认是FPM,但对某些php-fpm配置(SetHandler和套接字)不正确。
有了这个bug全部$_SERVER['SCRIPT_FILENAME']
和$_SERVER['PHP_SELF']
Apache变量($_SERVER
)(从php-fpm注入)是错误的,他们没有路径!
ProxyFCGIBackendType默认为FPM,但对许多配置而言都是错误的。 Apache httpd应该添加GENERIC作为默认不破坏网站。
参见:https://httpd.apache.org/docs/2.4/en/mod/mod_proxy_fcgi.html#proxyfcgibackendtype
(这将是一个更好的评论,但我最小的代表下我。)
像neoteknic点出their answer,使用GENERIC
后端类型将恢复你2.4.25行为,而我们得到这个错误解决。
但是,请注意,2.4.25行为breaks some other people too并不是万能的。如果您处于绑定状态,新的ProxyFCGISetEnvIf
directive可以让您直接控制FCGI环境,并且如果您需要它们,它可以接受httpd表达式语法来执行一些非常复杂的操作。这只有在你明白那些环境应该是什么的时候才有用,但这是另一种选择。
FWIW他们意识到这一点,并为它的下一个版本工作。 –
也为我工作。在etc/sites-available文件的顶部添加它 – lprent
你知道我是如何修改/改变这个内部的一个puphpet/vagrant设置吗? – Michael