Ruby on Rails新手求助:如何将应用部署至Digital Ocean Droplet?
解答:DigitalOcean Droplet部署自定义Rails应用的相关问题
嘿,没问题,你完全可以删除那个rails_project文件夹——它只是DigitalOcean一键部署生成的示例项目,和你自己的GitHub仓库没有任何依赖关系,删掉不会影响你部署自己的应用。不过建议你先把自己的仓库克隆到Droplet,确认环境配置没问题之后再删,也可以先备份一下(比如tar -czf rails_backup.tar.gz rails_project),以防万一需要参考里面的配置模板,不过大概率用不上。
除了删除示例文件夹,还有这些关键操作要做,才能让你的Rails应用正常跑起来:
- 核对Ruby/Rails版本:一键部署的环境会自带特定版本的Ruby和Rails,你得确保这个版本和你本地开发环境、GitHub仓库里的Rails版本一致。用
ruby -v和rails -v就能查看当前版本,要是不匹配,用rbenv或者rvm调整就行。 - 安装项目依赖:进入你克隆的项目目录,运行
bundle install安装所有Gem包。如果碰到权限报错,试试加sudo,或者调整Gem的安装路径(避免全局安装权限问题)。 - 配置数据库:先确认Droplet上已经装了你应用用的数据库(比如PostgreSQL、MySQL),然后修改项目里的
config/database.yml,填对数据库的用户名、密码和连接信息,接着跑rails db:create和rails db:migrate初始化数据库。 - 设置环境变量:Rails生产环境需要
SECRET_KEY_BASE这类环境变量,还有数据库密码、第三方服务密钥等。你可以在项目根目录建个.env文件存这些变量,或者直接加到服务器的环境配置里。SECRET_KEY_BASE可以用rails secret命令生成。 - 调整Web服务器配置:一键部署一般用Nginx+Passenger或者Puma,你得修改Web服务器的配置文件,把根目录指向你自己项目的
public文件夹。比如Nginx的配置文件在/etc/nginx/sites-available/下面,改完后重启Nginx:sudo systemctl restart nginx。 - 配置应用后台运行:别直接用
rails server跑生产环境,最好把Puma或者Unicorn配置成systemd服务,这样服务器重启后应用能自动启动,也能后台稳定运行。 - 测试访问&排错:用Droplet的IP或者绑定的域名访问应用,要是碰到500错误,去项目的
log/production.log里找报错信息,大概率是配置或者依赖的问题。
内容的提问来源于stack exchange,提问作者Miguel Salazar
相关产品推荐
相关产品推荐

