Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问页面时出现Laravel 5.7 Nginx 500错误,可能存在存储权限问题?_Nginx_Laravel 5.6_Ubuntu 18.04_Php 7.2 - Fatal编程技术网

访问页面时出现Laravel 5.7 Nginx 500错误,可能存在存储权限问题?

访问页面时出现Laravel 5.7 Nginx 500错误,可能存在存储权限问题?,nginx,laravel-5.6,ubuntu-18.04,php-7.2,Nginx,Laravel 5.6,Ubuntu 18.04,Php 7.2,解决 您好,我正在将我的第一个Laravel应用程序部署到DigitalOcean,在尝试访问url时遇到500个错误。首先,我要说,这是我第一次部署Laravel和Nginx,也是我第一次配置web服务器,因此如果您发现问题,我欢迎您的反馈!我知道我可以使用Forge,但我正在努力学习,所以请容忍我 服务器由以下部分组成: Ubuntu 18.04 Nginx 1.14.0 PHP7.2.7 拉威尔5.6 这是我的Nginx配置文件(出于安全原因,我将SSL路径更改为path_to,将ur

解决 您好,我正在将我的第一个Laravel应用程序部署到DigitalOcean,在尝试访问url时遇到500个错误。首先,我要说,这是我第一次部署Laravel和Nginx,也是我第一次配置web服务器,因此如果您发现问题,我欢迎您的反馈!我知道我可以使用Forge,但我正在努力学习,所以请容忍我

服务器由以下部分组成:

  • Ubuntu 18.04
  • Nginx 1.14.0
  • PHP7.2.7
  • 拉威尔5.6
这是我的Nginx配置文件(出于安全原因,我将SSL路径更改为path_to,将url更改为sub.domain.com):

我在本地主机上有一个存储文件夹,其中包含指向public/storage的符号链接。我在storage/app/public中有几个文件夹,但是当我将我的项目克隆到服务器时,这些文件夹中没有一个被传输过来,而且符号链接似乎丢失了,因为公用文件夹中没有存储文件夹。所以我运行了
php artisan storage:link
,现在我有了public/storage。我假设我只需要在storage/app/public中重新创建目录

当我尝试访问我的url时,我得到一个500错误,这是来自Nginx的错误:

 *111 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ErrorException: file_put_contents(/var/www/sub.domain.com/storage/framework/views/7315ddb3840f197f8140b159965a4ba4b98e33fe.php): failed to open stream: Permission denied in /var/www/sub.domain.com/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122
在做了一些研究之后,我发现一篇文章说我需要更改存储文件夹的权限,因此我运行了以下两个命令:

sudo chmod -R o+w storage/
sudo chmod -R 775 storage/
不幸的是,这并没有解决我的问题。它还提到更改引导文件的权限,但我不确定这指的是什么。我不确定这是我的Nginx配置文件的问题(我已多次更改),还是权限问题。我猜这是一个权限问题,因为我得到的错误


谢谢你的帮助!谢谢

我运行了以下命令并在每次之后进行了测试,在最后一个命令之后它终于工作了。我不知道这是部分命令、全部命令还是最后一个命令的组合

sudo chmod -R o+w storage/
sudo chmod -R 775 storage/
sudo chmod -R o+w bootstrap/cache
sudo chmod -R 775 bootstrap/cache
chown -Rf www-data.www-data /var/www/sub.domain.com
php artisan cache:clear
composer dump-autoload
sudo chown -R www-data:www-data storage
这对我很有用:

php artisan storage:link
sudo chown -R $USER:www-data storage bootstrap/cache
php artisan storage:link
sudo chown -R $USER:www-data storage bootstrap/cache