Ubuntu Server 10.10 安装配置 RVM Ruby Rails3 passenger nginx MySQL

 

1.  以非root用户更新系统

sudo apt-get update
sudo apt-get upgrade
2. 设置主机名,如果是系统是图形安装的,则这步骤可以忽略
sudo hostname your-hostname


Add 127.0.0.1 your-hostname:

sudo vim /etc/hosts

Write your-hostname in:

sudo vim /etc/hostname

Verify that hostname is set:

hostname

 

3.  以非root安装 git &curl

新的ubuntu系统,需要安装这些包;

sudo apt-get install curl git

 

4.  安装RVM

$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

add below to your .bashrc. # This loads RVM into a shell session.


[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

Once you edit your bashrc file execute the following to load rvm without logging out and back in

把~/.bashrc中的return都删除,[ -z "$PS1" ] && return 改成 [ -z "$PS1" ]

运行:


source ~/.rvm/scripts/rvm

Just to be safe check wether rvm is a function, which is what it should be.

 type rvm | head -n1
5.  Install ruby 1.9.2


sudo aptitude install build-essential bison openssl libreadline5 libreadline5-dev curl git-core zlib1g zlib1g-dev libssl-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libmysqlclient-dev

rvm install 1.9.2
rvm use 1.9.2 --default

6. 安装 rails3
gem install rails

7.   安装 passenger and nginx

gem install passenger
rvmsudo passenger-install-nginx-module

这个步骤需要一些required softwares,可以按照提示完成

8 测试nginx

8.1 检查nginx的安装结果:
sudo vi /opt/nginx/conf/nginx.conf

确保以下为ruby 1.9.2(以rvm use 1.9.2 --default保持一致) 和 passenger 3 

http {
    passenger_root /home/leslin123/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.3;
    passenger_ruby /home/leslin123/.rvm/wrappers/ruby-1.9.2-p180/ruby;

8.2 启动 

sudo /opt/nginx/sbin/nginx
打开
nginx的欢迎界面:http://localhost/
如果看到:Welcome to nginx! , 那么恭喜你!
9.    Install latest version MySQL
sudo apt-get install mysql-server mysql-client

这个步骤花费的时间比较多,since需要下载的软件多于20M
根据提示为root设置相应的密码,3344***
10. 创建rails application
在当前用户目录中,如/home/les***/rorails 创建 
rails new helloubuntu
进入应用目录,运行 bundle install
这时sqllite3会被安装
11.   运行 rails server
启动的log为:

leslin123@ubuntuServerofLeslin:~/rorails/helloubuntu$ rails server

=> Booting WEBrick

=> Rails 3.0.4 application starting in development on http://0.0.0.0:3000

=> Call with -d to detach
=> Ctrl-C to shutdown server


[2011-02-26 11:28:38] INFO  WEBrick 1.3.1


[2011-02-26 11:28:38] INFO  ruby 1.9.2 (2011-02-18) [x86_64-linux]


[2011-02-26 11:28:38] INFO  WEBrick::HTTPServer#start: pid=14429 port=3000

打开目录http://localhost:3000/, 可以看到rails欢迎界面,但这个只是说明rails 配置成功。

显然,所希望的web服务器和数据库都没有配置好!

12.  配置MySQL

rails new helloMySQL -d mysql

cd ./helloMySQL 


问题:


rails server

Could not find gem 'mysql2 (>= 0, runtime)' in any of the gem sources listed in your Gemfile.


解决方法:


bundle update

Installing mysql2 (0.2.6) with native extensions


进入应用程序目录,将root的密码添加到database.yml 中,否则启动后会出现类型下面的,数据库连接错误;


Access denied for user 'root'@'localhost' (using password: NO)

rake db:create


rails server
打开欢迎界面http://0.0.0.0:3000/; 点击: About your application’s environment

查看相关信息,包括: Database adaptermysql2

好了,现在就剩下最后一项了。


13. 配置nignx服务器


认真者可以在安装Nignx看到如下提示:


---------------------------------------**************************************************--------------------------------------
--------------------------------------------

Nginx with Passenger support was successfully installed.

The Nginx configuration file (/opt/nginx/conf/nginx.conf)

must contain the correct configuration options in order for Phusion Passenger to function correctly.

This installer has already modified the configuration file for you! The

following configuration snippet was inserted:

  http {
     ...
      passenger_root /home/leslin123/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.3;
      passenger_ruby /home/leslin123/.rvm/wrappers/ruby-1.9.2-p180/ruby;
      ...
  }


After you start Nginx, you are ready to deploy any number of Ruby on Rails applications on Nginx

Press ENTER to continue.


--------------------------------------------


Deploying a Ruby on Rails application: an example

Suppose you have a Ruby on Rails application in /somewhere. Add a server block

to your Nginx configuration file, set its root to /somewhere/public, and set

'passenger_enabled on', like this:

   server {

    listen 80;
      server_name www.yourhost.com;
      root /somewhere/public;   # <--- be sure to point to 'public'!
      passenger_enabled on;
   }





And that's it! You may also want to check the Users Guide for security and optimization tips and other useful information:





  /home/leslin123/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.3/doc/Users guide Nginx.html





---------------------------------------**************************************************--------------------------------------

配置:/opt/nginx/conf/nginx.conf


 http {


    passenger_root /home/leslin123/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.3;

    passenger_ruby /home/leslin123/.rvm/wrappers/ruby-1.9.2-p180/ruby;

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;


    #keepalive_timeout  0;


    keepalive_timeout  65;

    gzip  on;


    server {

        listen       80;


        server_name  localhost;


        root /home/leslin123/rorails/helloMySQL/public;  #设置app目录


        passenger_enabled on;  


        rails_env development;     #设置为开发环境,默认是生产环境


        #charset koi8-r;


        #access_log  logs/host.access.log  main;


        #location / {


        #    root   /home/leslin123/rorails/helloMySQL/public;

        #    index  index.html index.htm;

        #}



配置Nginx为启动项:


curl -L http://bit.ly/nginx-ubuntu-init-file > /etc/init.d/nginx

leslin123@ubuntuServerofLeslin:~$ sudo chmod +x /etc/init.d/nginx 

leslin123@ubuntuServerofLeslin:~$ sudo /usr/sbin/update-rc.d -f nginx defaults

 System start/stop links for /etc/init.d/nginx already exist.


leslin123@ubuntuServerofLeslin:~$ sudo /etc/init.d/nginx start



 * Starting Nginx Server.

进入项目,建立脚手架:


~/rorails/helloMySQL$ rails generate scaffold Post name:string title:string content:text

rake db:create

rake db:migrate

http://localhost/

http://localhost/posts


13. 参考文档:


http://thekindofme.wordpress.com/2010/10/24/rails-3-on-ubuntu-10-10-with-rvm-passenger-and-nginx/
http://www.freshblurbs.com/installing-ruby-rails-3-centos-nginx
https://github.com/xdite/rails-nginx-passenger-centos
https://github.com/jnstq/rails-nginx-passenger-ubuntu
http://thoughtrails.com/episodes/81-configuration-with-rvm-rails3-nginx-passenger-on-ubuntu
http://thoughtrails.com/episodes/4-deployment-of-production-enviroment-ruby-1-9-2-rails-3-nginx-passenger-and-postgresql-with-rvm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值