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

Rails应用搭配Passenger+Nginx启动失败,Passenger日志报LoadError

Passenger + Nginx Rails应用 LoadError 排查建议
  • 检查Nginx运行用户的权限
    确认Nginx运行用户(通常是www-data或nginx)对/home/my_user/.rbenv/versions/3.3.1/bin/ruby有执行权限,对/home/my_user/domains/my_domain/app/current目录及内部文件有读权限。可执行以下命令验证:

    ls -l /home/my_user/.rbenv/versions/3.3.1/bin/ruby
    sudo -u www-data ls /home/my_user/domains/my_domain/app/current
    
  • 确保rbenv环境在Passenger中生效
    Passenger可能未继承rbenv的环境变量,需在Nginx的server配置块中显式指定Ruby路径:

    passenger_ruby /home/my_user/.rbenv/shims/ruby;
    

    重启Nginx后,执行passenger-config about ruby-command查看Passenger当前识别的Ruby路径,确认与目标版本一致。

  • 检查current目录的有效性(若用部署工具)
    如果current是软链接,确认其指向的实际目录存在且完整:

    ls -l /home/my_user/domains/my_domain/app/current
    

    同时检查目标目录是否包含Rails应用必需文件(如config.ru、Gemfile)。

  • 验证Passenger与Ruby版本兼容性
    确认Passenger版本支持Ruby 3.3.1,若不兼容需重新编译Passenger适配当前Ruby:

    passenger-install-nginx-module
    

    执行passenger-config --version查看Passenger版本,确认版本兼容性。

  • 排查安全模块限制
    若系统启用SELinux,临时关闭测试是否解决问题:

    sudo setenforce 0
    

    若问题消失,需添加SELinux规则允许Nginx访问目标路径。AppArmor环境同理,检查相关配置是否限制了路径访问。

  • 启用Passenger详细日志
    在Nginx配置中添加日志级别设置:

    passenger_log_level 3;
    

    重启Nginx后触发访问,查看日志中的具体报错细节,定位权限或路径相关问题。

  • 手动启动应用测试
    切换到Nginx运行用户,进入应用目录手动启动Rails服务,验证环境是否正常:

    sudo -u www-data cd /home/my_user/domains/my_domain/app/current && /home/my_user/.rbenv/versions/3.3.1/bin/ruby bin/rails server
    

    若手动启动报错,可直接定位应用本身的环境问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:07:07