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

使用Ruby3.3.3+Capistrano部署Rails至VPS时遭遇Passenger加载错误

解决Passenger AppPreloader路径找不到的Rails部署问题

错误信息

App 686138 output: /home/deployer/.rbenv/versions/3.3.3/bin/ruby:
App 686138 output: No such file or directory -- Passenger AppPreloader: /home/deployer/hino/current (LoadError)
App 686138 output:
[ E 2024-08-25 15:43:49.5509 686090/Tk age/Cor/App/Implementation.cpp:221 ]: Could not spawn process for application /home/deployer/hino/current: The application process exited prematurely.
Error ID: 86cd6d2c
Error details saved to: /tmp/passenger-error-k6FIQI.html

排查修复步骤

1. 校验目录权限

路径存在但Passenger无法访问,优先排查权限问题:

# 递归设置目录基础访问权限
chmod -R 755 /home/deployer/hino
# 将NGINX所属用户(通常为www-data)加入deployer用户组
sudo usermod -aG deployer www-data
# 确保目录所有者为deployer用户
sudo chown -R deployer:deployer /home/deployer/hino

2. 确认Ruby与Passenger兼容性

Ruby 3.3.x需要Passenger 6.0.18及以上版本支持,先检查当前Passenger版本:

passenger -v

版本过低则更新Passenger:

sudo passenger-install-nginx-module

同时在Capistrano配置文件config/deploy.rb中确认rbenv环境设置正确,保证Passenger使用的Ruby版本与项目一致:

set :rbenv_type, :user
set :rbenv_ruby, '3.3.3'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"

3. 检查Capistrano符号链接

current是Capistrano生成的符号链接,确认其指向有效部署版本:

ls -l /home/deployer/hino/current

若链接失效,重新执行部署:

cap production deploy

4. 查看详细错误日志

错误提示中的临时文件包含更具体的报错细节,直接查看:

cat /tmp/passenger-error-k6FIQI.html

通常会暴露bundle依赖未安装、配置文件缺失等深层问题,针对性修复即可。

5. 重启服务生效

修改配置后,重启NGINX和Passenger应用:

sudo systemctl restart nginx
passenger-config restart-app /home/deployer/hino/current

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:20:59