mod_passenger“无法连接到Unix套接字”错误
问题描述:
我试图访问一对夫妇的Rails应用(管理平台,TOTO)由mod_passenger的方式在Apache上运行,并在我的Apache的错误日志中出现以下错误:mod_passenger“无法连接到Unix套接字”错误
[ 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客运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,阿帕奇2.2.17,1.9.1,3.2.6的Rails,客运3.0.14。
任何想法如何解决这个问题?
答
你需要理清的唯一事情是这样的:
'/tmp/passenger.1.0.10257/generation-0/socket': Permission denied (13)
然而TMP通常有粘性位设置,限制什么非业主可以对文件做(和一大原因,使用Unix套接字是特权分离)。真的一个套接字不应该在/ tmp中。/var中的某个位置更为合理。
是的,你在/ tmp上的权限是错误的,你会得到其他奇怪的东西作为结果。
我的/ tmp目录以某种方式获得了权限700,因此权限被拒绝。我不记得那样做! – boxysean 2012-07-25 21:47:47