【问题标题】:AddType application/x-httpd-php .htmlAddType application/x-httpd-php .html
【发布时间】:2019-09-09 22:15:29
【问题描述】:

我正在从一个使用 PHP 5 的服务器迁移到一个使用 PHP 7 的新服务器,我在告诉 Apache 将 .html 解析为 PHP 脚本时遇到了问题。

在我的 .htaccess 文件中,这一行在我当前使用 PHP 5 的服务器上正常工作:

AddType application/x-httpd-php .html

但在新服务器上,该指令会下载任何 .html 文件,而不是作为 PHP 脚本执行。

我知道在当前安装了 PHP 5 的服务器上,PHP 的 API 配置为“Apache 2.0 Handler”,而在这个新服务器上它被配置为“FPM/FastCGI”,我想这可能是问题所在?如果是这样,我怎样才能在不更改 API 设置的情况下克服它?

我期待收到您的来信。提前感谢您的帮助!

【问题讨论】:

  • 添加到配置后是否重启了apache2?
  • 是的,没用。此外,由于它已添加到 .htaccess 文件中,因此不需要重新启动 Apache...不过感谢您的帮助!
  • 你检查过这个Q/A
  • 感谢您的建议,我刚刚检查了那里的所有建议,但没有任何效果!还有什么想法吗?我很绝望...尝试了我能想到的一切!
  • 当您使用 fpm 时,可能还需要重新启动它。确保 libmod-apache2-php 已启用。你能按预期打开 PHP 文件吗?尝试直接在 apache 配置中执行此操作。也许允许 .htaccess 文件的指令设置不正确。

标签: php apache .htaccess


【解决方案1】:

经过数小时的研究,我最终阅读了此页面:

https://www.digitalocean.com/community/questions/php-fpm-security-limit_extension-issue

我通过在 .htaccess 中添加这段代码解决了这个问题:

<FilesMatch ".+\.html$">
        SetHandler "proxy:unix:/run/php/php7.0-fpm-[myhostname].sock|fcgi://localhost"
</FilesMatch>

为了避免服务器给我一个“拒绝访问”错误,我不得不将这一行放在 /etc/php/7.0/fpm/php-fpm.conf 中:

security.limit_extensions = .php .htm .html .inc .rss .rdf .xhtml

然后重启 PHP 守护进程:

service php7.0-fpm restart

现在一切似乎都正常了!我会说相当复杂,我认为这是因为 PHP 配置了 FPM/FastCGI API。

欢迎评论和想法!

再次感谢大家。

【讨论】:

  • 你救了我。 :) 同样的问题;你的解决方案奏效了!
  • 这实际上是我同样的问题。但是,我想知道是否有人认为这对于安全来说甚至是必要的,因为他们做得有多么困难。 ??
猜你喜欢
  • 1970-01-01
  • 2012-03-06
  • 2012-10-08
  • 2011-11-18
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
相关资源
最近更新 更多