想要使用 DDEV 进行本地开发,并且我有一个包含遗留内容的网站,需要在扩展名为 .html 的页面上运行 php。在其他测试环境中,我在 .htaccess 中使用了不同的行来启用此功能。在我的 ddev 测试环境中,我还无法弄清楚什么是有效的。
已更新 以下是我在 .htaccess 中尝试过的行(单独或组合取消注释):
#AddType application/x-httpd-php .html .htm
#AddHandler application/x-httpd-php .htm .html
#AddType application/x-httpd-php7 .html .htm
#AddHandler application/x-httpd-php7 .htm .html
#AddHandler x-httpd-php .htm .html
#AddType x-httpd-php .html .htm
#AddType x-httpd-php7 .html .htm
#AddHandler x-httpd-php7 .htm .html
#AddType x-httpd-php73 .htm .html
#AddHandler x-httpd-php73.htm .html
#AddHandler x-httpd-php7-3 .htm .html
#AddType application/x-httpd-php73 .html .htm
#AddType application/x-httpd-php7-3 .html .htm
#AddHandler application/x-httpd-php7-3 .htm .html
我还尝试使用以下内容更新 .ddev/apache/apache-site.conf:
<FilesMatch ".html$">
SetHandler "proxy:fcgi://php:9000"
</FilesMatch>
或
<FilesMatch ".+\.html$">
SetHandler applicaiton/x-httpd-php
</FilesMatch>
但不可否认,这不是我熟悉的东西,所以可能没有完全正确地理解。
macOS Big Sur,带有 php7.3 的 ddev1.16.5,ddev webserver_type:apache-fpm。
有什么建议吗?谢谢!
最佳答案
问题是 php-fpm 未配置为允许使用 .html 文件扩展名。这是在/etc/php/
因此,您需要做两件事来实现您所追求的行为,即允许 PHP 解释 HTML 文件。
- 允许在 pool.d/www.conf 的 php-fpm 配置中处理 html 文件。您可以使用 https://stackoverflow.com/a/65693405/215713 中的答案来执行此操作
- 允许在 apache 配置中处理 html 文件。我确信有不止一种方法可以做到这一点,您也许可以在 .htaccess 中做到这一点,但我通过在 .ddev/apache/apache-site.conf 中添加端口 80 虚拟主机这一节来做到这一点(当然,删除文件顶部的 #ddev-generate ):
<FilesMatch ".+\.(html|ph(ar|p|tml))$">
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>
关于php - 在带有 .htaccess 的 .html 页面上运行 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668764/