Windows系统下如何配置Nginx适配Laravel?部署返回403错误如何解决?
问题根因排查
你当前的Nginx配置缺失Laravel框架必需的重写规则,同时可能存在目录权限配置问题,是触发403错误的核心原因,具体排查和修复步骤如下:
1. 现有配置缺陷说明
现有location /块没有配置try_files规则,Laravel是单入口框架,所有非静态资源请求都需要转发到index.php处理,缺失该规则时Nginx会尝试直接访问路径对应的磁盘文件,找不到就会返回403/404错误。
2. 权限校验项
- Windows环境下需确认Nginx运行用户对
C:/xampp/htdocs/my_laravel_app目录拥有可读权限 - Laravel的
storage、bootstrap/cache目录需要额外赋予可写权限,否则框架运行时读写缓存、日志失败也可能触发403错误 - 确认PHP-FPM服务正常监听127.0.0.1:9000端口,可在cmd执行
netstat -ano | findstr "9000"验证
3. 修正后的完整配置
server { listen 80; server_name localhost; # 将root规则提升到server块,避免重复配置 root C:/xampp/htdocs/my_laravel_app/public; index index.html index.htm index.php; location / { # 添加Laravel必需的重写规则 try_files $uri $uri/ /index.php?$query_string; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
配置修改完成后执行nginx -s reload重启Nginx即可生效。
内容的提问来源于stack exchange,提问作者ChrisM
相关产品推荐
相关产品推荐

