0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】シンボリックリンクの適切な処理の仕方

Posted at

1. シンボリックリンクが存在しているか確認する

確認方法

以下の手順でシンボリックリンクが存在されているか確認します。

1.コマンド実行位置
プロジェクトのルートディレクトリ(artisanコマンドが存在するディレクトリ)で実行します。

2.以下のコマンドで、public/storageリンクが存在するか確認

ls -l public/storage

リンクが存在する場合、以下のような出力が得られます。

lrwxrwxrwx 1 username group 23 Aug  1 12:34 public/storage -> ../storage/app/public

ここでpublic/storageが../storage/app/publicにリンクされていることが確認できます。
リンクが存在しない場合、

ls: cannot access 'public/storage': No such file or directory

といったエラーメッセージが表示されます。

2. シンボリックリンクが存在しない場合に作成する

シンボリックリンクの作成

1.コマンド実行位置
引き続きプロジェクトのルートディレクトリで実行します。

2.以下のコマンドでシンボリックリンクを作成

php artisan storage:link

このコマンドを実行すると、public/storagestorage/app/publicへのシンボリックリンクが作成されます。

実行後の確認

再度以下のコマンドを実行して、リンクが正しく作成されたことを確認します。

ls -l public/storage

正常にリンクが作成されていれば、リンクの詳細が表示されます。

例)lrwxrwxrwx 1 username group 23 Aug  1 12:34 public/storage -> ../storage/app/public

3. 留意点

コマンド実行場所の重要性

php artisanコマンドは、Laravelプロジェクトのルートディレクトリで実行する必要があります。プロジェクトのルートディレクトリとは、artisanファイルやcomposer.jsonファイルが存在するディレクトリのことです。

サーバー環境による制約

一部のサーバーやホスティング環境では、シンボリックリンクの作成が制限されていることがあります。特に、共有ホスティングなどでは管理者に相談が必要な場合があります。

パーミッションの確認

storageおよびpublicディレクトリのパーミッションが正しく設定されていることを確認してください。通常、これらのディレクトリにはWebサーバーが書き込み可能なように設定されている必要があります。

例)
chmod -R 775 storage
chmod -R 775 public

最後に

これで、シンボリックリンクの確認と作成ができるようになります。シンボリックリンクが正しく作成されていることで、storage/app/publicディレクトリに保存されたファイルがWebからアクセス可能になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?