返回

Nginx 部署 Laravel 时遇到的加载问题及其解决方法

php

使用 Nginx 部署 Laravel:解决加载问题

在用 Nginx 部署 Laravel 时,有时会遇到某些加载问题,这可能会让人感到沮丧。本文将深入探讨这些问题,并提供一步一步的解决方案,帮助您解决它们。

1. 常见加载问题

最常见的加载问题是:

  • 访问 "http://127.0.0.1/" 时,显示 "Welcome to NGINX" 页面。
  • 访问 "MY_SERVER_NAME/phpinfo.php" 时,页面持续加载而不显示内容。
  • 使用设置的 "MY_SERVER_NAME" 访问网站时,也会发生相同的情况。

2. 解决方法

要解决这些问题,可以按照以下步骤进行:

2.1. 检查 Nginx 端口

确保 Nginx 正在监听端口 80,而不是原始的 8080 端口。在 /etc/nginx/nginx.conf 中,将 listen 8080 更改为 listen 80

2.2. 检查网站根目录

在 Nginx 配置文件中,将 root 指令设置为 Laravel 项目的 public 目录。确保这是项目的正确根目录,并且具有读取权限。

2.3. 设置 fastcgi_pass

fastcgi_pass 指令指向 PHP-FPM 监听的端口,通常是 127.0.0.1:9000

2.4. 重新加载 Nginx

对 Nginx 配置进行更改后,运行 sudo nginx -s reload 重新加载 Nginx。

3. 示例 Nginx 配置文件

以下是部署 Laravel 应用程序的示例 Nginx 配置文件:

server {
    listen 80;
    server_name MY_SERVER_NAME;
    root /path/to/laravel/public;
    index index.php index.html index.htm index.nginx-debian.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri /index.php=404;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
    }
}

4. 提示

  • 确保 Laravel 应用程序已正确运行,可以使用 php artisan serve 命令访问。
  • 如果问题仍然存在,请检查 Nginx 日志文件(通常为 /var/log/nginx/error.log)以查找任何错误。

5. 常见问题解答

5.1. 为什么我仍然看到 "Welcome to NGINX" 页面?

确保 Nginx 正在监听正确的端口(80)并且网站根目录已正确设置。

5.2. 为什么页面持续加载而不显示内容?

检查 fastcgi_pass 指令是否指向 PHP-FPM 正在监听的正确端口。

5.3. 为什么使用自定义域名时出现问题?

确保您已正确配置服务器名称并已更新 DNS 设置。

5.4. 我应该在哪里放置 Nginx 配置文件?

通常情况下,Nginx 配置文件位于 /etc/nginx/nginx.conf

5.5. 如何获得更多帮助?

您可以通过 Laravel 或 Nginx 社区论坛寻求其他帮助。