`

centos6 安装ruby on rails环境并部署(nginx+unicorn)

阅读更多
1.第一步

  
 su root ***


   安装依赖包
  

   yum -y install gcc

 yum install flex autoconf zlib curl zlib-devel curl-devel bzip2  bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel
  gcc+ gcc-c++ libxml2 libxml2-devel libxslt libxslt-devel
 

(说明:以上包都得安装上,否则最后rails 环境会出错)

2.安装ruby
  wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz   

  tar -zxvf ruby-1.9.2-p0.tar.gz   

  cd ruby-1.9.2-p0

  ./configure --prefix=/usr/local/ruby

  make 

  make test

  make install
 

3.ruby 安装后 gem list  出现错误
    ERROR:  Loading command: list (LoadError)   

    no such file to load -- zlib   

    ERROR:  While executing gem ... (NameError)   

       uninitialized constant Gem::Commands::ListCommand  
 解决办法:
 
    sudo apt-get install zlib1g-dev    

    (2)然后到源码目录的ext/zlib下 (刚才解压的ruby1.9.2目录)   

  sudo ruby extconf.rb         (需要管理员权限)   

    make    

    sudo make install 

4. sudo: ruby: command not found 

    建立以下软链接:
    sudo ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby    

    sudo ln -s /usr/local/ruby/bin/gem /usr/bin/gem  
 

5. gem install rails

6. 安装 mysql

  三条命令实现安装 mysql
 

  yum install mysql-server 

  yum install mysql 

  yum install mysql-devel 

默认安装的mysql 密码是空 , 所以需要修改密码
    mysql -u root -p 回车进入 

    mysql> USE mysql; 

    mysql> UPDATE user SET Password=PASSWORD('new-password') WHERE user='root'; 

    mysql> FLUSH PRIVILEGES; 

   重启 mysql service

 /etc/init.d/mysqld restart

  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/ var/lib/mysql/mysql.sock' (2)

  sudo /etc/init.d/mysqld start

7. 安装git和部署项目
  yum install git-core

  ssh-keygen -t rsa

  如果是从别的地方拷贝过来的,需 进行权限操作:

 
 chmod 777 id_rsa id_rsa.pub


8.克隆服务器项目

  (1).rails 项目为了避免麻烦的权限,一般部署在 ~/ 目录下

    
 mkdir projects && cd ..

      git clone git@192.168.8.201:entos.git

      cd entos 

      切换到开发分支

      git checkout develop

      bundle install

      mv config/database.yml.example database.yml

  (2) 修改示例数据库配置文件

     
    vi config/database.yml edit root# password

      建库,数据迁移

      bundle exec rake RAILS_ENV=production db:create:all

      bundle exec rake RAILS_ENV=production db:migrate


  (3) 启动服务并测试

      rails s

     本地测试rails 环境是否搭建成功

     浏览器访问:localhost:3000 是否出现首页

  (4) 再此期间遇到的问题:

  a 如果出现:errors:libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.

     解决方法:sudo yum install -y libxml2 libxml2-devel libxslt libxslt-devel (此时要有 -y 参数,否则安装出错)

  b 如果出现 :make: g++: Command not found

     解决方法:  yum -y install gcc+ gcc-c++

  c 如果出现:  no such file to load -- openssl (LoadError)

     解决办法: cd ~/Downloads/ruby-1.9.2-p180/ext/openssl (assuming you extracted the ruby tar to ~/Downloads)

         $ ruby extconf.rb && make && sudo make install

9.  nginx+unicorn 部署:

  (1) install nginx

  
wget http://nginx.org/download/nginx-1.0.10.tar.gz

   sudo ./configure --prefix=/usr/local/nginx

   make  && make install

  启动 :sudo /usr/local/nginx/sbin/nginx 

  停止:sudo /usr/local/nginx/sbin/nginx -s stop

  重启:sudo /usr/local/nginx/sbin/nginx -s reload


(2)安装遇到的问题

  ./configure: error: the HTTP rewrite module requires the PCRE library.

   安装pcre-devel解决问题

   yum -y install pcre-devel

(3)安装Unicorn

 
  gem install unicorn

   获取 unicorn 配置文件   

   curl -o config/unicorn.rb https://raw.github.com/defunkt/unicorn/master/examples/unicorn.conf.rb

   修改配置文件:

  vi config/unicorn.rb

  
 app_path="/home/dong/projects/entos"

    working_directory app_path  # available in 0.94.0+

    listen app_path+"/tmp/nginx/sockets/unicorn.sock", :backlog => 64 (/tmp/nginx/sockets 需提前创建该文件目录,特别注意:unicorn.sock 不用创建,当unicorn_rails 启动后,会自动生成该文件*.sock)

    listen 8080, :tcp_nopush => true

    timeout 30

    pid app_path+"/tmp/pids/unicorn.pid"

    stderr_path app_path+"/log/unicorn.stderr.log" 

    stdout_path app_path+"/log/unicorn.stdout.log"

    (须在项目log目录下创建 unicorn.stderr.log ,unicorn.stdout.log,两个文件)

       touch log/unicorn.stderr.log

       touch log/unicorn.stdout.log

启动 unicorn_rails

 
unicorn_rails -c config/unicorn.rb -E production -D
       unicorn_rails -c config/unicorn.rb  -D
#运行次命令前要开启数据库服务,否则会启动报错

  sudo gedit /usr/local/nginx/conf/nginx.conf




关键代码配置:

user  root root;

http{

     upstream unicorn_server {

       server unix:/home/dong/projects/entos/tmp/nginx/sockets/unicorn.sock fail_timeout=0;

    }

    server {

        listen       80;

        server_name  www.entsea.com;

        root /home/dong/projects/entos/public;

        #charset koi8-r;



        #access_log  logs/host.access.log  main;



        location / {

        proxy_redirect off;

        proxy_set_header Host $host;

        proxy_set_header X-Forwarded-Host $host;

        proxy_set_header X-Forwarded-Server $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_buffering on;

          proxy_pass http://unicorn_server; #关键部分,如果没此配置:则会出现 nginx 403 Forbidden ,即使放到最大权限也无济于事

        }

    }



} 

如果是本地测试,需添加 链接

  vim /etc/hosts

  127.0.0.1 www.entsea.com

测试:浏览器输入 www.entsea.com 会看到首页



10.centos 安装中文输入法

  yum install "@Chinese Support"

  Preferences-Input method-最后选择添加...
0
0
分享到:
评论

相关推荐

    Linux实验-自动部署Nginx+PHP服务器.rar

    在IT行业中,Linux系统是广泛应用于服务器环境的操作系统,尤其是CentOS 7因其稳定性和安全性而备受青睐。本实验旨在教你如何通过编写shell脚本来自动部署Nginx和PHP服务,以便实现对PHP文件的支持并能成功访问...

    CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本

    CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本,Docker version 18.06.1-ce,docker-compose version 1.22.0

    CentOs7.3部署nginx+tomcat+redis集群说明.docx

    CentOs7.3部署nginx+tomcat+redis集群说明.docx

    centOS8 安装LNMT(nginx+mysql+tomcat).pdf

    centOS8 安装LNMT(nginx+mysql+tomcat),此文档为本人原创的文档,有兴趣可以看一下: 本文在centos8基础上进行安装,软件版本如下: 名称 版本 安装方式 备注 jdk 13.0.2 rpm Oracle jdk,目前最新版本 nginx...

    在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

    在阿里云服务器上搭建一个基于CentOS的Web服务环境,通常是为了部署Python应用程序,例如使用Flask框架构建的Web服务。本教程将详细介绍如何在阿里云服务器上配置一个CentOS系统,然后安装Nginx作为反向代理服务器,...

    zabbix详细安装教程(linux+postgresql+nginx+zabbix)

    本教程将指导您如何在Linux环境下安装Zabbix监控系统,并结合PostgreSQL作为数据库服务以及Nginx作为Web服务器。具体环境配置为:Linux 6.6 + PostgreSQL 9.3.5 + Nginx 1.6.0 + Zabbix 3.4。所有软件安装位置统一...

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    CentOS系统安装配置Nginx+keepalived实现负载均衡 本文将详细介绍CentOS系统安装配置Nginx+keepalived实现负载均衡的步骤和配置过程。通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构...

    centos下安装配置nginx+mysql+php环境

    ### CentOS 下安装配置 Nginx + MySQL + PHP 环境 #### 一、安装 MySQL 在 CentOS 下安装 MySQL 的过程主要包括用户与用户组的创建、配置安装路径、编译安装以及配置 MySQL 服务等步骤。 ##### 1.1 建立相关用户...

    Ruby On Rails教程

    - **Windows平台安装:** 在Windows环境下安装Rails需要先安装Ruby环境,然后通过RubyGems管理器安装Rails。 - **macOS平台安装:** macOS用户可以通过Homebrew工具轻松安装Ruby及Rails。Homebrew是一个高效的包管理...

    centos下安装nginx+php+mysql

    6. **启动 Nginx**:通过 `/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf` 启动 Nginx。 7. **停止 Nginx**:通过 `/usr/local/nginx/sbin/nginx -s stop` 停止 Nginx。 #### 四、PHP 安装与...

    用Django全栈开发——29. 部署之阿里云CentOS+Nginx+uWsgi+Django.html

    阿里云CentOS+Nginx+uWsgi+Django部署Django,《用Django全栈开发》系列文章最后一篇,感兴趣的同学可以查看。

    Linux环境傻瓜式nginx+rtmp+ffmpeg套餐安装详解(获取拉流人数)

    ### Linux环境下Nginx+RTMP+FFmpeg套餐安装与拉流人数获取详解 #### 一、概述 本文旨在提供一套完整的Linux环境下Nginx、RTMP和FFmpeg的安装及配置指南,帮助读者快速搭建功能强大的流媒体服务器。文章不仅涵盖了...

    centos+nginx+mysql+django+uwsgi+python

    本文将详细介绍如何在CentOS系统上安装并配置Django Web框架及其相关组件(Nginx、MySQL、uWSGI等),以及如何关闭CentOS 7的防火墙以确保服务正常运行。 #### 二、基础环境准备 **1. 安装必要的库和工具** 在...

    CentOS7 nginx+keepalived 离线安装包

    本文将详细介绍如何在CentOS7系统上,离线环境下安装nginx和keepalived,以实现主从热备负载均衡反向代理功能。 首先,我们关注的两个主要组件是`nginx`和`keepalived`。`nginx`是一款高性能的HTTP和反向代理服务器...

    Centos8下django项目部署 nginx+uwsgi的教程

    在本教程中,我们将深入探讨如何在CentOS 8操作系统上部署Django项目,利用Nginx作为反向代理服务器,以及uWSGI作为应用服务器。这个过程涉及到多个步骤,包括虚拟环境的创建、Django项目的配置、uWSGI的安装与配置...

    centos+nginx+vue+django部署办法.docx

    CentOS+Nginx+Vue+Django 部署方法 这篇文章将指导用户在 CentOS 系统上部署 Nginx 服务器,并使用 Vue 和 Django 框架搭建一个完整的 Web 应用程序。下面是详细的部署步骤: 安装 Nginx 1. 首先,需要安装所需的...

    Nginx+RTMP 推拉流集群方案

    如果需要支持H.264编码的视频流,还需要额外安装nginx_mod_h264_streaming模块,并对源码进行适当修改以兼容Nginx。 配置RTMP是整个直播服务器搭建过程中的关键步骤。需要在Nginx中嵌入rtmp模块的配置,以定义...

    Linux系统CentOS7下离线安装部署nginx

    Linux系统下安装nginx-1.14.1所需的所有包 以及rpm依赖包,安装文档 https://blog.csdn.net/weixin_41851100/article/details/89565198

    Nginx+KeepAlived+Tomcat负载架构

    - **步骤**:下载并安装JDK,设置环境变量。 ```bash ./jdk-6u45-linux-x64-rpm.bin export JAVA_HOME=/usr/java/jdk_45 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/...

Global site tag (gtag.js) - Google Analytics