Apache 2.4.26 中的错误 SCRIPT_FILENAME & PHP_SELF
Wrong SCRIPT_FILENAME & PHP_SELF in Apache 2.4.26
Apache 2.4.26 使用 php-fpm 7.1.6,$_SERVER['SCRIPT_FILENAME']
(和 $_SERVER['PHP_SELF']
)在文件夹上不正确:
阿帕奇 2.4.26:
/index.php
阿帕奇 2.4.25:
/myfolder/index.php
怎么了?
我用这个新的配置指令在 apache 配置中修复了它:
ProxyFCGIBackendType GENERIC
在 SetHandler 指令之前的全局配置中。默认是 FPM,但它与一些 php-fpm 配置(SetHandler 和套接字)不正确。
由于这个错误,所有 $_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 在 中指出的那样,使用 GENERIC
后端类型将在我们解决此错误时将您恢复到 2.4.25 行为。
但是请注意,2.4.25 行为 breaks some other people too and is not a panacea. If you're in a bind, the new ProxyFCGISetEnvIf
directive 可以让您直接控制 FCGI envvars,并且它接受一些非常复杂的操作的 httpd 表达式语法,如果您需要的话。这只有在您了解这些环境变量应该是什么的情况下才会有所帮助,但这是另一种选择。
Apache 2.4.26 使用 php-fpm 7.1.6,$_SERVER['SCRIPT_FILENAME']
(和 $_SERVER['PHP_SELF']
)在文件夹上不正确:
阿帕奇 2.4.26:
/index.php
阿帕奇 2.4.25:
/myfolder/index.php
怎么了?
我用这个新的配置指令在 apache 配置中修复了它:
ProxyFCGIBackendType GENERIC
在 SetHandler 指令之前的全局配置中。默认是 FPM,但它与一些 php-fpm 配置(SetHandler 和套接字)不正确。
由于这个错误,所有 $_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 在 GENERIC
后端类型将在我们解决此错误时将您恢复到 2.4.25 行为。
但是请注意,2.4.25 行为 breaks some other people too and is not a panacea. If you're in a bind, the new ProxyFCGISetEnvIf
directive 可以让您直接控制 FCGI envvars,并且它接受一些非常复杂的操作的 httpd 表达式语法,如果您需要的话。这只有在您了解这些环境变量应该是什么的情况下才会有所帮助,但这是另一种选择。