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后再跑一下,看看效果。
相关推荐
4. **Web服务器缓存**:在Web服务器级别实现缓存功能,比如使用Nginx等反向代理服务器缓存静态资源。 5. **客户端浏览器缓存**:通过设置合适的HTTP头部信息,利用浏览器的本地缓存来减少不必要的网络传输。 #### ...
该食谱负责创建数据库,通过捆绑程序安装所需的gems以及创建nginx堆栈来服务您的站点。 要求 此食谱已在Ubuntu 12.04和Ubuntu 14.04上进行了测试。 属性 rails-app ::默认属性 钥匙 类型 描述 默认 [“ rails-app”...
8. **部署与运维**:项目可能部署在云服务提供商如AWS、阿里云或Google Cloud上,使用Docker进行容器化部署,利用Nginx或Apache作为反向代理和负载均衡器。 9. **版本控制**:源码管理可能使用Git,方便团队协作,...
10. **部署与运维**:Docker容器化部署便于在各种环境中运行,而Kubernetes或Docker Compose则可以实现微服务的集群管理。持续集成/持续部署(CI/CD)工具如Jenkins或GitLab CI/CD可以自动化部署流程。 11. **安全性*...
7. **部署与服务器**:项目可能在AWS、Google Cloud、Azure等云平台上运行,使用Docker容器化技术进行部署。 8. **持续集成/持续部署(CI/CD)**:为了自动化测试和部署,项目可能使用Jenkins、Travis CI、GitHub ...
6. **服务器部署**:如Docker容器化部署、Nginx反向代理、负载均衡等。 7. **版本控制系统**:如Git,用于代码管理和团队协作。 8. **单元测试和集成测试**:使用JUnit、pytest等工具编写测试用例,确保代码质量。...
其背后的技术栈包括但不限于Ruby编程语言、Rails框架、数据库管理、前端UI设计、安全实践、测试策略以及高效的部署方案。这个应用的开发过程涵盖了软件工程的多个层面,充分体现了团队协作和技术创新的重要性。
6. **部署与运维**:博客源码部署通常涉及Web服务器如Apache、Nginx,以及容器化技术如Docker。持续集成/持续部署(CI/CD)工具如Jenkins、Travis CI可以帮助自动化构建和部署过程。 7. **SEO优化**:为了让博客更...
7. 版本控制:通过Chef,可以确保开发环境中Web服务器的软件版本与生产环境一致,从而减少部署时的不兼容性问题。 8. 热更新:在开发过程中,经常需要实时应用代码更改。Chef支持配置热更新机制,无需重启服务器...
- **部署与测试**:应用可能被部署到Web服务器上,如Apache或Nginx,使用Docker进行容器化部署以提高可移植性。同时,开发者可能进行了单元测试和集成测试,确保代码的质量和功能的正确性。 总的来说,24_Fitness_...
后端开发,通常被称为“BackEnd”,是软件工程中一个重要的组成部分,主要负责处理服务器端的逻辑、数据管理和通信。后端开发人员构建并维护应用的“后台”部分,包括数据库、服务器、应用编程接口(API)以及业务...