質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.99%

bundle exec rake db:migrateをするとエラーになる

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 848

abab7200

score 84

参考サイトをもとにawsへrailsをインストールしていますbundle exec rake db:migrateでマイグレーションを実行するとエラーになります。
おそらく権限系のエラーだと思いますが、この部分はあまり詳しくないので、どなたかご教授いただければと存じます。

環境

AWS LINUX

rails4

クリエイトはうまくいきます

bundle exec rake db:create RAILS_ENV=production

マイグレーションを実行するとエラー

bundle exec rake db:migrate RAILS_ENV=production

[DEPRECATION] requiring "RMagick" is deprecated. Use "rmagick" instead
rake aborted!

Errno::EACCES: Permission denied @ dir_s_mkdir - /var/www/blog/tmp

/var/www/blog/config/environment.rb:5:in `<top (required)>'
/home/taku/.rbenv/versions/2.1.4/bin/bundle:23:in `load'
/home/taku/.rbenv/versions/2.1.4/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

以下操作で新規作成したユーザーで操作していますが、ユーザーにもroot権限を付与しています。

[ec2-user|~]$ sudo adduser 新規ユーザー名 

[ec2-user|~]$ sudo passwd 新規ユーザー名 
[ec2-user|~]$ sudo visudo
-----------------------------

root    ALL=(ALL)       ALL
新規ユーザー名  ALL=(ALL)       ALL #この行を追加
blog $ls -la

total 120
drwxr-xr-x 13 root root  4096 Nov  7 01:51 .
drwxr-xr-x  3 root root  4096 Nov  7 01:37 ..
drwxr-xr-x  9 root root  4096 Nov  7 01:37 app
drwxr-xr-x  2 root root  4096 Nov  7 01:37 bin
drwxr-xr-x  3 root root  4096 Nov  7 01:37 blog
-rw-r--r--  1 root root   338 Nov  7 01:37 Capfile
drwxr-xr-x  6 root root  4096 Nov  7 02:36 config
-rw-r--r--  1 root root   153 Nov  7 01:37 config.ru
-rw-r--r--  1 root root   264 Nov  7 01:37 database.yml
drwxrwxrwx  3 root root  4096 Nov  7 01:37 db
-rw-r--r--  1 root root 23170 Nov  7 01:37 dump.rdb
-rw-r--r--  1 root root   834 Nov  7 01:51 .env
-rw-r--r--  1 root root  2289 Nov  7 01:37 Gemfile
-rw-r--r--  1 root root 10978 Nov  7 01:37 Gemfile.lock
drwxr-xr-x  8 root root  4096 Nov  7 01:37 .git
-rw-r--r--  1 root root   399 Nov  7 01:37 .gitignore
drwxr-xr-x  2 root root  4096 Nov  7 01:37 .idea
drwxr-xr-x  5 root root  4096 Nov  7 01:37 lib
drwxr-xr-x  2 root root  4096 Nov  7 01:37 log
lrwxrwxrwx  1 root root    25 Nov  7 01:37 mysql.sock -> /var/lib/mysql/mysql.sock
drwxr-xr-x  3 root root  4096 Nov  7 01:37 public
-rw-r--r--  1 root root   249 Nov  7 01:37 Rakefile
-rw-r--r--  1 root root   478 Nov  7 01:37 README.rdoc
drwxr-xr-x  8 root root  4096 Nov  7 01:37 test
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • CHERRY

    2018/11/07 13:07 編集

    blog が、 root ユーザーは、「読み書き実行」可能な権限。 root グループは、 「読み実行」可能な権限ですね。 書き込みがないようです。

    rake db:create は、mysql に対しての操作なので、ファイルのパーミッションは、読み込みができれば、あまり関係ないです。

    キャンセル

  • CHERRY

    2018/11/07 13:07 編集

    念のため確認ですが、『新規作成したユーザーで操作していますが、ユーザーにもroot権限を付与しています。』ということですが、どのような操作をしましたか?

    キャンセル

  • abab7200

    2018/11/07 13:11

    コメントありがとうございます。質問へ追記しました

    キャンセル

回答 1

checkベストアンサー

+1

個人的には、rails のファイルを root 権限で設定するのはお勧めしません。

参考にされたサイトをみましたが、yum を使ってのライブラリのインストールや nginx や nodejs 等のインストール等は、 root 権限で行なっていますが、 ruby のインストールや rails の clone(インストール) と設定、unicorn の起動は、一般ユーザーでやっています。

rails のインストール先( /var/www/blog )のディレクトリの所有者を一般ユーザーにして、rails の設定・起動を一般ユーザーで行うことをお勧めします。


とりあえず、質問の回答としては、

sudo の設定は、管理者としてコマンドを実行する権限の設定です。
sudo の設定を行なったら、実行するコマンド全てが、管理者として実行されるわけではありません。

管理者権限でコマンドを実行したい場合は、コマンドの前に sudo  をつけて、

sudo bundle exec rake db:migrate RAILS_ENV=production

のように実行する必要があります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/07 13:42

    対応できました ありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る