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/storage
にstorage/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からアクセス可能になります。