156-0102-3311
联系QQ 284710375
首页 > 技术分享 > Laravel
分享到:收藏

laravel7路由报错,根目录设为public后出现500错误2020-11-30 11:22:55

大潇博客 原创文章,转载请标明出处

今天在Linux下测试laravel7,由于刚用composer安装好,所以出现了不少错误


首先陆续出现几条这样的错误 The stream or file "/usr/www/laravel/storage/logs/laravel.log" could not be ... open stream: Permission denied,很明显在提示权限不足了,查了解决办法,各博主清一色复制一个不怎么有效的文章,我的解决比较简单暴力,提示哪里没权限,就根据路径打开文件夹,然后“chmod -R 777 文件/文件夹”


出现laravel字样,证明框架可以运行了,这时找到“/routes/web.php”路由文件,加了一个路由后去访问,出现404错误,查询后基本明确需要在nginx中加如下配置:

location / {

try_files $uri $uri/ /index.php?$query_string;

}

加了这条配置后,依旧出现404,仔细看配置,它是从index.php做入口的,由于我把项目根目录设置在laravel目录中,入口文件默认为server.php,而laravel框架默认的index.php入口文件在“/public”文件夹中,实际上根目录中的server.php也是引入了这个index.php,所以修改了nginx配置,本以为大功告成,这时又出现502错误


冷静思考后依然感觉和权限有关,鉴于各系统不同,对一些路径访问可能会有所限制,所以也不想去折腾权限的事,于是想到一个办法


既然laravel真正的入口文件是“/public/index.php”,那么将public下index.php和.htaccess文件移动到站点根目录,修改index.php文件中的相对路径形式如:define('APP_PATH', __DIR__ . '/../app/')->define('APP_PATH', __DIR__ . '/./app/')


随后再次访问框架,路由正常


下面是我nginx的配置,仅用于参考

QQ图片20201130114659.png


打赏

阅读排行

    大家都在搜

    博客维护不易,感谢你的肯定
    扫码打赏,建议金额1-10元
  • 15601023311