Laravel SailでUbuntu上で【Permission Denied】となった時の対策

Laravel Sailで環境構築!

Laravel Sailでは、Ubuntuを使用します。

Ubuntuには、rootユーザーという管理者ユーザーと、一般ユーザーが存在します。

管理者ユーザーの状態でWSLをインストールした場合には、Ubuntuのデフォルトユーザーはrootユーザーとなります。

この状態でLaravel Sailのプロジェクトを作成すると、次のようなエラーがでてきます。

 “/var/www/html/storage/logs/laravel.log” could not be opened
Permission Denied

こちらについて、原因と対策をご紹介します。

Ubuntu Permission Denied エラーの原因

エラーは、プロジェクトのファイルやディレクトリがrootユーザーによって作成されるため、Laravel Sailがアクセスできないために起こります。

Laravel Sailは通常のユーザー権限で実行されるため、rootユーザーが所有するファイルやディレクトリにアクセスできない場合があるのです。

Ubuntu Permission Denied エラーの対策

この問題を解決するには、以下の手順を実行して一般ユーザーを使用してWSLを設定し、プロジェクトのファイル権限を適切に管理することが必要です。

新規ユーザーの作成

もし一般ユーザーがない場合は、まずは新規ユーザーを作成しましょう。

Ubuntuを起動します。

Ubuntuで一般ユーザーを作成するには、下記コマンドを実行します。

ユーザーを作成すると、パスワードを聞かれます。パスワードを入力します。

その後、作成したユーザー用のパスワードを聞かれるので、パスワードを設定します。

すると、ユーザーのフルネーム等をいれる画面となります。特に必要なければ、すべてEnterキーを押していきます。最後に「Y」を押します。

これで新規ユーザーを作成できました。

新規ユーザーをDockerグループに追加

引き続き、作成したユーザーをDockerグループに追加します。

次のコマンドを実行します。

これでDockerグループに追加できます。

おまけ:新規ユーザーをDocker以外のグループにも加えたい場合

もしすでにデフォルトの既存ユーザーがいる場合、かつ新規ユーザーを既存ユーザーが所属しているグループすべてに加えたい場合には、次のようにします。

既存のデフォルトユーザーのグループをチェックします。

既存ユーザーのグループを確認するには、下記を実行します、

わたしは「jun」という既存ユーザー名でUbuntuを使っています。上記コマンドを実行すると、次のような画面になります。

新しく作ったユーザーも同じグループに所属させたい場合には、次のコマンドを実行します。

グループ名は「,]で区切るようにしましょう。

コマンド実行後に、下記を実行して、新規ユーザーにグループが追加されたかチェックします。

実際にコマンドを入力した結果は、下記のとおりです。

ユーザーログアウト

一度「exit」を実行して、ユーザーのログアウトをします。

PowerShell上でWSLユーザーを新規ユーザーに変更

PowerShell・Ubuntuを立ち上げなおしておきます。

ubuntuユーザーを新規ユーザーに変更します。

Docker Integrationをしなおすといった画面がでるので、【Restart the WSL integration】を押します。

Ubuntuがクローズします。Dockerが再起動します。

再度Ubuntuを立ち上げ、下記コマンドで、新規ユーザーとしてログインをしておきます。

パスワードを聞かれるので、設定した新規ユーザー用のパスワードを入力します。

なお、現在のユーザーを確認するにはUbuntu上で下記を実行します。

Laravel Sailプロジェクト作成

これで準備が整いました。

Ubuntu上でLaravel Sailプロジェクトを作成します。

プロジェクトが作成されればOKです。

まだPermission Deniedと出る場合

ですがまだPermission Deniedと出た場合、プロジェクト内で下記をお試しください。

ファイル・ディレクトリの所有者と権限が表示されます。所有者が「root」になっていた場合には所有者を変更します。

まず、rootユーザーとしてシェルに入ります。

次に下記を実行します。

現在のディレクトリ(.)およびそのサブディレクトリとファイルの所有者を sail ユーザーと sail グループに変更します。

ルートシェルを終了します。

さいごに

エラー解消できたら嬉しいです。

Laravel Sailの使い方については、下記もご覧ください。

Laravel Sailで環境構築!

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【AWS関連・Webアプリ開発・生成AIのAPI活用のご相談承ってます】
お気軽にお声がけください。
御社にとって、最善の方法をご一緒に考えてまいります。
Zoomミーティング実施中。サンプルアプリご利用可能です。

お問合せフォーム

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

最新版Laravel11用のサポートガイドご用意しています。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました