###CentOS7 + Rails4 + Apache + Passengerで構築した本番環境でPostメソッドを行なうと500 Internal Server Errorが生じる
・Railsアプリのデータ更新をブラウザから行う際にPostメソッドで変更内容を送信すると、500 Internal Server Errorが生じます。
・Getメソッドには何もエラーは生じていません。
###エラーメッセージ
sudo vim /var/log/httpd/error_log
で以下のエラーメッセージを見つけました。
Completed 500 Internal Server Error in 131ms (ActiveRecord: 2.9ms) App 19316 stderr: App 19316 stderr: ActiveRecord::StatementInvalid (SQLite3::ReadOnlyException: attempt to write a readonly database:
これが直接の原因かはわかりませんが、DBのPermisshionが関係しているように見えます。
###行なった対策(どれも効果なし)
① データベースファイルを置くディレクトリのパーミッションを 777 に
sudo chmod 777 db
② データベースファイルのオーナーを appache のユーザに
appache のユーザとグループが apache で、データベースのファイル名が db/development.sqlite3だったので、
chown apache.apache db/development.sqlite3
でオーナーを変更
③RailsアプリのSECRET_KEY_BASEをApacheの設定に追加
Railsアプリのconfig/secrets.yml
の
ruby
1production: 2secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
の部分に該当するSECRET_KEY_BASEをapacheのhttpd.confに載せた
④Railsアプリのconfig/environment.rbのオーナーを設定
chown apache config/environment.rb
色々やってみていますが、どれも解決に至っておりません。
変わらず500 Internal Server Error出ます。
どなたか解決方法、もしくは解決のヒントの見つけ方などご存知の方がおりましたら、ご教授していただく、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/25 13:17