插件窝 干货文章 Linux Nginx配置后PHP页面无法访问,如何排查问题?

Linux Nginx配置后PHP页面无法访问,如何排查问题?

PHP Nginx 检查 FPM 712    来源:    2025-03-16

当在Linux服务器上配置Nginx后,PHP页面无法访问时,可能是由于多种原因导致的。以下是一些常见的排查步骤:

1. 检查Nginx配置文件

确保Nginx的配置文件正确指向了PHP处理程序(通常是PHP-FPM)。

  • 打开Nginx的配置文件,通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default
  • 确保在 server 块中有类似以下的配置:

    location ~ \.php$ {
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;  # 根据你的PHP版本调整
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }
    
  • 确保 fastcgi_pass 指向正确的PHP-FPM套接字路径。

2. 检查PHP-FPM服务状态

确保PHP-FPM服务正在运行。

  • 检查PHP-FPM服务状态:

    sudo systemctl status php7.4-fpm  # 根据你的PHP版本调整
    
  • 如果服务未运行,启动它:

    sudo systemctl start php7.4-fpm
    
  • 确保PHP-FPM服务在系统启动时自动启动:

    sudo systemctl enable php7.4-fpm
    

3. 检查文件权限

确保Nginx有权限访问PHP文件和目录。

  • 检查PHP文件和目录的权限:

    ls -l /path/to/your/php/files
    
  • 确保Nginx用户(通常是 www-datanginx)有权限读取这些文件:

    sudo chown -R www-data:www-data /path/to/your/php/files
    sudo chmod -R 755 /path/to/your/php/files
    

4. 检查Nginx错误日志

查看Nginx的错误日志以获取更多信息。

  • Nginx错误日志通常位于 /var/log/nginx/error.log
  • 使用以下命令查看日志:

    sudo tail -f /var/log/nginx/error.log
    
  • 根据日志中的错误信息进行相应的调整。

5. 检查PHP-FPM错误日志

查看PHP-FPM的错误日志以获取更多信息。

  • PHP-FPM错误日志通常位于 /var/log/php7.4-fpm.log(路径可能因版本而异)。
  • 使用以下命令查看日志:

    sudo tail -f /var/log/php7.4-fpm.log
    
  • 根据日志中的错误信息进行相应的调整。

6. 检查防火墙设置

确保防火墙允许HTTP(端口80)和HTTPS(端口443)流量。

  • 检查防火墙状态:

    sudo ufw status
    
  • 如果防火墙阻止了HTTP/HTTPS流量,允许它们:

    sudo ufw allow 'Nginx Full'
    

7. 检查SELinux(如果启用)

如果系统启用了SELinux,确保它没有阻止Nginx访问PHP文件。

  • 检查SELinux状态:

    sestatus
    
  • 如果SELinux启用并且导致问题,可以临时禁用SELinux以测试:

    sudo setenforce 0
    
  • 如果问题解决,可以调整SELinux策略以允许Nginx访问PHP文件。

8. 重启Nginx和PHP-FPM

在进行了上述检查和调整后,重启Nginx和PHP-FPM服务以应用更改。

  • 重启Nginx:

    sudo systemctl restart nginx
    
  • 重启PHP-FPM:

    sudo systemctl restart php7.4-fpm
    

9. 测试PHP页面

在浏览器中访问PHP页面,检查是否能够正常显示。

  • 如果仍然无法访问,重复上述步骤,确保所有配置正确无误。

通过以上步骤,你应该能够找到并解决Nginx配置后PHP页面无法访问的问题。如果问题仍然存在,建议查看更详细的日志信息或寻求进一步的帮助。