1

mod_passenger を使用して Apache で実行されているいくつかの Rails アプリ (Redmine、toto) にアクセスしようとしていますが、Apache エラー ログに次のエラーが表示されます。

[ pid=11154 thr=3076008592 file=ext/apache2/Hooks.cpp:884 time=2012-07-25 17:25:02.921 ]: Unexpected error in mod_passenger: Cannot connect to Unix socket '/tmp/passenger.1.0.10257/generation-0/socket': Permission denied (13)
  Backtrace:
 in 'Passenger::ApplicationPool::Client* Passenger::ApplicationPool::Client::connect(const std::string&, const std::string&, const Passenger::StaticString&)' (Client.h:438)
 in 'Passenger::ApplicationPool::Client* Hooks::getApplicationPool()' (Hooks.cpp:286)
 in 'Passenger::SessionPtr Hooks::getSession(const Passenger::PoolOptions&)' (Hooks.cpp:312)
 in 'int Hooks::handleRequest(request_rec*)' (Hooks.cpp:585)

これが私のApache Passenger confファイルです:

$ cat passenger.conf
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.14
  PassengerRuby /usr/local/bin/ruby
  PassengerDefaultUser www-data
</IfModule>
$ cat passenger.load
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.14/ext/apache2/mod_passenger.so

Ubuntu 11.04、Apache 2.2.17、Ruby 1.9.1、Rails 3.2.6、Passenger 3.0.14 を実行しています。

この問題を解決する方法はありますか?

4

1 に答える 1

0

あなたが整理する必要がある唯一のものはこれです:

'/tmp/passenger.1.0.10257/generation-0/socket': Permission denied (13)

ただし、tmp には通常、非所有者がファイルに対して実行できる操作を制限するスティッキー ビットが設定されています (また、UNIX ソケットを使用する大きな理由は、特権の分離のためです)。実際、ソケットは /tmp にあるべきではありません。/var のどこかがより賢明な場所です。

はい、/tmp のアクセス許可が間違っているため、結果として他の奇妙なことが起こります。

于 2012-07-25T22:47:54.593 に答える