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

Laravel 5.8.38本地运行报错:public/index.php缺失,线上正常

Laravel 5.8 php artisan serve 找不到public/index.php的解决方法

问题原因

你的项目在服务器上做了目录结构调整:原本Laravel的入口文件index.php应该在public目录下,但服务器部署时可能把public目录的入口文件移到了项目根目录,同时修改了路径指向,所以本地用默认的php artisan serve命令时,会默认去public目录找index.php,自然找不到。

解决方法

方法一:临时指定入口运行(无需修改项目)

直接用PHP内置服务器指定根目录的index.php作为入口,代替artisan serve:

php -S localhost:8000 index.php

或者用artisan serve的参数自定义入口路径:

php artisan serve --public=./ --index=index.php

方法二:恢复标准Laravel结构(适合长期开发)

如果需要和Laravel标准结构保持一致,方便后续维护,按以下步骤操作:

  1. 将根目录下的index.php、.htaccess移动到public目录中
  2. 打开public/index.php,修改文件路径引用:
    将原本的
    require __DIR__.'/vendor/autoload.php';
    $app = require_once __DIR__.'/bootstrap/app.php';
    
    修改为
    require __DIR__.'/../vendor/autoload.php';
    $app = require_once __DIR__.'/../bootstrap/app.php';
    
  3. 之后再运行php artisan serve就能正常启动,因为此时public目录下已经有正确的入口文件了。

补充:如果后续部署到服务器,只需再将public目录下的index.php、.htaccess移回根目录,改回原来的路径即可,或者直接配置服务器的网站根目录指向项目的public目录,这样本地和服务器结构一致,避免重复调整。

内容的提问来源于stack exchange,提问作者citc goldskin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:57:18