LoginSignup
0
0

More than 1 year has passed since last update.

BeanstalkでLaravelのシンボリックリンク設定を起動時に済ませたい

Last updated at Posted at 2022-05-28

Beanstalkでは「.ebextensions」ディレクトリ配下に予め準備しておいたファイルをもとに、起動時に自動でコマンドを打ってくれます。

set-timezone.config
# /.ebextensions/set-timezone.config

commands:
  set_time_zone:
    command: ln -f -s /usr/share/zoneinfo/Japan /etc/localtime

こんな感じ。

その勢いでLaravelのシンボリックリンク設定を自動化したかったんですが、そこで少し詰まったんで記事として書いておきます。

うまく行かなかったケース

最初はこんな感じで記載していました。

starage-link.config
# /.ebextensions/starage-link.config
# シンボリックリンクを作成

container_commands:
  storage_link:
    command: "php artisan storage:link"

いざデプロイしてみるとエラーは特に発生しなかったんですが、うまくリンクができていませんでした。

なんでや!と思ってサーバーの中見てたんですが、存在しない絶対パスをリンク先として参照しており、それで上手くいっていなかった模様…

色々調べましたが「php artisan storage:link」でシンボリックリンクを作る方法はBeanstalkでは適していないようです。

過去に似た内容で質問されている方もいました

うまく行ったケース

Linuxのlnコマンドを使うと解決しました。

set-timezone.config
# /.ebextensions/starage-link.config
# シンボリックリンクを作成

container_commands:
  storage_link:
    command: "ln -s ../storage/app/public public/storage"

-s オプションをつけることでシンボリックリンクを作ることができます。
これで上手くいきました!

BeanstalkはPaaSとして結構便利だと思ってるんですが、時よりこんな感じで詰まることがあります…
いい加減ECS辺りにお引越しさせようかと悩んでいるところです。

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