我安装了多个版本的 PHP,我写的。
基本上,它是一个 ApacheLounge 安装,在 Windows 10 上通过 FastCGI 与 PHP 进行通信。
这曾经让我在不同的虚拟主机上同时运行这些 PHP 版本。 Apache 通过 FastCGI 在这些端口上调用正确的 PHP 版本:
- PHP 5.2.17,端口 9052
- PHP 5.3.29,端口 9053
- PHP 5.4.45,端口 9054
- PHP 5.5.38,端口 9055
- PHP 5.6.40,端口 9056
- PHP 7.0.33,端口 9070
- PHP 7.1.33,端口 9071
- PHP 7.2.31,端口 9072
- PHP 7.3.19,端口 9073
- PHP 7.4.7,端口 9074
Everything Some of these had been working for a while after the installation. Yesterday I had to test a website on PHP 5.6, but the ouput was just a "No input file specified message" which, turns out, is not that much descriptive, as a .
所以我开始了系统化的方法。
我为每个 PHP 版本创建了一个 VirtualHost,只有一个带有 echo 语句的 index.php 文件。
我测试了安装的所有PHP版本,所有PHP5版本都无法工作,而PHP7版本则正常工作。
我删除了所有自定义配置文件。不用找了。
我提供了一个简单的index.html 文件,该文件适用于所有虚拟主机。关于 PHP,没有变化。
我以为这是 PHP 5.x 的错误,但在我重新启动电脑后,PHP 5.2 版本开始工作。
我停止、删除并重新安装了一些通过 NSSM 创建的 Windows 服务,没有任何更改。
这就是我想我所知道的:
- 这不是 PHP 5.x 的问题,因为 PHP 5.2 可以工作;
- 这不是 FastCGI 问题,因为所有 VirtualHost 都具有相同的配置,除了端口号之外;
- 这不是 Apache 配置问题,因为它会启动、停止、重新启动并提供服务;
- 这不是PHP配置问题,因为所有配置都是标准的;
- 这不是.htaccess配置问题,因为没有.htaccess文件;
任何关于如何调试此配置或出现问题的想法都值得赞赏。
谢谢。
这个答案是关于我在这个问题上发现的内容,以及它如何为我工作。
On 这个帖子 https://www.askapache.com/php/custom-phpini-tips-and-tricks/#User-Contributed_Notes在网上的其他地方我发现了离开的建议doc_root
in php.ini
注释掉了:
;doc_root =
这有效,事实上这就是我用于所有上述 PHP 的配置7.x安装,也适用于 PHP 5.2。然而,那就是不适用于 PHP 5.3 至 5.6.
现实是,对于 PHP 的这些版本,Apache 的DocumentRoot
和 PHP 的doc_root
指令必须完全匹配。
到达这里并不容易,因为我在网上发现了大量的欺骗性或明显错误的信息(主要是由于 PHP 在不同版本之间改变了行为):
-
这个(未解决的)错误报告 https://bugs.php.net/bug.php?id=26745有类似问题的用户评论 https://bugs.php.net/bug.php?id=26745#1077666006建议离开doc_root
注释掉了;
-
这一段 https://www.askapache.com/php/custom-phpini-tips-and-tricks/#input_file是矛盾的;
-
PHP 的文档对于这些特定版本是错误的,对于当前版本是正确的:
on 核心 php.ini 指令的描述 https://www.php.net/manual/en/ini.core.php#ini.sect.path-directory:
Name Default Changeable
doc_root NULL PHP_INI_SYSTEM
and on 可以设置配置设置的位置 https://www.php.net/manual/en/configuration.changes.modes.php:
PHP_INI_SYSTEM Entry can be set in php.ini or httpd.conf
我希望这些信息有用。
NOTE:
我花了很多时间才解决这个问题。我发现有用的一项技术是将 Apache 日志级别增加到trace8,如下所示在这里建议 https://serverfault.com/a/988949:
LogLevel trace8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)