在CentOS系统上运行Ruby on Rails应用的详细步骤

发布于:2025-03-26 ⋅ 阅读:(28) ⋅ 点赞:(0)

以下是AI生成,仅做备份。

1. 安装必要的依赖

在CentOS上,首先要安装一些基础的开发工具和依赖库,它们能确保后续的安装和运行过程顺利进行。

sudo yum update -y
sudo yum install -y git gcc-c++ patch readline readline-devel zlib zlib-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison sqlite-devel

2. 安装Ruby

可以使用rbenv来管理Ruby版本,它能方便地在不同的Ruby版本之间切换。

安装rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
安装ruby-build插件
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
安装指定版本的Ruby(以3.2.2为例)
rbenv install 3.2.2
rbenv global 3.2.2
验证Ruby安装
ruby -v

3. 安装Bundler和Rails

安装Bundler
gem install bundler
安装Rails
gem install rails
rbenv rehash

4. 上传或克隆Rails应用代码

如果你在本地开发好Rails应用后,可以将代码上传到CentOS服务器。也可以使用Git将代码仓库克隆到服务器上。

git clone <你的代码仓库地址>
cd <你的应用目录>

5. 安装应用依赖

在应用根目录下,使用Bundler安装应用所需的Gem依赖。

bundle install

6. 配置数据库

通常Rails应用会使用数据库,如SQLite、MySQL或PostgreSQL。这里以MySQL为例,介绍如何配置和使用。

安装MySQL
sudo yum install -y mysql-server mysql-devel
sudo systemctl start mysqld
sudo systemctl enable mysqld
创建数据库和用户
mysql -u root -p
CREATE DATABASE <你的数据库名>;
CREATE USER '<你的用户名>'@'localhost' IDENTIFIED BY '<你的密码>';
GRANT ALL PRIVILEGES ON <你的数据库名>.* TO '<你的用户名>'@'localhost';
FLUSH PRIVILEGES;
EXIT;
配置Rails应用的数据库连接

编辑config/database.yml文件,配置数据库连接信息。

development:
  adapter: mysql2
  encoding: utf8
  database: <你的数据库名>
  pool: 5
  username: <你的用户名>
  password: <你的密码>
  host: localhost

7. 迁移数据库

rails db:migrate

8. 预编译资产(可选)

如果你的应用使用了资产管道(如CSS、JavaScript等),可以预编译资产。

rails assets:precompile

9. 运行Rails应用

可以使用Puma作为Web服务器来运行Rails应用。

rails server -b 0.0.0.0 -p 3000

这里的-b 0.0.0.0表示允许从任何IP地址访问应用,-p 3000表示使用3000端口。

10. 配置防火墙

如果服务器启用了防火墙,需要开放3000端口。

sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload

11. 让应用在后台运行

可以使用nohupsystemd来让应用在后台持续运行。

使用nohup
nohup rails server -b 0.0.0.0 -p 3000 &
使用systemd

创建一个systemd服务文件:

sudo nano /etc/systemd/system/rails_app.service

在文件中添加以下内容:

[Unit]
Description=Rails application server
After=network.target

[Service]
Type=simple
User=<你的用户名>
WorkingDirectory=/path/to/your/app
ExecStart=/home/<你的用户名>/.rbenv/shims/rails server -b 0.0.0.0 -p 3000
Restart=always

[Install]
WantedBy=multi-user.target

重新加载systemd管理器配置:

sudo systemctl daemon-reload

启动并设置服务开机自启:

sudo systemctl start rails_app
sudo systemctl enable rails_app

按照以上步骤操作,你就可以在CentOS服务器上成功运行Ruby on Rails应用了。