1.在安装nginx和部署rails工程之前,先让rails工程在production下跑起来
我这里说的是sqlite3的数据库,
在Gemfile中添加:
gem 'yaml_db'
接着在工程文件夹下:
bundle install rake db:dump //迁移数据库
在config/database.yml文件添加如下内容:
production: <<: *default database: db/development.sqlite3
加载数据库:
rake db:load RAILS_ENV='production'
看看secrets.yml文件是否有:
production: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
没有的话添加,有的话在终端输入(在工程文件夹下):
rake secret
生成一段符号,比如:
f1b5a8a6e8096552451058e222b5d55b95b906d4df983ae052228b6e194e17ae2a04f545d45211f5087be7bd275d829e5e5aa67ab12bb09ae0e953578002dcdf
将生成的符号copy替换secrets.yml中的<%= ENV["SECRET_KEY_BASE"] %>:
production: secret_key_base:f1b5a8a6e8096552451058e222b5d55b95b906d4df983ae052228b6e194e17ae2a04f545d45211f5087be7bd275d829e5e5aa67ab12bb09ae0e953578002dcdf
最后让工程跑起来:
rails s -e production
如果没有样式或一些功能不能使用,可以检查一下/config/enviroment/production.rb,主要是样式文件引用的一些问题,找到文件中这样的一句:
config.serve_static_assets = false
将false改成true再跑一下工程试试。
2.用passenger安装nginx(默认安装目录为/opt/nginx)
首先安装passenger:
sudo gem install passenger
安装nginx:
sudo passenger-install-nginx-module
在安装时会自动检测需要安装其他的插件,可以根据提示进行安装,安装完它提示的需要后,再执行上面的语句一遍就可以安装了,途中会有选择,一般选择1。
编辑nginx的启动脚本:
git clone https://github.com/aiyuelian/railsStartShell.git
将启动脚本拷贝到/etc/init.d下:
sudo cp /railsStartShell/nginx /etc/init.d/
现在可以跑一下看看:
sudo /etc/init.d/nginx start
打开浏览器输入localhost, 如果启动不了,可能你的默认的80端口被占用,可以关掉占用80端口的服务,也可以更改端口号比如8080,然后输入localhost:8080。
接下来关联rails工程:
cd /opt/nginx/conf sudo gedit nginx.conf 打开nginx.conf文件
找到如下代码的地方:
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; }
修改:
server { listen 80; //端口号 server_name localhost; rails_env development; #charset koi8-r; #access_log logs/host.access.log main; location / { root /home/moneyinto/rails_projects/huodongtong/public; //rails工程pubilc的路径 passenger_enabled on; }
再跑一下:
sudo /etc/init.d/nginx restart //重启服务
在浏览器上跑如果有Could not find a JavaScript runtime的错误,在Gemfile中添加:
gem 'therubyracer'
执行bundle install后再跑一下,看看效果。
相关推荐
基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0
nginx安装插件包和部署包含了文档和脚本以及其中nginx的安装包是直接在linux在线下载。不是非常详细啊!
自己整理的nginx安装部署相关的一些经验,供参考
博文链接:https://swachian.iteye.com/blog/175033
Linux下Nginx的安装部署 1、手动下载安装包 2、解压、编译安装 3、启动、停止、重启 nginx 4、开机自启动 5、环境配置
一、nginx介绍及功能讲解 二、nginx的安装 三、nginx配置相关指令 四、nginx的实例应用(项目部署)
Nginx安装部署与配置全解析
花了两周时间 Google 部署方法,找的的许多方法都没有用,最终被我用控制变量法,一条一条修改配置文件修改成功了。 首先是 /etc/nginx/vhosts/limlog.sloger.info.conf 和 config/puma.rb # # /etc/nginx/vhosts/...
Nginx 安装文档,详细介绍了Nginx的安装过程和配置方法,希望大家喜欢
原文连接:...说明:部署包包含 nginx V1.16.0 luajit V2.2.1(最新版) v0.3.1(最新版) v0.10.14rc5 注意:部署包存在兼容问题,这里是我经过验证后的最新稳定版本。
Linux系统下安装nginx-1.14.1所需的所有包 以及rpm依赖包,安装文档 https://blog.csdn.net/weixin_41851100/article/details/89565198
ngin安装部署文档 详细
该文档讲述了nginx的具体安装步骤。根据该文档可以快速入手。nginx安装部署不再麻烦
基于海思3559A 对nginx-1.6.2 openssl-1.0.2的交叉编译过程,nginx-1.6.2的环境部署
Linux下Nginx的安装与部署.docx
centos7离线部署nginx-docker,需要的可以下载免费公开,记录自己的一次学习 centos7离线部署nginx-docker,需要的可以下载免费公开,记录自己的一次学习
为了节约成本,很多时候一台server 的nginx可能要部署多个前端的情况,本实例是在docker环境下部署两个前端,同时处理前端调用后端跨域问题,本示例为阿里云centos7 系统docker20.10.6环境下nginx1.19.5版本 ...
Nginx 安装成Windows 服务方法