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进行任务处理,务必正常安装
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也可以的。 我觉得你可以开个淘宝店,开源项目,付费服务了:D
这个比wordpress打包,批量安装难多了。 谢谢大佬,这就去学Ruby! 本帖最后由 sead 于 2020-8-20 14:14 编辑
路过~
易生挺 发表于 2020-8-20 12:38
我觉得你可以开个淘宝店,开源项目,付费服务了
这个比wordpress打包,批量安装难多了。 ...
安装难度也不是很大,就是需要了解rails才行。产品环境搭建谷歌随便找,就是搭建好了,最大问题是不会安装调试~
如果这个系统关注的人数较多,WP管理层面的深度开发,再做个商用版本,当然开源项目有安装需求也可以找我。
比如商用版可以添加一些模块:
添加WP文章数量统计,什么时候发了多少文章一目了然;
站点批量迁移,所有WP集中管理;
全局/单个WP博客 html代码正则替换;
这个主题是说搭建rails的流程吧,好像是一个基于ruby语言的web框架,标题里面的cloud_wordpress又是什么意思呢,wordpress不是php编写的吗? 本帖最后由 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 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 小白龙 发表于 2020-8-20 18:25
是这个贴子吧 https://www.advertcn.com/thread-94333-1-1.html
哈哈,支持开源,可惜俺只会python ...
是的,刚复制错了:funk: 大佬可以用写个dockerfile一键部署,然后开个收费服务:lol:lol:lol 少写了一个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:42 编辑
lostland 发表于 2020-8-21 11:56
少写了一个
然后
那里少添加了first_name last_name
active_admin 安装的时候会生成这句用户创建插入到 seeds.rb ,这里需要手工修改代码创建生产环境的账户数据,或者用rails c 命令敲代码创建first_name last_name 由于是后创建并用了验证,没关注这个seeds里面的代码
感谢,大佬帮我修BUG :lol
lostland 发表于 2020-8-21 10:28
大佬可以用写个dockerfile一键部署,然后开个收费服务
没用过这个,一般写ssh,mysql 也可以做到自动部署?主要是ssh有的弹输入这块不知道怎么解决 lostland 发表于 2020-8-21 14:12
docker就是容器,各种服务都可以包含在里面。你可以看看ruby-china的例子:https://github.com/ruby-chin ...
看来得抽空学习下,工具看起来很不错
页:
[1]