内容
題名の通り、Laravelでシンボリックリンクを使用していたのですが、いざ本番環境にデプロイしたところ見事にローカル環境で設定していたシンボリックリンクがなくなっていました。
まず、ローカル時の段階であまりシンボリックリンクについて理解しないまま、使っていたため本番環境でつまずいてしまいました。
ちなみにローカル時のシンボリックリンクの指定方法については、下記の通りです。
参考:https://readouble.com/laravel/6.x/ja/filesystem.html
環境
- Laravel6
- php(7.4.6)
- centos7(linux) (pcはwindowsです。)
シンボリックリンクとは
シンボリックリンクとは、オペレーティングシステム(OS)のファイルシステムの機能の一つで、特定のファイルやディレクトリを指し示す別のファイルを作成し、それを通じて本体を参照できるようにする仕組み。
引用
うん、確かにその通りだけど、わかりにくい。
自分なりに解釈したところ、
フォルダの中にフォルダを作成し、そのフォルダは自動的に指定したリンク先へ飛んでくれるってことです。
てことで概要がわかったので、実際に作成していきましょう。
いざ実践
やること
Laravelであれば、publicフォルダの中にそれぞれimg,css,jsのフォルダがあり、その中にそれぞれ画像やcssのファイル、jsのファイルを入れると思います。
そこから画像を取り出したいときは、階層を指定してとってきますよね。
そのため、publicフォルダの中にシンボリックリンクを指定しているフォルダを作成して、そのフォルダを指定すれば、自動的にリンク先に飛ぶので、リンク先の画像が取り出せるということです。
コマンド操作
ちなみに私はローカル環境で
php artisan storage:link
と何も考えずに指定し、動かしていたので理解していませんでした。
そのため、今回はlinuxで直接指定する方法について記載します。
ln -s [リンク先] [フォルダの置き場]
//例
ln -s /var/www/test/storage/ /var/www/test/public
このようにコマンド指定すれば作成できました!
まとめ
以上がシンボリックリンクに関しての内容になります。
やはり理解があまいままだとどこかでつまずきますね。笑
参考にさせていただいた記事は下記の通りです。