Apache: Linux环境下的内联PHP无法工作

3
我遇到了让PHP在我的Apache服务器上工作的问题。我正在运行Oracle Linux,并使用“yum install php”+“yum install httpd”获取我的PHP和Apache。我搜索了互联网并做了几件事:
首先,我进入了我的httpd.conf文件并添加了“LoadModule php5_module modules/libphp5.so”。我选择使用我的php.conf文件中的一份完全相同的文件。此外,我执行了“AddType application/x-http-php .php”,所以现在我的.php文件可以正常加载。
其次,我尝试运行我的Apache服务器,它可以正常工作。它显示我设置为DirectoryIndex的index.html文件。但是,当我尝试将php代码放入其中时,它被自动注释掉了,我认为这是因为我没有正确设置服务器端执行。
现在,说了这么多,我想知道我可能还缺少什么。我有两个设置,一个是有一个.php文件,另一个是将php嵌入到html中。
index.html
<!DOCTYPE html>
    <body>
        <?php echo "Hello everybody."; ?>
    </body>
</html>

index.php

<?php phpinfo(); ?>

index.php文件可以正常加载,但index.html无法运行php代码。如何让内联版本的php工作?

注意:我已经设置了我的Mac OS以适应.php文件,但它也无法处理Html文件中的内联php。我漏掉了什么吗?


解决方案:Html文件本身不能包含php。相反,文件必须是.php扩展名,在.php文件中,您可以包含文本、html和JavaScript。


1
你有检查错误日志吗?即使模块无法正常工作,Apache也不应该注释掉你的PHP代码,它应该只是忽略它并按原样显示。 - Hanky Panky
我这样做了,但是它与PHP无关。只是关于favicon.ico的一些内容。 - Zhouster
3个回答

7

我认为.html文件根本不会通过php运行,所以 <? ... ?> 被视为普通标记并且是不可见的。

将扩展名改为.php。

Php可以包含html。

编辑: 例如,存在一种选项可以配置Apache解析html文件,就好像它们是php一样,如果由于某种原因您无法或不想使用php结尾文件时。

在我看来,这不是一个好的解决方案,因为它隐藏了页面对于未来的维护人员来说是动态生成的事实。


嗯,现在我感觉很愚蠢。XD谢谢David的回答。我以为因为有HTML,那就是一个HTML文件,但现在我明白了。问题解决了! - Zhouster
1
没问题,这就是这个网站存在的原因,所以你不必撞墙发热,我也曾经历过这种情况,就像其他在这里回答问题的人一样:D - David Mårtensson

2

这里有一个类似的问题,存在相似的问题:

PHP代码没有被执行,而是显示在页面上

你可能需要检查已接受答案中的第2到第5点:

  • LoadModule(看起来您已经正确配置了)
  • 设置Apache运行PHP文件(这是第三个点,看起来您没有配置该项)。将以下行添加到httpd.conf文件中:AddType application/x-httpd-php .php
  • 确保文件以.php扩展名结尾(在配置Apache运行PHP文件后,参见前面的步骤)
  • 更改您的代码以使用长PHP开头标签(<?php而不仅仅是<?

我已经正确加载了模块,当我运行“sudo apachectl -M”时,可以找到该模块的列表。此外,我刚刚添加了“AddType”语句,但没有任何变化。同时,我没有使用短标签。虽然LoadModule在php.conf文件中,但已被加载。这有关系吗? - Zhouster
好的,所以.php扩展名问题已经解决了。现在我可以正常运行它们了。 :D 只剩下一个问题了,那就是内联php。 - Zhouster
你在使用内联 PHP 的文件中使用了什么扩展名?此外,请检查 PHP 短标签(<?)。你使用它们吗?它们被允许吗?(short_open_tag PHP ini 设置) - beerwin
感谢Beerwin提供的帮助和详细信息,对此受益匪浅! :D 此外,你怀疑文件扩展名是正确的! - Zhouster

0

您需要在您的php.ini文件中设置short_open_tag = On


我刚刚将它设置为“开”,但什么也没有改变。另外,我没有使用短标签。 :X - Zhouster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接