You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redmine安装故障:Phusion Passenger无法启动Web应用

Fixing Passenger FIFO Permission Denied Error (errno=13) for Redmine on CentOS 7

Hey there, let's work through this permission issue that's stopping Passenger from starting your Redmine app. The core problem here is that Passenger can't create a FIFO file in /tmp, which is often tied to either filesystem permissions or SELinux restrictions on CentOS. Here are the actionable steps to resolve this:

1. Verify /tmp Directory Permissions & SELinux Context

The /tmp directory needs the correct permissions and SELinux label to allow Passenger to create temporary files:

  • First, check the basic permissions:
    ls -ld /tmp
    
    You should see output like drwxrwxrwt. 12 root root 4096 Aug 15 10:00 /tmp (note the t sticky bit). If not, fix it with:
    chmod 1777 /tmp
    
  • Next, check the SELinux context:
    ls -Z /tmp
    
    The context should be system_u:object_r:tmp_t:s0. If it's different, restore the default context:
    restorecon -Rv /tmp
    
  • To test if SELinux is the culprit temporarily (don't leave it disabled long-term), run:
    setenforce 0
    systemctl restart httpd
    
    If Redmine loads after this, you'll need to adjust SELinux policies instead of keeping it off.

2. Ensure the Apache User Has Access to /tmp

Passenger runs under the Apache user (usually apache on CentOS). Confirm this user can write to /tmp:

sudo -u apache touch /tmp/passenger-test && rm /tmp/passenger-test

If this command fails, double-check /tmp permissions (step 1) or ensure the apache user isn't restricted by any additional security tools.

3. Configure a Custom Passenger Temporary Directory

If adjusting /tmp doesn't work, you can set a dedicated temp directory for Passenger to avoid conflicts:

  • Add this line to your Apache configuration (either /etc/httpd/conf.d/passenger.conf or your Redmine virtual host file):
    PassengerTempDir /var/lib/passenger/tmp
    
  • Create and secure the directory:
    mkdir -p /var/lib/passenger/tmp
    chown apache:apache /var/lib/passenger/tmp
    chmod 700 /var/lib/passenger/tmp
    
  • Restart Apache to apply changes:
    systemctl restart httpd
    

4. Double-Check Redmine Directory Permissions & SELinux

Even though you've adjusted Redmine permissions before, let's confirm everything is set correctly:

  • Set ownership and basic permissions:
    chown -R apache:apache /opt/redmine
    chmod -R 755 /opt/redmine
    
  • Restore the default SELinux context for Redmine:
    restorecon -Rv /opt/redmine
    
  • Enable necessary SELinux booleans for Apache to interact with Redmine and PostgreSQL:
    setsebool -P httpd_can_network_connect_db on
    setsebool -P httpd_read_user_content on
    

5. Enable Verbose Passenger Logging for More Details

If the issue persists, turn on detailed logging to get more clues:

  • Add this to your Apache configuration:
    PassengerLogLevel 3
    
  • Restart Apache and check the logs:
    tail -f /var/log/httpd/error_log
    
    This should give you more specific details about what's blocking Passenger.

内容的提问来源于stack exchange,提问作者Glailson Nogueira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:52:25