笔记---Rails项目的环境部署搭建

1 背景

本次操作系统为CentOS 7.9,用于新部署一个Rails项目的运行环境,其中包括ruby环境和前端的node环境。
Ruby: 2.5.1
Rails: 6.0.2
node: 12.14.0

2 部署

2.1 Ruby环境搭建

刚开始直接使用 yum install ruby -v 2.5.1 安装ruby,但是提示提示没有可用的包。因此使用rbenv来进行ruby的安装和版本管理。

# 安装rbenv
# 2024.1.8最新安装脚本一键安装/卸载
bash -c "$(curl -fsSL https://gitee.com/RubyMetric/rbenv-cn/raw/main/tools/install.sh)"

# 使用rbenv安装ruby2.5.1
rbenv cninstall 2.5.1

# 设置全局使用 2.5.1版本
rbenv global 2.5.1

# 查看可安装的ruby版本
rbenv cninstall -l
rbenv cninstall -L

# 查看已安装的ruby版本
rbenv versions

# 安装rails 6.0.2
gem install rails –v 6.0.2

# bundler gem 安装
gem install bundler -v 2.3.26

# 进入项目根目录,执行bundle install
bundle install

#如果一键安装脚本失效,去下面链接重新查看或者在gitee上搜索rbenv重新查找
#参考链接:https://gitee.com/RubyMetric/rbenv-cn?_from=gitee_search

后端项目运行:
在生产环境下使用 Puma 启动命令,设置 4 个 worker,每个 worker 内的线程数在 16 到 20 之间,并且以后台方式启动,监听端口号为 3003,可以使用以下命令:

RAILS_ENV=production bundle exec puma -w 4 -t 16:20 -d -p 3003
#或
RAILS_ENV=production bundle exec rails s -b 0.0.0.0 -p 3003

生产模式下运行项目前可能还需要运行 webpack install

2.2 Node环境搭建

直接安装node的也是安装失败,因此使用nvm进行node的安装和版本管理。
安装nvm时,可以使用脚本实现nvm的一键安装。

# 安装
bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"

# 如果一键安装脚本失效,去下面链接重新查看或者在gitee上搜索nvm重新查找
#参考链接:https://gitee.com/RubyMetric/nvm-cn?_from=gitee_search

# 查看nvm的版本
# nvm -v

# 查看已安装的node版本
nvm -l

# 使用nvm安装node 12.14.0
nvm install 12.14.0

# 安装yarn包管理器
npm install -g yarn

# 编译
# 进入项目的根目录,执行yarn安装相关包
yarn

# 编译
RAILS_ENV=production bundle exec rake assets:precompile

# 编译之后的文件会存在 项目根目录下的 ./public/ 下

3 Nginx配置

使用Nginx作为反向代理服务器,将HTTP请求转发到Rails应用的后端服务器(如Puma或Unicorn)。

修改nginx配置

server {
    listen 80;
    server_name example.com www.example.com;

    root /path/to/your/rails/app/public; # 设置您Rails项目的public目录路径

    location / {
        proxy_pass http://127.0.0.1:3000; # 将请求代理到Rails后端服务器
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

配置修改根据项目的实际情况修改。

#  检查Nginx配置是否正确
sudo nginx -t

#  重启nginx以使配置生效
sudo systemctl reload nginx.service

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Phusion Passenger是一种基于Nginx或Apache的应用服务器,它可以帮助我们快速、稳定地部署Rails应用。下面以Redmine为例,介绍在CentOS下如何使用Phusion Passenger方式部署Rails应用。 1. 安装必要的软件 首先需要安装RubyRails、Nginx、Passenger等软件,可以使用以下命令: ``` sudo yum install epel-release sudo yum install ruby ruby-devel rubygems gcc gcc-c++ make sqlite-devel sudo gem install rails sudo gem install passenger ``` 2. 安装Nginx和Passenger 使用以下命令安装Nginx和Passenger: ``` sudo yum install nginx sudo passenger-install-nginx-module ``` 在安装过程中,需要选择“1. Yes: download, compile and install Nginx for me”选项,让Passenger自动编译和安装Nginx。 3. 配置Nginx和Passenger 默认情况下,Passenger会自动添加Nginx的配置文件并启动Nginx服务,但是我们需要手动修改Nginx配置文件。 找到Nginx的配置文件,一般是/etc/nginx/nginx.conf,添加以下内容: ``` http { # ... server { listen 80; server_name yourserver.com; root /path/to/your/redmine/public; passenger_enabled on; passenger_ruby /usr/bin/ruby; passenger_app_env production; } } ``` 其中,yourserver.com是你的服务器域名或IP地址,/path/to/your/redmine是你的Redmine应用所在路径。 4. 启动Nginx服务 启动Nginx服务: ``` sudo systemctl start nginx ``` 5. 配置数据库 修改/config/database.yml文件,配置Redmine连接数据库的相关信息。 6. 初始化Redmine 在Redmine目录下运行以下命令初始化数据库: ``` RAILS_ENV=production bundle exec rake db:create RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production bundle exec rake redmine:load_default_data ``` 7. 启动Redmine 在Redmine目录下运行以下命令启动Redmine: ``` RAILS_ENV=production bundle exec rails server -e production ``` 现在你就可以在浏览器中输入yourserver.com访问Redmine了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值