【问题标题】:New CentOS 7 server, PHP doesn't execute on the index page only新的 CentOS 7 服务器,PHP 不只在索引页上执行
【发布时间】:2019-03-07 01:52:57
【问题描述】:

已编辑:这不是重复的 - 建议的其他问题不是相同的情况。在这种情况下,大多数带有 PHP 的 html 文件都可以工作,只有一个文件不工作。此外,正如我在下面提到的,为其他问题提出的所有答案都不能解决这个问题。

我们正在从 CentOS 6.1 服务器过渡到 CentOS 7.5 服务器。两台服务器的 Apache 和 PHP 版本相同,文件也相同。但是,当我尝试访问我的主页(名为 index.html)时,PHP 并未执行,而是在 html 中被注释掉。网站上的所有其他页面都可以正常执行 PHP。

  • 在 .html 文件中添加了 PHP 的 AddType。
  • 没有使用短标签。
  • Apache 在两种设置中都包含相同的 .conf 和 .htaccess 文件。
  • 两台服务器上的 Apache 版本 2.4.34
  • 两台服务器上的 PHP 版本均为 7.2.10

有谁知道我在这里做错了什么,或者我该如何测试它?非常感谢!

【问题讨论】:

  • PHP 代码如何在HTML 文件中执行?
  • 在 .html 文件中运行 PHP 并不常见,但显然并非不可能。假设有效的“所有其他页面”是一个 .php 文件(如果不是,请务必告诉我们),那么您的 AddType 似乎确实失败了,或者存在冲突的配置。你会粘贴你的 AddType 行吗?类似于:AddType application/x-httpd-php .php .html .htm
  • 也许这会有所帮助:stackoverflow.com/questions/22853669/…
  • @mattavatar 所有其他文件也是 html。在我的设置中,PHP 文件专门用于模板文件或脚本,而不是直接提供给客户端的文件。我的 AddType 行是:AddType application/x-httpd-ea-php72 .php .php7 .phtml 在两种配置中

标签: php apache centos7 centos6


【解决方案1】:

你确定 php 确实不工作吗?您可以尝试在页面顶部添加一个 php echo 并查看它是否打印给定的测试文本?

如果两个配置文件相同并且所有文件都相同,我怀疑问题可能是文件的位置和配置不匹配。如果您的配置适用于 /var/some/directory,但在新设置中,您将文件移动到新位置 /var/new/location,则配置文件可能无法按预期工作。

【讨论】:

  • 谢谢,我确定它不起作用。知道我应该在哪里查找可能不合适的配置文件吗?我在根目录中有一个基本的.htaccess 文件,我在/etc/apache2/conf 中有httpd.conf,它是由/etc/apache2/conf.d 中的所有.conf 文件生成的。不知道我应该在哪里检查。谢谢!
【解决方案2】:

是否启用了 SELinux?如果是,并且您正在为内容使用非默认目录,则可能需要为自定义目录设置上下文。

# chcon -R -t httpd_sys_content_t /srv/mysite

【讨论】:

  • sestatus 说 SELinux 状态为我禁用。不过谢谢!
猜你喜欢
  • 2018-08-13
  • 1970-01-01
  • 2015-10-09
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多