今天在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的配置,仅用于参考