Windows下Nginx配置Laravel路由异常及CodeIgniter访问问题求助
解决Nginx下Laravel与CodeIgniter本地部署问题
Laravel 路径访问错误(no input file specified)
你的Laravel配置存在路径解析错误,修改location /project-name-laravel块如下:
# Laravel location /project-name-laravel { alias C:/nginx/html/project-name-laravel/public; try_files $uri $uri/ /project-name-laravel/index.php?$query_string; # 在此块内处理PHP请求,避免全局PHP块路径错误 location ~ \.php$ { fastcgi_pass 127.0.0.1:8000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } }
错误原因说明:
- 原配置中
root /project-name-laravel/public是相对路径,Nginx会拼接server的root形成C:/nginx/html/project-name-laravel/public,但try_files最后指向的/index.php会被解析到server根目录的index.php,而非Laravel的public下的index.php,导致找不到文件。 - 使用
alias可以精准映射子路径到Laravel的public目录,同时将PHP请求处理放在该location内,确保SCRIPT_FILENAME指向正确的文件路径。
CodeIgniter 根路径403错误
修改location /project-name块,并补充index设置:
# CodeIgniter location /project-name { index index.php index.html index.htm; try_files $uri $uri/ /project-name/index.php?$is_args$args; }
错误原因说明:
- 访问
http://localhost/project-name时,Nginx会尝试查找该目录下的默认索引文件,但原配置未在该location内指定index,导致Nginx找不到可执行的索引文件,返回403权限错误。添加index指令后,Nginx会优先加载项目根目录的index.php。
全局PHP配置注意事项
确保你的PHP-FPM确实监听127.0.0.1:8000,如果默认是9000端口,需要修改fastcgi_pass为127.0.0.1:9000,否则会出现PHP请求无法转发的问题。
修改完成后,重启Nginx服务生效。
内容的提问来源于stack exchange,提问作者wonderstruck80
相关产品推荐
相关产品推荐

