我安装了 apache。我一直都很好,直到今天,我创建了一个 php 文件,但 apache 没有打开它。然后我在网上搜索了一下,才意识到我需要安装 php(我来自 Linux,所以我从来不需要这样做)。我遵循了一些教程(这里, 和这里),但这些都不起作用。我做了一些研究,所以我可以直接丢弃最常见的东西,我在下面列出。
- 我的文件有一个 php 扩展名(并且 ini 文件配置为读取“.php”文件)
- Apache“httpd-conf”文件修改如下:
# PHP7 module LoadModule php7_module "C:/php/php7apache2_4.dll" AddType application/x-httpd-php .php PHPIniDir "C:/php"
httpd -t
一切都很好- 也一样
php -v
- 我的 php.ini 文件已被“取消注释”,正如我参考的第一个网页所建议的那样
- 我已经将环境路由添加到我的电脑
那么,有什么线索吗?我做的事情有什么问题吗?会不会是在安装 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)运行也会产生空白页。