如果一直报错,没有任何提示信息,考虑将php的报错log打开
1
2vim php.ini
display_errors On使用lnmp创建vhost时,会生成一个.user.ini这个文件主要是用来告诉php-fpm的php跨目录访问,因为设定的laravel root path是类似于
/home/wwwroot/blog/public这样的,所以这个文件会在public路径下,同时php的访问范围也会限定在public路径下:
open_basedir=/home/wwwroot/blog/public:/tmp/:/proc/
但是Laravel这类框架一般会在public访问上级目录中的文件例如../vendor/autoload.php,此时需要修改user.ini中的改为open_basedir=/home/wwwroot/blog:/tmp/:/proc/.1
2
3chatrr -i .user.ini
vim .user.ini
chatrr +i .user.ini
此时还会有一个问题是修改.user.ini之后即使重启php-fpm之后,文件也没有生效,页面上依然提示blog路径不在blog/public之下,可能的原因是`fastcgi.conf`这个全局配置文件中的配置覆盖了,此时需要将这行注释掉:
1
2
vim /usr/local/nginx/conf/fastcgi.conf
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
- 关于权限设定
此时访问应该就正常了,关于路径设置:1
2
3chown yourgroup:yourgroup laravel_path(.user.ini可能会影响命令执行,可以先 chattr -i)
chown www:www -R ./storage
chown www:www -R ./bootstrap/cache