1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?