sead 发表于 2020-8-20 11:43:28

rails 生产环境搭建 Centos7/8 - cloud_wordpress

本帖最后由 sead 于 2020-8-21 13:35 编辑


cat /etc/DIR_COLORS | sed 's/01;34/01;36/' > ~/.dir_colors

yum install -y epel-release yum-utils
yum-config-manager --enable epel

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

yum install yarn -y

yum update -y
yum groupinstall "Development Tools" -y
yum install ncurses-devel -y
yum install wget telnet -y
yum -y install nodejs
yum -y install libcurl-devel curl-devel
yum -y install mysql-devel
yum install -y ImageMagick #ImageMagick-devel
yum install -y libffi-devel readline-devel ruby sqlite-devel openssl-devel

useradd deploy
passwd deploy

su - deploy

#https://rvm.io/rvm/install 安装说明
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
curl -L get.rvm.io | bash -s stable

source ~/.profile

rvm install 2.5.1
rvm use 2.5.1 --default

gem install rails -v 6.0.1

rails new cloud_wp -d mysql
rails 新手指南 https://ruby-china.github.io/rails-guides/getting_started.html

项目关键配置

#config/puma.rb
application_path = "/home/deploy/cloud_wp"
pidfile "#{application_path}/tmp/pids/puma.pid"
state_path "#{application_path}/tmp/sockets/puma.state"
stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
activate_control_app "unix://#{application_path}/tmp/sockets/puma.sock"

数据库设置

#config/database.yml
production:
<<: *default
database: xxx_production
username: xxx
password: <%= ENV['XXX_DATABASE_PASSWORD'] %>

#设置环境变量
vi ~/.bashrc

export RAILS_ENV=production
export XXX_DATABASE_PASSWORD=your_password

#更新环境变量
source ~/.bashrc

#产品配置文件,设置缓存方式:redis

#config/environments/production.rb
#redis自行安装,根据redis所在服务器设置
config.cache_store = :redis_cache_store, { url:"redis://0.0.0.0:6379/0/cache"}
config.session_store = :redis_cache_store, { url:"redis://0.0.0.0:6379/0/session"}


Gemfile是rails关键配置,具体看官方说明,以下是站群博客管理系统的配置


gem "wordpress", github: "seadfeng/cloud_wordpress"
gem "active_admin_role", github: "seadfeng/active_admin_role"
gem 'redis'
gem 'hiredis'


Gemfile设置完后进入安装/初始化

#!/bin/sh
bundle install
rails webpacker:install
rake db:create
rails g active_admin:install
rails g wordpress:install
rake db:migrate
rake db:seed
rake wordpress:init
rake assets:precompile

#启动项目
rails s


rails 如果能正常启动,下来就是考验nginx和systemctl功底的时候了:lol

启动失败检测各种配置,redis不要忘了安装~


Sidekiq 指南
https://github.com/mperham/sidekiq/wiki/Getting-Started

系统依赖Sidekiq进行任务处理,务必正常安装

lostland 发表于 2020-8-21 14:12:21

sead 发表于 2020-8-21 13:30
没用过这个,一般写ssh,mysql 也可以做到自动部署?主要是ssh有的弹输入这块不知道怎么解决 ...

docker就是容器,各种服务都可以包含在里面。你可以看看ruby-china的例子:https://github.com/ruby-china/homeland-docker/blob/master/Makefile
https://github.com/ruby-china/homeland-docker/blob/master/docker-compose.yml
它的好处就是保证开发环境生产环境一致,部署起来不会因为版本冲突出现问题。
不过如果自己的服务器环境都了解的话,用Capistrano或者mina也可以的。

易生挺 发表于 2020-8-20 12:38:32

我觉得你可以开个淘宝店,开源项目,付费服务了:D
这个比wordpress打包,批量安装难多了。

jzyzcz 发表于 2020-8-20 13:59:52

谢谢大佬,这就去学Ruby!

sead 发表于 2020-8-20 14:05:18

本帖最后由 sead 于 2020-8-20 14:14 编辑

路过~

sead 发表于 2020-8-20 14:14:06

易生挺 发表于 2020-8-20 12:38
我觉得你可以开个淘宝店,开源项目,付费服务了
这个比wordpress打包,批量安装难多了。 ...

安装难度也不是很大,就是需要了解rails才行。产品环境搭建谷歌随便找,就是搭建好了,最大问题是不会安装调试~
如果这个系统关注的人数较多,WP管理层面的深度开发,再做个商用版本,当然开源项目有安装需求也可以找我。
比如商用版可以添加一些模块:
添加WP文章数量统计,什么时候发了多少文章一目了然;
站点批量迁移,所有WP集中管理;
全局/单个WP博客 html代码正则替换;

小白龙 发表于 2020-8-20 18:09:43

这个主题是说搭建rails的流程吧,好像是一个基于ruby语言的web框架,标题里面的cloud_wordpress又是什么意思呢,wordpress不是php编写的吗?

sead 发表于 2020-8-20 18:21:12

本帖最后由 sead 于 2020-8-20 18:51 编辑

小白龙 发表于 2020-8-20 18:09
这个主题是说搭建rails的流程吧,好像是一个基于ruby语言的web框架,标题里面的cloud_wordpress又是什么意 ...
另外一个主题里面的开源gem名字
https://www.advertcn.com/thread-94333-1-1.html

小白龙 发表于 2020-8-20 18:25:32

sead 发表于 2020-8-20 18:21
另外一个主题里面的开源gem名字
https://www.advertcn.com/thread-94353-1-1.html

:lol
是这个贴子吧 https://www.advertcn.com/thread-94333-1-1.html

哈哈,支持开源,可惜俺只会python,不懂ruby

sead 发表于 2020-8-20 18:52:31

小白龙 发表于 2020-8-20 18:25
是这个贴子吧 https://www.advertcn.com/thread-94333-1-1.html

哈哈,支持开源,可惜俺只会python ...

是的,刚复制错了:funk:

lostland 发表于 2020-8-21 10:28:37

大佬可以用写个dockerfile一键部署,然后开个收费服务:lol:lol:lol

lostland 发表于 2020-8-21 11:56:22

少写了一个rake db:create
然后
seeds.rb
那里少添加了first_name last_name
AdminUser.create!(email: '[email protected]', password: 'password', password_confirmation: 'password', first_name: "first_name", last_name: "last_name") if Rails.env.development?



sead 发表于 2020-8-21 13:05:54

本帖最后由 sead 于 2020-8-21 13:42 编辑

lostland 发表于 2020-8-21 11:56
少写了一个
然后
那里少添加了first_name last_name
active_admin 安装的时候会生成这句用户创建插入到 seeds.rb ,这里需要手工修改代码创建生产环境的账户数据,或者用rails c 命令敲代码创建first_name last_name 由于是后创建并用了验证,没关注这个seeds里面的代码
感谢,大佬帮我修BUG :lol

sead 发表于 2020-8-21 13:30:12

lostland 发表于 2020-8-21 10:28
大佬可以用写个dockerfile一键部署,然后开个收费服务

没用过这个,一般写ssh,mysql 也可以做到自动部署?主要是ssh有的弹输入这块不知道怎么解决

sead 发表于 2020-9-1 09:56:30

lostland 发表于 2020-8-21 14:12
docker就是容器,各种服务都可以包含在里面。你可以看看ruby-china的例子:https://github.com/ruby-chin ...

看来得抽空学习下,工具看起来很不错
页: [1]
查看完整版本: rails 生产环境搭建 Centos7/8 - cloud_wordpress