Apache + passenger - / tmp权限被拒绝

时间:2014-02-25 08:45:11

标签: ruby-on-rails apache passenger

我正试图在fedora 19下使用apache2在乘客的轨道上运行ruby并且我在日志中遇到此错误

  

[2月25日星期二09:37:52.367683 2014] [乘客:错误] [pid 2779] *   由于此错误,无法初始化乘客:无法执行此操作   启动Phusion Passenger看门狗,因为它遇到了   启动期间出现以下错误:无法更改目录   '/tmp/passenger.1.0.2779/generation-1/buffered_uploads'其UID为48   和GID到48:不允许操作(errno = 1)

该目录(/tmp/passenger.1.0.2779)甚至不存在。我认为问题在于selinux。我试着解决它大约4个小时。 Httpd在用户apache和group apache下运行,我试过

cat /var/log/audit/audit.log | grep passenger | audit2allow -M
passenger semodule -i passenger.pp

但仍然没有。

1 个答案:

答案 0 :(得分:0)

在您的情况下,您应首先将SELinux切换为Permissive模式,然后尝试捕获审核日志,从启动Apache以运行您的应用程序。1 获得应用程序的主页后,您可以使用日志构建自定义策略。

  1. 将SELinux切换到Permissive模式并清理audit.log

    ] #setenforce 0
     ] #rm /var/log/audit/audit.log
     ] #service auditd restart

  2. 重启Apache

    ] #service httpd restart

  3. 尝试使用网络浏览器打开您的应用程序  它可能会提供有关应用程序运行时发生的更多信息。

  4. 制作自定义策略模块以允许这些操作

    ] #mkdir work
    ] #cd work
    ]#grep httpd /var/log/audit/audit.log | audit2allow -M乘客
    ] #ls
    passenger.pp passenger.te

  5. 使用' semodule'加载postgrey政策模块。命令进入当前的SELinux政策:

    ] #semodule -i passenger.pp
     ] #setenforce 1

  6. 重启Apache

    ] #service httpd restart

  7. 参考文献: http://wiki.centos.org/HowTos/SELinux#head-faa96b3fdd922004cdb988c1989e56191c257c01