You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 8下Nginx环境中PHP无法运行的问题求助

修复Debian 8 Nginx中PHP无法运行的问题

看起来你遇到的核心问题是HTTPS的server块缺少必要的配置,导致重定向后的请求无法正确处理PHP文件。让我一步步帮你解决:

问题分析

你的HTTP server块(80端口)配置了网站根目录、索引文件和PHP解析规则,但当请求被重定向到HTTPS(443端口)后,Nginx会使用HTTPS server块的配置——而你的HTTPS块里完全没有设置root、index和PHP处理的location规则:

  1. 这就是为什么Nginx会去/usr/share/nginx/html找文件(默认根目录),而你的info.php在/var/www/html,所以报404;
  2. 当你把文件移到默认目录后,因为没有PHP解析规则,Nginx把PHP文件当成静态资源直接下载,而不是交给php-fpm处理。

解决方案

1. 修改Nginx配置文件

编辑你的站点配置文件(通常路径是/etc/nginx/sites-available/default),把HTTPS server块补充完整,最终配置如下:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name my-server.de www.my-server.de;
    # 只保留HTTP到HTTPS的重定向逻辑
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    server_name my-server.de www.my-server.de;
    include snippets/ssl-my-server.de.conf;
    include snippets/ssl-params.conf;

    # 配置网站根目录
    root /var/www/html;
    # 设置索引文件优先级,确保index.php排在前面
    index index.php index.html index.htm index.nginx-debian.html;

    # 处理静态资源请求
    location / {
        try_files $uri $uri/ =404;
    }

    # 处理PHP请求,交给php5-fpm解析
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    # 禁止访问.ht文件
    location ~ /\.ht {
        deny all;
    }
}

2. 验证配置并重启Nginx

先检查配置文件是否有语法错误:

nginx -t

如果输出显示test is successful,就重启Nginx使配置生效:

service nginx restart

3. 确保php5-fpm服务正常运行

PHP文件需要php-fpm来解析,检查服务状态:

service php5-fpm status

如果服务未运行,启动它:

service php5-fpm start

4. 检查文件权限

确保网站根目录下的文件权限正确,让Nginx能读取:

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

做完这些步骤后,再访问https://my-server.de/info.php,应该就能正常显示phpinfo页面了。

内容的提问来源于stack exchange,提问作者unlimited101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:00:00