Apache 2.4 未运行 PHP 7(Windows)

Apache 2.4 未运行 PHP 7(Windows)

我安装了 apache。我一直都很好,直到今天,我创建了一个 php 文件,但 apache 没有打开它。然后我在网上搜索了一下,才意识到我需要安装 php(我来自 Linux,所以我从来不需要这样做)。我遵循了一些教程(这里, 和这里),但这些都不起作用。我做了一些研究,所以我可以直接丢弃最常见的东西,我在下面列出。

  1. 我的文件有一个 php 扩展名(并且 ini 文件配置为读取“.php”文件)
  2. Apache“httpd-conf”文件修改如下:

# PHP7 module LoadModule php7_module "C:/php/php7apache2_4.dll" AddType application/x-httpd-php .php PHPIniDir "C:/php"

  1. httpd -t一切都很好
  2. 也一样php -v
  3. 我的 php.ini 文件已被“取消注释”,正如我参考的第一个网页所建议的那样
  4. 我已经将环境路由添加到我的电脑

那么,有什么线索吗?我做的事情有什么问题吗?会不会是在安装 php 之前先安装 Apache?这是我唯一能想到的,在研究并尝试了本网站和其他网站建议的所有修复方法后,这是我能想到的唯一“合乎逻辑”的解释(除了忘记一些不常见的东西或遵循错误的“教程”)。

谢谢!!

编辑:

我怀疑有些地方出了问题,因为 apache 只在我加载某些 php 文件时才显示代码。如果我的 php 代码包含一些 html,则这个可以正确显示,但 php 部分则不行(我检查了 php 代码中的语法问题,结果一切正常)。

后来我决定尝试加载以下内容:

<? php phpinfo(); ?>

在一个index.php文件上(我尝试使用不同的名称并将其指定为localhost/test.php)但只是显示一个空白页。

编辑2:

以下是我使用的版本:

PHP 7.3.9 (TS) x64 Apache 2.4.41 x64

编辑3:

降级到 PHP 7.2.22,仍然无法正常工作。我按照各种网站的建议做了一些更改(基本上是向 httpd-conf 文件中添加了一些内容),并像以前一样检查了语法。但这些都不起作用。我尝试启动 apache 并加载带有 index.php(测试脚本)的“localhost”页面,并检查日志,希望找到一些问题。由于我不是专家,我会说日志转得很好,但我将它们粘贴在这里以防有人注意到任何奇怪的事情。

日志:

[2019 年 9 月 4 日星期三 10:40:34.234726] [mpm_winnt:notice] [pid 7276:tid 768]

AH00455:Apache/2.4.41 (Win64) PHP/7.3.9 已配置 - 恢复正常操作

[2019 年 9 月 4 日星期三 10:40:34.234726] [mpm_winnt:notice] [pid 7276:tid 768]

AH00456:Apache Lounge VS16 服务器建立时间:2019 年 8 月 9 日 16:46:32

[2019 年 9 月 4 日星期三 10:40:34.234726] [core:notice] [pid 7276:tid 768] AH00094:

命令行:'C:\Apache24\bin\httpd.exe -d C:/Apache24'

[2019 年 9 月 4 日星期三 10:40:34.234726] [mpm_winnt:notice] [pid 7276:tid 768]

AH00418:父级:已创建子进程 8232

Apache 服务器关闭已启动...

pm_winnt:notice] [pid 8232:tid 784] AH00354:子进程:启动 64 个工作线程。

[2019 年 9 月 4 日星期三 10:41:33.635398] [mpm_winnt:notice] [pid 7276:tid 768]

AH00422:父级:收到关机信号——关闭服务器。

[2019 年 9 月 4 日星期三 10:41:35.666154] [mpm_winnt:notice] [pid 8232:tid 784]

AH00364:子进程:所有工作线程已退出。

[2019 年 9 月 4 日星期三 10:41:35.681785] [mpm_winnt:notice] [pid 7276:tid 768]

AH00430:父进程:子进程 8232 已成功退出。

“-- 关闭服务器。”是我在上午 10:41 关闭应用程序时说的

希望这有用

答案1

作为一个想法,您可能希望考虑验证您的 PHP 版本是否适合您的 Apache 版本。这可能包括:

  • 验证 PHP 和 Apache 是否使用兼容的编译器进行编译。

  • 验证两者都是以 32 位还是 64 位格式编译的。

  • 确保您使用的是 PHP 的线程安全 (TS) 版本。

  • 如果您使用的是 7.4 的早期版本(最高版本包括 7.4.0beta2),请考虑降级或以其他方式切换版本。

编辑

日志信息显示您正在运行 Apache 的 Apache Lounge 版本,它与 PHP 7.3.9 肯定兼容。

phpinfo()我尝试在文件中进行测试.php,但果然什么都没有显示,只有一张空白页。

这是 PHP 的典型语法错误。回顾您的原始帖子,您的<? php phpinfo(); ?>命令应该是<?php phpinfo()?><? php phpinfo(); ?>使用已知、有效的 PHP 安装(Apache Lounge Apache v2.4.41 VS16 x32 和 PHP 7.3.9 VC15 TS x32)运行也会产生空白页。

相关内容