LoginSignup
2

More than 3 years have passed since last update.

自動デプロイ(Capistrano)でエラー mkdir: ディレクトリ `/var/www' を作成できません: 許可がありません

Last updated at Posted at 2020-01-21

Capistranoで自動デプロイをしていると、エラーが発生しました

Image from Gyazo

テキストだと下記ですね

mkdir stdout: Nothing written
mkdir stderr: mkdir: ディレクトリ `/var/www' を作成できません: 許可がありません
mkdir: ディレクトリ `/var/www' を作成できません: 許可がありません

このエラー"var/www/アプリ名"のディレクトリにしている場合は、パーミッションの問題等だと思いますが、、、

「 "var/www/アプリ名"使ってないんですけど!!!

 なんでエラーが出るんだよ!!!
 "www"が気に食わないから、別のフォルダ名にしてるんですけど!!!
 他の記述も確認したけど、全部"var/www/アプリ名"書いてねええよ!!! 」

という人向けに対処方法を解説します。

原因

CapistranoのHPにも記載されていますが、
デフォルトだと"var/www/アプリ名"を読み込見ます。
でも"var/www/アプリ名"のディレクトリにアプリを保存していないので、
「アプリないから、自動デプロイできないで」という状態です。

だから手動デプロイだとうまく行きますが、Capistranoを使った自動デプロイではエラーが発生したわけです。

解決策

結論: Capistranoのデフォルト設定が"var/www/アプリ名"を読み込むので、オプション設定で変更する。

deploy.rb
# 下記を挿入してください
set :deploy_to, '/var/○○○(ディレクトリ名)/○○○(アプリ名)'

これを挿入することで、EC2にあるアプリの保存場所を正しく認識され、Capistranoで読み込みが可能となります。

あとは自動デプロイを実行しましょう

# アプリケーションのディレクトリで実行する
$ bundle exec cap production deploy

今度はうまくいくはずです。

[参考](https://capistranorb.com/documentation/getting-started/configuration/)

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
2