我目前正在升级我的服务器,从 PHP 7.3 迁移到 PHP 8.3,从 Apache 2.4.6 迁移到 Apache 2.4.58。该网站使用 PHP 7.3 正常加载。但是,当我尝试使用 PHP 8.3 和 Apache 2.4.58/2.4.6 时,该网站无法加载,并且 Apache 似乎无法检测到已安装的 PHP。
PHP 代码没有被执行:
但是,当我如下配置时:
我怀疑 PHP 8.3 可能有问题,但我无法确定具体问题。 (我无法查明确切的问题。)经过进一步调查,我在 apache 日志中发现了一个错误:
AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.php,index.php) found, and server-generated directory index forbidden by Options directive
我想澄清两点:
如果这个问题与兼容性有关,那么哪个版本的 Apache 与 PHP 8.3 兼容?我进行了大量搜索,但没有找到确凿的信息。
如果这个问题与兼容性无关,我的 Apache 配置或安装的 PHP 模块是否有错误?
任何有关解决此问题的见解或指导将不胜感激。谢谢!
更多背景信息:
https://pastebin.com/8JnQyTqV
https://pastebin.com/TbxLMekb
https://pastebin.com/ePZwZDUZ
https://pastebin.com/UbwKpMg8
https://pastebin.com/QAh1iA17
所以我也有类似的问题。我尝试降级 Apache,然后降级 PHP。 执行 PHP 时仍然存在问题。
经过大量搜索和反复试验,这对我有用。
在 httpd.conf 中,我在其他 LoadModule 条目下添加了以下内容: LoadModule php_module php8apache2_4.dll PHPIniDir="C:/php"
然后在 MIME 部分: AddType 应用程序/x-httpd-php .php
希望这有帮助。