`
moneyinto
  • 浏览: 33702 次
  • 性别: Icon_minigender_1
  • 来自: 东台
社区版块
存档分类
最新评论

nginx安装与部署rails工程

阅读更多

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后再跑一下,看看效果。

 

分享到:
评论

相关推荐

    Rails缓存架构设计

    4. **Web服务器缓存**:在Web服务器级别实现缓存功能,比如使用Nginx等反向代理服务器缓存静态资源。 5. **客户端浏览器缓存**:通过设置合适的HTTP头部信息,利用浏览器的本地缓存来减少不必要的网络传输。 #### ...

    rails-app-cookbook

    该食谱负责创建数据库,通过捆绑程序安装所需的gems以及创建nginx堆栈来服务您的站点。 要求 此食谱已在Ubuntu 12.04和Ubuntu 14.04上进行了测试。 属性 rails-app ::默认属性 钥匙 类型 描述 默认 [“ rails-app”...

    律师帮帮法律咨询毕业设计—(包含完整源码可运行).zip

    8. **部署与运维**:项目可能部署在云服务提供商如AWS、阿里云或Google Cloud上,使用Docker进行容器化部署,利用Nginx或Apache作为反向代理和负载均衡器。 9. **版本控制**:源码管理可能使用Git,方便团队协作,...

    毕业设计:在线学习系统.zip

    10. **部署与运维**:Docker容器化部署便于在各种环境中运行,而Kubernetes或Docker Compose则可以实现微服务的集群管理。持续集成/持续部署(CI/CD)工具如Jenkins或GitLab CI/CD可以自动化部署流程。 11. **安全性*...

    KingTV-master.zip

    7. **部署与服务器**:项目可能在AWS、Google Cloud、Azure等云平台上运行,使用Docker容器化技术进行部署。 8. **持续集成/持续部署(CI/CD)**:为了自动化测试和部署,项目可能使用Jenkins、Travis CI、GitHub ...

    课程设计企业电子商城源代码及使用说明书

    6. **服务器部署**:如Docker容器化部署、Nginx反向代理、负载均衡等。 7. **版本控制系统**:如Git,用于代码管理和团队协作。 8. **单元测试和集成测试**:使用JUnit、pytest等工具编写测试用例,确保代码质量。...

    书友

    其背后的技术栈包括但不限于Ruby编程语言、Rails框架、数据库管理、前端UI设计、安全实践、测试策略以及高效的部署方案。这个应用的开发过程涵盖了软件工程的多个层面,充分体现了团队协作和技术创新的重要性。

    blog:blog源码​​仓库

    6. **部署与运维**:博客源码部署通常涉及Web服务器如Apache、Nginx,以及容器化技术如Docker。持续集成/持续部署(CI/CD)工具如Jenkins、Travis CI可以帮助自动化构建和部署过程。 7. **SEO优化**:为了让博客更...

    webserver-dev-chef:配置所有调试类型附加功能

    7. 版本控制:通过Chef,可以确保开发环境中Web服务器的软件版本与生产环境一致,从而减少部署时的不兼容性问题。 8. 热更新:在开发过程中,经常需要实时应用代码更改。Chef支持配置热更新机制,无需重启服务器...

    24_Fitness_MVC

    - **部署与测试**:应用可能被部署到Web服务器上,如Apache或Nginx,使用Docker进行容器化部署以提高可移植性。同时,开发者可能进行了单元测试和集成测试,确保代码的质量和功能的正确性。 总的来说,24_Fitness_...

    BackEnd

    后端开发,通常被称为“BackEnd”,是软件工程中一个重要的组成部分,主要负责处理服务器端的逻辑、数据管理和通信。后端开发人员构建并维护应用的“后台”部分,包括数据库、服务器、应用编程接口(API)以及业务...

Global site tag (gtag.js) - Google Analytics