CentOS 7环境下在cPanel WHM部署Rails 7应用时遇到的问题
Rails 7部署到cPanel WHM(CentOS7)问题排查方案
问题1:WHM启用Ruby on Rails后cPanel无对应按钮
- 检查套餐功能权限:登录WHM进入Feature Manager,找到对应cPanel用户的套餐,确保勾选了「Ruby on Rails」或「Setup Ruby App」相关选项——全局启用不代表套餐自动开放权限。
- 刷新缓存/换浏览器:cPanel页面可能存在缓存,按
Ctrl+F5强制刷新,或切换至无痕模式访问。 - 确认cPanel版本:新版cPanel已将Ruby应用管理整合至Setup Ruby App工具,不再显示单独的Ruby on Rails按钮,直接找这个工具即可。
问题2:手动应用注册无效
- 改用cPanel内置工具:优先使用Setup Ruby App创建应用,工具会自动配置Ruby环境、Passenger及虚拟主机,避免手动配置错误。
- 手动注册需指定正确环境:在Rails项目根目录执行注册命令时,要使用cPanel提供的Ruby版本,而非系统全局Ruby,例如:
/opt/cpanel/ea-ruby30/root/usr/bin/passenger-config register-app --name your_app_name --startup-file config.ru - 验证Passenger配置:检查项目根目录的
config.ru是否存在,确认passenger_app_root路径指向正确的项目目录。
问题3:访问域名仅显示public_html下的index.html
- 调整文档根目录:登录cPanel进入Domains > Domains,将对应域名的文档根设置为Rails项目的
public文件夹(例如/home/yourusername/public_html/your_rails_app/public)。 - 配置.htaccess转发:若不想修改文档根,在
public_html下创建.htaccess文件,添加以下内容(替换为你的实际路径和Ruby版本):PassengerAppRoot /home/yourusername/public_html/your_rails_app PassengerRuby /opt/cpanel/ea-ruby30/root/usr/bin/ruby PassengerStartupFile config.ru DirectoryIndex disabled - 删除冲突的静态文件:直接删除
public_html下的index.html,避免web服务器优先加载静态文件。 - 检查Passenger服务状态:在WHM终端执行
passenger-status,确认Passenger服务正常运行,无异常进程。
内容的提问来源于stack exchange,提问作者Muhammad Fahad
相关产品推荐
相关产品推荐

