我正在尝试通过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。
知道如何解决这个问题吗?
答案 0 :(得分:0)
唯一需要理清的是:
'/tmp/passenger.1.0.10257/generation-0/socket': Permission denied (13)
然而,tmp通常具有粘滞位设置,这限制了非所有者可以对文件执行的操作(并且使用unix套接字的一个重要原因是用于权限分离)。套接字真的不应该在/ tmp中。在/ var的某个地方是一个更明智的位置。
是的,您对/ tmp的权限是错误的,因此您将会遇到其他奇怪的事情。