フォルダーのアクセス許可を777に変更することにあまり熱心ではありませんでした。この問題を解決する方法を以下に示します。
まず、ローカルマシンでWebサーバーを実行しているユーザーを変更しました(nginxを実行していますが、原則はどこにでも適用されます)。
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
その後、フォルダーのindex.php
下に別のファイルを作成しpublic/
て、php-fpmバージョンを実行しているユーザーと、それをどこに変更するかを調べました。
<?php
phpinfo();
?>
ページをリロードすると、それwww-data
がユーザー(環境セクションの下)であることがわかりました。また、php 7.1を実行していることもわかりました。ユーザーの変更に進みました:
$> sudo vim /etc/php/7.0/fpm/pool.d/www.conf
#Look for www-data or the following variables: user, group, listen.user, listen.group.
最後に、フォルダに次のアクセス許可を与えました。
sudo chmod -R 775 ./storage/
今、私は単純なものを使用して、私がフォルダの所有者であることを確認しました:
ls -al
サーバーとphp-fpmのユーザーを自分に設定し、フォルダーがたとえばrootによって所有されている場合、この問題が発生し続けます。これは、sudo laravel new <project>
ルートとして実行した場合に発生する可能性があります。その場合は、chown
プロジェクトで再帰コマンドを使用してuser:group
設定を変更してください。ほとんどのデフォルトの場合、www-data
はサーバーとphpのメイン設定です。その場合は、フォルダーがwww-data
届かないことを確認することが重要です。
プロジェクトはホームディレクトリにセットアップされています。Ubuntu 16.04およびLaravel 5.5。