#author("2017-02-24T16:28:27+09:00","default:wikiwriter","wikiwriter")
#author("2020-04-25T04:47:40+00:00","default:wikiwriter","wikiwriter")
&tag(Passenger);
*目次 [#ge427d27]
#contents
*関連ページ [#webb2a28]
*参考情報 [#nc009d31]
-[[Apache Passengerの設定項目について調べた - HK's Weblog:http://hakutoitoi.hatenablog.com/entry/2014/03/10/191942]]

*基本情報 [#t74bab36]
-RailsをApache2やNginxで動かすためのモジュール。

*準備 [#h8c54a5d]

**CentOS 7の場合 [#s9d10014]
-事前に以下のものをインストールしておく。
 sudo yum -y install git sqlite sqlite-devel httpd-devel curl-devel apr-devel apr-util-devel libffi-devel openssh

*インストール [#vb1e82ee]
-passengerのgemをインストール
 gem install passenger
-Apache用のモジュールをインストール
 passenger-install-apache2-module 

*Tips [#p6ce546b]

**サブディレクトリで運用する [#g6744ac3]
-RailsBaseURIをDirectoryの前に書く必要あり?
#pre{{

RailsBaseURI /foo
<Directory /home/www/foo/public>
  allowoverride all
  options -multiviews
</Directory>

RailsBaseURI /bar
<Directory /home/www/bar/public>
  allowoverride all
  options -multiviews
</Directory>

}}
-ドキュメントルート(例えば/var/www)以下にシンボリックリンクを貼る。
 cd /var/www/html 
 ln -s /home/www/foo/public foo

***サブディレクトリで運用したときにアイコンフォントが表示されない問題 [#pf6ac804]
-[[twitter-bootstrap-railsを使ったRailsアプリをサブディレクトリ運用のPassengerにデプロイしたらAsset Pipelineでハマった - 仙台 Ruby Vim JavaScript フリーランスプログラマ:http://katahirado.hatenablog.com/entry/20120806/1344235929]]
-[[Bootstrapのアイコンが表示されない場合【Rails】 | Kntmrkm.new():http://kntmrkm.ap01.aws.af.cm/ict/rails/bootstrap%E3%81%AE%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%90rails%E3%80%91/]]
**複数バージョンを使い分ける [#t7a0aa5e]
-[[プロキシを使わずにRuby-1.9/2.1混在環境も作れる、Apache2+Passenger4+rbenvを用いた混在環境の作り方 - Y-Ken Studio:http://y-ken.hatenablog.com/entry/how-to-use-multiple-ruby-version-in-one-apache-passenger]]
-[[passengerを複数のrubyのバージョンで動かす - kame's engineer note:http://kameryo.hatenablog.com/entry/2015/02/03/100000]]
-疑問点: VirtualHostの設定ごとにPassengerRubyでRubyのインスタンスを指定すれば良いらしのだが、それぞれのごとにpassengerをインストールする必要があるのか?
-assetsのプリコンパイルで解決できる?(うまくいかず)
 bundle exec rake assets:precompile RAILS_ENV=production RAILS_RELATIVE_URL_ROOT=/hoge

***とりあえずのまとめ [#h31e1817]
-rbenvのどれかのバージョンで以下のコマンドを実行
 $ gem install passenger
 $ passenger-install-apache2-module
-httpd.confに、passenger-install-apache2-moduleの最後に表示された文字列をコピペする。
#pre{{
LoadModule passenger_module /Users/sora/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-4.\
0.59/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
    PassengerRoot /Users/sora/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-4.0.59
    PassengerDefaultRuby /Users/sora/.rbenv/versions/2.2.1/bin/ruby
</IfModule>
}}
-VirtualHostごとにPassengerRubyでRubyのバージョンを指定する。
#pre{{
<VirtualHost *>
    PassengerRuby /Users/sora/.rbenv/versions/2.2.3/bin/ruby
    ServerName is.home.jp
    ServerAdmin webmaster@is.home.jp
    DocumentRoot /Users/sora/work/idea-stocker/public
    <Directory "/Users/sora/work/idea-stocker/public">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog logs/is_error.log
    LogLevel warn
    CustomLog logs/is_acces.log combined
</VirtualHost>

<VirtualHost *>
    PassengerRuby /Users/sora/.rbenv/versions/2.2.2/bin/ruby
    ServerName milk.home.jp
    ServerAdmin webmaster@is.home.jp
    DocumentRoot /opt/home/milkode/public
    PassengerHighPerformance on
    SetEnv MILKODE_DEFAULT_DIR /opt/home/milkode/data
    <Directory "/opt/home/milkode/public">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog logs/milk_error.log
    LogLevel warn
    CustomLog logs/milk_acces.log combined
</VirtualHost>

}}

**Nginxとの連携 [#ka7d0eeb]
-Nginxはローダブルモジュールをサポートしていないのでpassenger-install-nginx-moduleを実行する際、nginx自体の再コンパイルが必要となる。


*トラブルシューティング [#o51552dc]

**「is not secure: it can be modified by user ほげ」という警告 [#u4ebedd2]
-macOS Catalinaでpassenger-6.0.4を使ったら表示されるようになった。
-[[Phusion Passenger is running as root, and part(s) of the Passenger root path (パス) can be changed by non-root user is not secure: it can be modified by user ほげほげ | N-BLOGΣ(゜Д゜)カッ!:https://blog.masterka.net/archives/1828]]によると、以下で解決?
#pre{{
Listen 8081
<VirtualHost *:8081>
  PassengerUserSwitching off
  PassengerDefaultUser エラーに出てたユーザ
</VirtualHost>
}}
**rails s: Could not find rake-10.4.2 in any of the sources [#l4510a4a]
-複数バージョンのRubyをRailsアプリごとに設定しているのが原因。
-どれかでうまくアプリが起動してないと、正常にいくほうのはずでもエラーになる模様。

**OS X El Capitan+Xcode 7.3でクラッシュ [#d0fa6e46]
-[[Passenger compiled with Xcode 7.3.0 crashes (BackgroundIOCapturer::capture() + 180 in trace) · Issue #1780 · phusion/passenger · GitHub:https://github.com/phusion/passenger/issues/1780]]によると、Xcode 7.3.1で修正されたとあるがだめ。
-Xcode 8にバージョンアップするところ動くようになった?

**Passenger Unexpected error in mod_passenger: Cannot connect to Unix socket [#w7d36c5b]
-[[ruby on rails - Passenger Unexpected error in mod_passenger: Cannot connect to Unix socket - Stack Overflow:http://stackoverflow.com/questions/9791677/passenger-unexpected-error-in-mod-passenger-cannot-connect-to-unix-socket]]。
-[[Error when deploying Rails with Passenger and Apache: Unexpected error in mod_passenger: Cannot connect to Unix socket Permission denied (errno=13) - Stack Overflow:http://stackoverflow.com/questions/42830792/error-when-deploying-rails-with-passenger-and-apache-unexpected-error-in-mod-pa]]
-以下のようなメッセージ。
#pre{{
[ 2017-04-25 22:08:25.6092 70194/0x7fffa8de03c0 apa/Hooks.cpp:690 ]: Unexpected error in mod_passenger: Cannot connect to Unix socket '/var/folders/c_/51lw7zp97vv4yvbn4wb_3bv40000gq/T/passenger.NaI6sJ6/agents.s/core': Permission denied (errno=13)
}}
-パーミッションエラー?apachectl restartでも解決せず。しかしマシンごと再起動したら復活した。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS