Ubuntu 20.04 LTS でrbenv, Passengerに必要なパッケージ
Ubuntu 20.04 LTS でrbenvに必要なパッケージ
$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev
Passengerに必要なパッケージ
$ sudo apt install libcurl4-openssl-dev apache2-dev libapr1-dev libaprutil1-dev
Rails + CarrierWave + Capistranoの環境でDeployすると画像が消えてしまうので
開発環境ではCarrierWave画像の保存場所はpublic/uploads/*となり、その中に下記のパスに保存される。
app/loader/*.rbの中身
def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end
しかし、本番環境ではpublicディレクトリそのものがGit管理下にあるため、Deployするたびにpublic/uploadが削除されてしまう。
回避するためにはまず、public/uploadをGit管理下から除外する。
git rm -r --cached public/uploads
.gitignoreにも追記
/public/uploads
本番環境でアップロードされたファイルの上書きを避けるために保存される場所をsharedフォルダに変更する設定。
deploy.rbに追記。Capistrano3.*〜。
set :linked_dirs, %w(public/uploads)
これでDeploy時にシンボリックリンクが作成されるようになる。
$ bundle exec cap production deploy … ln -s /www/rails/project/shared/public/uploads /www/rails/project/releases/2020XXXXXXXXXX/public/uploads …
Deployが完了したら本番環境で画像をアップロード後、再度Deployを行い画像が消えないことを確認できれはOK。
Capistranoのバージョンが2以下の場合の設定。
set :shared_children, shared_children + %w{public/uploads}
Capistranoのバージョンの確認。
bundle exec cap --version
参考)
Capistrano バージョン確認 : やっぱり生が好き
How to get Capistrano to ignore upload directories (Carrierwave) – (via @AstonJ)
自分用)VirtualBox6.x~でVBoxWindowsAdditionsを実行しても画面がリサイズされない
「ディスプレイ > スクリーン > Graphic Controller」をVMSVGAからVBoxVGAに変更
参考)
VirtualBox6.0で画面がリサイズされない場合はGraphic Controllerを変えると直るかもしれない | takekoshi's blog