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

Laravel站点Nginx Server Block配置异常排查请求

嘿,我来帮你搞定这个Laravel美观URL的Nginx 404问题!

解决Laravel美观URL的Nginx 404问题

你遇到的核心问题是Nginx没有将非首页的请求转发到Laravel的index.php入口文件,这是Laravel美观URL(Pretty URLs)正常工作的关键。

正确的Nginx Server Block配置示例

server {
    listen 80;
    server_name 111.222.333.444; # 替换成你的域名或IP
    root /path/to/your/laravel/public; # 这里必须指向Laravel项目的public目录
    index index.php index.html index.htm;

    # 处理美观URL的核心规则
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 处理PHP请求的配置
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 替换成你的PHP-FPM套接字路径,注意版本号
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    # 禁止访问隐藏文件,提升安全性
    location ~ /\.ht {
        deny all;
    }
}

关键配置细节解释

  • root路径:必须严格指向Laravel项目的public目录,这是Laravel的Web访问入口,所有请求都应该从这里进入。
  • location /中的try_files:这条规则会依次尝试访问请求的文件($uri)、请求的目录($uri/),如果两者都不存在,就把请求转发到/index.php并带上原查询参数,这样Laravel的路由系统就能接管并处理这个请求了。
  • PHP-FPM配置:确保fastcgi_pass指向正确的PHP-FPM套接字或端口,比如如果用端口模式的话可能是127.0.0.1:9000,请根据你实际安装的PHP版本调整路径。

后续排查步骤

  1. 验证root路径正确性:确认Nginx配置中的root确实指向Laravel项目的public文件夹,比如/var/www/laravel/public,路径错误会导致资源无法正常加载。
  2. 重启Nginx服务:修改配置后,执行sudo systemctl restart nginx重启Nginx,让新配置生效。
  3. 检查Laravel目录权限:确保storage和bootstrap/cache目录有正确的读写权限,否则Laravel可能无法正常处理请求,执行以下命令:
    sudo chown -R www-data:www-data /path/to/your/laravel
    sudo chmod -R 755 /path/to/your/laravel/storage
    sudo chmod -R 755 /path/to/your/laravel/bootstrap/cache
    
  4. 确认PHP-FPM运行状态:执行sudo systemctl status php8.2-fpm(替换成你的PHP版本),确保服务正在正常运行。
  5. 查看Nginx错误日志:如果问题还存在,查看错误日志找具体线索:
    sudo tail -f /var/log/nginx/error.log
    

按照上面的配置和步骤调整后,你的Laravel美观URL应该就能正常访问了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:30:47