LoginSignup
1
1

More than 3 years have passed since last update.

Rails+Passenger+Debian

Last updated at Posted at 2019-09-02

この記事では、Debian(Google Cloud PlatformのVMを利用)でRails環境を構築した手順についてまとめています。(2019/09/02)

https://www.linode.com/docs/development/ror/ruby-on-rails-apache-debian/
https://symfoware.blog.fc2.com/blog-entry-423.html
こちらの記事を参考にしました。

バージョン情報

rails 6.0.0
Ruby 2.6.3

GCPのVMインスタンスを作成(省略。Debian9を選択)
システムのアップデート
ターミナル
$ sudo apt-get update && sudo apt-get upgrade
RVMとRubyのインストール
ターミナル
$ sudo apt install dirmngr
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$ curl -sSL https://get.rvm.io | bash -s stable --ruby
$ source /home/username/.rvm/scripts/rvm
$ rvm requirements
Railsのインストール
ターミナル
$ gem install rails
Railsアプリの作成
ターミナル
$ rails new example-app
$ cd example-app
$ bundle
passengerのインストール
ターミナル
$ gem install passenger
$ passenger-install-apache2-module

エラーメッセージに従って不足しているプログラムをインストールする。

ターミナル
$ sudo apt-get install libcurl4-openssl-dev
$ sudo apt-get install apache2-mpm-worker
$ sudo apt-get install apache2-dev
$ sudo apt-get install libapr1-dev
$ sudo apt-get install libaprutil1-dev
$ sudo apt-get install apache2

再度、apache2-moduleをインストール(けっこう時間がかかる)

ターミナル
$ passenger-install-apache2-module
apacheの設定ファイルの確認(usernameの所は環境による)
ターミナル
$ passenger-install-apache2-module --snippet
LoadModule passenger_module /home/username/.rvm/gems/ruby-2.6.3/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /home/username/.rvm/gems/ruby-2.6.3/gems/passenger-6.0.2
  PassengerDefaultRuby /home/username/.rvm/gems/ruby-2.6.3/wrappers/ruby
</IfModule>
passenger.confの作成(usernameの所は環境による)
ターミナル
$ vi /etc/apache2/mods-available/passenger.conf
<IfModule mod_passenger.c>
  PassengerRoot /home/username/.rvm/gems/ruby-2.6.3/gems/passenger-6.0.2
  PassengerDefaultRuby /home/username/.rvm/gems/ruby-2.6.3/wrappers/ruby
</IfModule>
passenger.loadの作成(usernameの所は環境による)
ターミナル
$ vi /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /home/username/.rvm/gems/ruby-2.6.3/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
000-default.confの変更(ip_address、usernameの所は環境による。ポート番号80はデフォルト)
ターミナル
$ vi /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
        ServerName ip_address:80
        ServerAdmin webmaster@localhost
        DocumentRoot /home/username/example-app/public
        RailsEnv development
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        <Directory "/home/username/example-app/public">
            Options FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
</VirtualHost>
モジュールの有効化
ターミナル
$ a2enmod passenger
apacheの再起動
ターミナル
$ sudo /etc/init.d/apache2 restart
ブラウザでipにアクセス

190901_1.PNG

apacheのエラーログ確認方法(メモ)
ターミナル
$ cat /var/log/apache2/error.log
感想

途中色々なエラーが出ました。(bundlerがありません、bundlerのバージョンが合ってません、apache2-mpm-workerなんてありません、サーバの権限がありません、authz_core:error等。) これらのエラーはパッケージのバージョンを合わせる、パスを正確に書く、設定ファイルを見直すことで解決しました。コピペするだけじゃなく、エラーログをググって原因を特定できるようにしたいです。

1
1
0

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
1
1