Laravel 4.2本地部署:index.php相对路径失效问题排查
解决Laravel 4.2本地部署的路径错误问题
问题背景
本地部署遗留Laravel 4.2网站时,public_html目录下的index.php通过__DIR__.'/../bootstrap/autoload.php'加载框架文件,但报错找不到bootstrap/autoload.php——实际bootstrap目录位于public_html的父目录。
错误信息
PHP Warning: require(/home/gras/TenisPremium/public_html/bootstrap/autoload.php): failed to open stream: No such file or directory in /home/gras/TenisPremium/public_html/artisan on line 16 PHP Fatal error: require(): Failed opening required '/home/gras/TenisPremium/public_html/bootstrap/autoload.php' (include_path='.:/usr/share/php') in /home/gras/TenisPremium/public_html/artisan on line 16
网站目录结构
. ├── app │ ├── commands │ ├── config │ ├── controllers │ ├── database │ ├── helpers │ ├── lang │ ├── models │ ├── service │ ├── start │ ├── storage │ ├── tests │ └── views ├── bootstrap ├── public_html │ ├── assets │ ├── packages │ └── upload └── vendor ├── artdarek ├── bacon ├── bin ├── classpreloader ├── composer ├── d11wtq ├── davibennun ├── doctrine ├── facebook ├── filp ├── gloudemans ├── guzzlehttp ├── intervention ├── ircmaxell ├── jeremeamia ├── laravel ├── lightshire ├── maatwebsite ├── milon ├── monolog ├── nesbot ├── nikic ├── patchwork ├── phpoffice ├── phpseclib ├── predis ├── psr ├── pusher ├── simplesoftwareio ├── sly ├── stack ├── swiftmailer ├── symfony ├── tijsverkoyen ├── way └── zendframework
修复步骤
- 修正artisan文件的路径:错误源于
public_html/artisan第16行的路径指向错误。打开该文件,将:
修改为:require __DIR__.'/bootstrap/autoload.php';require __DIR__.'/../bootstrap/autoload.php'; - 确认index.php路径配置:检查
public_html/index.php中的两处关键路径,确保正确指向父目录的bootstrap文件夹:- 自动加载文件:
require __DIR__.'/../bootstrap/autoload.php'; - 框架启动文件:
$app = require_once __DIR__.'/../bootstrap/start.php';
- 自动加载文件:
- 设置正确的文件权限:保证bootstrap目录及内部文件具备可读权限,storage目录需设置为可写(Laravel运行时需写入日志、缓存等内容)。
- 更新Composer依赖:在项目根目录(public_html的父目录)执行
composer install或composer dump-autoload,确保vendor目录的依赖完全加载。
内容的提问来源于stack exchange,提问作者Cristian Cutite
相关产品推荐
相关产品推荐

