使用Passenger和Apache部署Rails时出错:mod_passenger中出现意外错误:无法连接到Unix套接字权限被拒绝(errno = 13)

时间:2017-03-16 04:30:36

标签: ruby-on-rails apache centos passenger

我一直试图在CentOS 7上使用Phusion Passenger和Apache来部署我的Rails应用程序。 我正在关注Phusion Passenger网站上提供的tutorial,但我被困住了。

当我启动Apache,并使用浏览器访问应用程序时,我得到:500内部服务器错误。 在/ etc / httpd / logs / error_log中的错误日志文件中找到以下错误:

[ 2017-03-15 22:57:15.5385 18290/7f4c6eb61880 apa/Hooks.cpp:690 ]: Unexpected error in mod_passenger: Cannot connect to Unix socket '/tmp/passenger.8zZ83f3/agents.s/core': Permission denied (errno=13)
  Backtrace:
     in 'int Passenger::connectToServer(const Passenger::StaticString&, const char*, unsigned int)' (IOUtils.cpp:459)
     in 'Passenger::FileDescriptor Hooks::connectToCore()' (Hooks.cpp:273)
     in 'int Hooks::handleRequest(request_rec*)' (Hooks.cpp:561)

到目前为止,我试过了:

  1. 禁用SELinux:设置SELINUX =禁用(在/ etc / sysconfig / selinux中)
  2. 添加' umask 0022' (甚至' umask u = rwx,g = rx,o = rx')到/ etc / sysconfig / httpd
  3. 将755个权限分配给/ tmp文件夹
  4. 将PassengerInstanceRegistryDir更改为用户主目录下的其他文件夹(并分配755个权限)
  5. 但这些似乎都不起作用。 我使用的是Phusion Passenger 5.1.2和Apache 2.4.6。

    此外,这是我通过运行

    得到的
    $ sudo /usr/bin/passenger-config validate-install
    
    • 检查此Passenger安装是否在PATH ...✓
    • 检查是否没有其他乘客安装......✓
    • 检查是否安装了Apache ...✓
    • 检查Apache中是否正确配置了Passenger模块......✓

    这是我运行时的输出

    $ sudo /user/sbin/passenger-memory-status
    
    Version: 5.1.2
    Date   : 2017-03-16 07:42:59 -0500
    
    ---------- Apache processes ----------
    PID    PPID   VMSize    Private  Name
    --------------------------------------
    18237  1      227.0 MB  0.2 MB   /usr/sbin/httpd -DFOREGROUND
    18286  18237  229.0 MB  0.2 MB   /usr/sbin/httpd -DFOREGROUND
    18287  18237  229.0 MB  0.2 MB   /usr/sbin/httpd -DFOREGROUND
    18288  18237  229.0 MB  0.2 MB   /usr/sbin/httpd -DFOREGROUND
    18289  18237  229.0 MB  0.3 MB   /usr/sbin/httpd -DFOREGROUND
    18290  18237  229.0 MB  0.3 MB   /usr/sbin/httpd -DFOREGROUND
    18300  18237  229.0 MB  0.2 MB   /usr/sbin/httpd -DFOREGROUND
    ### Processes: 7
    ### Total private dirty RSS: 1.73 MB
    
    
    -------- Nginx processes --------
    
    ### Processes: 0
    ### Total private dirty RSS: 0.00 MB
    
    
    ----- Passenger processes -----
    PID    VMSize    Private  Name
    -------------------------------
    18264  417.0 MB  1.0 MB   Passenger watchdog
    18267  649.9 MB  3.2 MB   Passenger core
    18275  427.3 MB  3.0 MB   Passenger ust-router
    ### Processes: 3
    ### Total private dirty RSS: 7.11 MB
    

1 个答案:

答案 0 :(得分:1)

我通过运行以下命令解决了这个问题:

$ sudo chcon -R -v -t httpd_sys_rw_content_t /tmp

我不知道是否可以通过更改整个文件夹的权限来影响其他内容。你们认为这可能是个问题吗?

作为替代方案,我也可以将PassengerInstanceRegistryDir设置为其他位置,并再次运行上述命令。