ラベル passenger の投稿を表示しています。 すべての投稿を表示
ラベル passenger の投稿を表示しています。 すべての投稿を表示

2015/11/06

本番環境での secret_key_base 設定

本番環境に Rails4.2.4 のアプリケーションをデプロイするとこんなエラーが出た。
App 21863 stderr: [ 2015-11-06 12:37:20.3972 21881/0x007f1632a022e8(Worker 1) utils.rb:84 ]: *** Exception RuntimeError in Rack application object (Missing `secret_token` and `secret_key_base` for 'production' environment, set these value
s in `config/secrets.yml`) (process 21881, thread 0x007f1632a022e8(Worker 1)):
config/secrets.ymlによると、本番環境ではENV["SECRET_KEY_BASE"]を読み込むらしい。
でも、複数の Rails アプリを動かしているし、今後も増やすだろうからpassengerの運用ユーザーに対して設定する訳にはいかない。
ENV["FOO_SECRET_KEY_BASE"]のようにアプリごとに環境変数変えたらいいのかな?とおもって調べてみると、apacheの設定ファイルで SetEnv すればよいらしい。
# /etc/apache2/sites-available/foo-app.conf
<VirtualHost *:80>
  ServerName foo-app.mkt-sys.jp:80
  DocumentRoot /var/lib/rails/foo-app/public
  <Directory /var/lib/rails/foo-app/public/>
    SetEnv SECRET_KEY_BASE abcdefg...xyz       #←ココ
    Options FollowSymLinks
    AllowOverride None
    Require all granted
  </Directory>
  PassengerEnabled on
</VirtualHost>
設定するキーは bunde exec rake secret RAILS_ENV=production で出力されたものをコピペ。(多分 RAILS_ENV=productionはいらないだろうけど)

2012/04/27

さくら VPS の Ubuntu Server 10.04 に Ruby をインストール

ここ数日体調崩して朝に活動出来なかった。
季節の変わり目は余裕ぶっこいたらダメですね。

というわけで、掲題の通りさくら VPS の Ubunt Server 10.04 に Ruby をインストールしました。
apt で入る Ruby の最新バージョンは 1.9.1 なので、最新の 1.9.3 を使用するべくソースからインストールすることに。
あと、今回から root で作業してます。sudo はいろいろとめんどくさい。環境変数とか

# 使いそうなライブラリを入れておく
$ aptitude install -y zlib1g-dev libssl-dev libreadline-dev libxslt-dev libxml2-dev libyaml-dev
# passenger 用
$ aptitude install -y libcurl4-openssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev

# Ruby (ソースから)
$ wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
$ tar xvf ruby-1.9.3-p194.tar.gz
$ cd ruby-1.9.3-p194
$ ./configure --prefix=/usr/local/ruby
$ make
$ make install
$ ln -s /usr/local/ruby/bin/* /usr/bin/

# rubygems
$ echo "gem: --no-ri --no-rdoc" > ~/.gemrc
# rails で使用する gem は bundler で管理するので最低限だけ入れておく
$ gem install bundler
$ ln -s /usr/local/ruby/bin/bundle /usr/bin/

# passengerの導入
$ gem install passenger
$ /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.12/bin/passenger-install-apache2-module
ライブラリが足りなかったらコマンドで教えてくれるのでインストール
# passenger 読み込みファイル作成 $ vim /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
# passenger 設定ファイル作成 $ vim /etc/apache2/mods-available/passenger.conf
PassengerRoot /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.12 PassengerRuby /usr/local/ruby/bin/ruby PassengerEnabled off
# passenger を有効化 $ a2enmod passenger # Apache 再起動 $ service apache2 restart

さくら VPS (Ubuntu Server 10.04)設定エントリ一覧

2010/07/16

ServerMan@VPSにてRedmine+passengerを設定

ServersMan@VPS に Redmine を導入しましょう。
passenger で動かすので、passenger の導入・設定なども

[passengerのインストール]
% yum -y install httpd-devel
% gem -y install passenger
% /usr/bin/passenger-install-apache2-module
% vi /etc/httpd/conf.d/passenger.conf
    # passenger の設定
    LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
    PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15
    PassengerRuby /usr/bin/ruby

[redmine の配置]
% mkdir /var/lib/rails
% wget http://rubyforge.org/frs/download.php/71530/redmine-0.9.6.tar.gz
% tar zxf redmine-0.9.6.tar.gz
% mv redmin-0.9.6 /var/lib/rails/redmine
% ln -s /var/lib/rails/redmine/public /var/www/html/redmine

[redmine の設定]
% cd /var/lib/rails/redmine
# データベースを作る
% su - postgres
$ createdb redmine
$ exit
# database.yml を作成
% mv config/database.yml.example config/database.yml
% vi config/database.yml
    production:
      adapter: postgresql
      database: redmine
      host: localhost
      username: rails
      password: password
      encoding: utf8
% vi vendor/rails/actionpack/lib/action_controller.rb
    gem 'rack', '~> 1.1.0'   # gem 'rack', '~> 1.0.1'から変更
# マイグレーション前にセッション情報を作っておく必要がある
# 作らずにマイグレーションを行うと下記のようなエラーが出る
# A key is required to write a cookie containing the session data. Use config.action_controller.session = { :key => "_myapp_session", :secret => "some secret phrase" } in config/environment.rb
% rake config/initializers/session_store.rb
% rake db:migrate RAILS_ENV=production
# ログのローテーション設定
% vi /etc/logrotate.d/redmine
    /var/lib/rails/redmine/log/*log {
        weekly
        missingok
        notifempty
        copytruncate
    }