php - .HTML 页面中的 PHP 无法在 Nginx 上解析
问题描述
我最近将一个站点从 Apache 迁移到 Nginx,现在 html 中的 php 代码没有被解析。.PHP 页面解析没有问题,您可以在本文底部的 phpinfo.php 附加图像输出中看到。
这是代码在 index.html 等页面中的样子:
<!-- Copyright -->
<? include("includes/copyright.php") ?>
</body>
</html>
正如您所看到的,没有 <?php 包装代码的标签,但是,Apache 仍然会执行 php 包含,在这种情况下,它会在页面中添加一个带有版权信息的页脚。
同样,这不是一个 .php 文件,而是一个 .html 文件。
如果我将代码包装在<?php ?>
标签中并将文件从 .html 重命名为 .php,则代码将解析,但这不是一个选项,因为该站点有数百个页面,并且每个文件都有多个 php 命令,例如上面的 include。
我已经按照许多帖子中的说明进行操作,但仍然无法使其正常工作……如果有人能阐明一下,我将不胜感激,因为我真的不知道还能尝试什么。
/etc/nginx/sites-available/mysite.com.conf
server {
server_name mysite.com www.mysite.com;
listen 111.111.11.111;
root /home/mysite/public_html;
index index.php index.htm index.html;
access_log /var/log/virtualmin/mysite.com_access_log;
error_log /var/log/virtualmin/mysite.com_error_log;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME /home/mysite/public_html$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT /home/mysite/public_html;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS $https;
location ~ \.(php|html)$ {
try_files $uri $fastcgi_script_name =404;
fastcgi_pass unix:/var/php-nginx/1618253277225737.sock/socket;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
fastcgi_split_path_info ^(.+\.php)(/.+)$;
listen 111.111.11.111:443 ssl;
ssl_certificate /home/mysite/ssl.combined;
ssl_certificate_key /home/mysite/ssl.key;
来自 Apache 服务器的 .htaccess:
AddType application/x-httpd-ea-php56 .html .htm
ErrorDocument 404 /error-page.html
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
# BEGIN gzip file compression
# Compress HTML, CSS, JavaScript, Text, XML and fonts
...
解决方案
推荐阅读
- html - 如何仅在较大的设备上使按钮类“向右拉”,仅在较小的设备上使“中心块”
- arrays - 在具有任意链接值的哈希数组中删除具有特定键的哈希
- django - NotImplementedError:`create()` 必须在 serializer.Serializer 继承中实现
- mongodb - JDBC 不适用于 logstash 和 mongoDB 连接
- angular8 - 在 **Module.ts** 文件中导入“浏览器动画模块”后(通过运行 **npm install** @angular/animations)
- python - 带有角度和python的Vnc控制台
- shopify - 如何在 Shopify 中创建自定义 Web 挂钩
- javascript - Array.push() 在推送后不起作用返回空数组
- amazon-web-services - 在 terrafom 中创建实例时使用 user_data 时出错
- javascript - 映射数组时如何取两年之间的差异