こんにちは!
とびろぐ管理人のとびうおです!
今回、Laravel のシンボリックリンクについての理解を深めるための記事となっています!
なんでシンボリックリンクを貼るの?
シンボリックリンクを貼る理由は、laravelの/storageの配下へのアクセスを許可したいという時に使うからです。
これは、画像ファイルとかを送信して、保存して、表示する時に使用するものとなっています。
その時、みなさんはよく以下のコマンドを実行すると思います。
php artisan storage:link
では、このコマンドは何をしているの?そもそもシンボリックリンクって何者?というところから説明していこうと思います。
意味を知らずに適当にえいっ!と
このコマンドを打つだけ、から卒業しよう!
という記事です。
Laravelにおけるシンボリックリンクの理解
シンボリックリンクとは何かと言うと、簡単にいうとwindosで言うとショートカット、macで言うとエイリアスです。
もう少し抽象的に表すと、1つのファイルやディレクトリの参照ポイントです。
これを利用すると、実際のファイルやディレクトリの位置を変更せずに、異なる場所からそのファイルやディレクトリにアクセスできるようになります。
ショートカットみたいなもの
と理解しておくとよいね!
では、storage:linkは何をしている?
php artisan storage:link
というコマンドは、何をしているのでしょうか?
Laravelのpublicディレクトリから、storage/app/public ディレクトリへのシンボリックリンクを生成します。
storage/appのpublicディレクトリへのシンボリックリンクだよ!
これが大事!
これによって、アップロードした画像など、webブラウザから直接アクセス可能になります!
シンボリックリンクのメリット
シンボリックリンクのメリットは以下の通りです。
- セキュリティ: データは
public
ディレクトリ外に安全に保存されます。 - アクセスが容易: Webアプリケーションから直接ファイルにアクセスできるようになり、データの取得や表示が簡単になります。
- 管理の簡素化: ファイルやデータの整理が容易になり、アプリケーションの構造が明確になります。
なぜpublicディレクトリに保存しないのか
2つのメリットがあります!
セキュリティ
public
ディレクトリは、Webサーバーを通じて外部に公開されています。
画像やその他のファイルを直接 public
ディレクトリに保存すると、それらのファイルがインターネット上で直接アクセス可能になり、セキュリティ上のリスクが高まります。
たとえば、機密性の高いファイルが含まれている場合、外部からの不正なアクセスにより情報漏洩のリスクが生じます。
アクセス制御
storage
ディレクトリを使用すると、アプリケーションのロジックを通じてファイルへのアクセスを制御できます。
これにより、ユーザーの権限に応じてファイルへのアクセスを許可または拒否するなど、より細かいアクセス制御が可能になります。
それ以外にも
この2つのメリット以外にも、cssやjsなどをstorageディレクトリに保存することによって、アプリケーションのファイル構造を生理し、管理しやすくなります。
面倒くさがらがないで、
しっかりとstorageに保存しましょう!
まとめ
Laravelでは、シンボリックリンクが重要な役割を果たします。
特に、storage
ディレクトリに保存されたファイルをWebで利用可能にするためには不可欠です。
この機能を理解し、適切に活用することで、セキュリティを維持しながらユーザーフレンドリーなアプリケーションを構築できます!
このコンテンツで少しでも
storage:linkの理解が深まってくれたら嬉しいな!
トビログにはこの他にもたくさんLaravelの記事があります!
ぜひチェックしてみてください↓↓
コメント