Laravel项目XAMPP运行正常,使用artisan serve启动报错如何解决?
问题解决方法
这个报错的核心是php artisan serve启动时,入口文件server.php无法读取对应路径下的index.php文件,与AppServiceProvider配置无关,按以下顺序排查即可:
1. 确认命令执行的工作目录正确
在PHPStorm终端执行命令前,必须先切换到项目根目录(也就是包含artisan文件的smartschoolsystem文件夹),Windows下路径带空格需要用引号包裹:
cd "H:\University Documents\UMT\F2021\FYP 2\Smart School System\smartschoolsystem" php artisan serve
2. 检查目录结构是否匹配
确认你没有将public目录下的index.php文件移动到项目根目录:
- 如果你没有移动过文件,确认根目录下存在
public文件夹,且文件夹内有index.php文件,没有被误删 - 如果你是为了部署方便,已经把
public下的index.php、.htaccess等文件移动到了项目根目录,需要修改server.php两处代码(你之前只改了一处所以不生效):
<?php $uri = urldecode( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ); // 原代码为__DIR__.'/public'.$uri,去掉/public if ($uri !== '/' && file_exists(__DIR__.$uri)) { return false; } // 原代码为__DIR__.'/public/index.php',去掉/public require_once __DIR__.'/index.php';
3. 临时指定目录启动
不想修改代码的话,也可以直接在启动命令里指定public目录路径:
php artisan serve --docroot=public
4. 修复公共路径绑定
如果上述操作都无效,可以在bootstrap/app.php中添加公共路径绑定,手动指定public目录位置:
// 放在$app变量初始化之后 $app->bind('path.public', function() { return __DIR__ . '/../public'; });
内容的提问来源于stack exchange,提问作者Salman Malik
相关产品推荐
相关产品推荐

