【问题标题】:mod_passenger "Cannot connect to Unix socket" errormod_passenger“无法连接到 Unix 套接字”错误
【发布时间】:2012-07-24 10:26:18
【问题描述】:

我正在尝试通过 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。

知道如何解决这个问题吗?

【问题讨论】:

  • 我的 /tmp 目录以某种方式获得了权限 700,因此权限被拒绝。我不记得这样做了!

标签: ruby-on-rails apache ubuntu passenger


【解决方案1】:

你唯一需要解决的是:

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

但是 tmp 通常设置了粘性位,它限制了非所有者可以对文件执行的操作(使用 unix 套接字的一个重要原因是为了特权分离)。真的一个套接字根本不应该在 /tmp 中。 /var 中的某个位置是更明智的位置。

是的,您对 /tmp 的权限是错误的,因此您会遇到其他奇怪的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2013-04-13
    • 1970-01-01
    相关资源
    最近更新 更多