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

用安装包吧,不用费时费力了,https://bitnami.com/stack/ruby/installer


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

新换****,现在重新弄了个开发环境:
这回不用RVM,降低复杂性。

Ruby

1.
sudo apt-get update
sudo apt-get upgrade

2.
sudo apt-get install curl git

3. 安装编译工具, c相关的工具都安装了,也不差那点磁盘空间
sudo apt-get install build-essential

4. 到ruby官网获取下载地址,用wget下载

wget http://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p180.tar.gz

5.
sudo ./configure -prefix=/usr/local/ruby  #指定需要安装路径

make && make install

这一步碰到了权限的问题:
Permission denied - /usr/local/ruby (Errno::EACCES)

解决方法是将一步分成两步:
sudo make
sudo make install
或者sudo make && sudo make install

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

Rails
6.
问题:
:~$ sudo gem install rails
ERROR:  Loading command: install (LoadError)
    no such file to load -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand
解决:
下载zlib
sudo apt-get install zlib1g-dev
到ruby源代码:
#:~/software/ruby-1.9.2-p180/ext/zlib$ ruby extconf.rb

sudo make
sudo make install
重新:sudo gem install rails

rails -v没有反应,同样的问题,需要建立链接:
sudo ln -s /usr/local/ruby/bin/rails /usr/bin/rails
然后运行:
:~$ rails -v
Rails 3.0.5
这样就会有相应的问题,Rails 3 相关的指令都需要建立链接吗?
如果这样的话,还不如使用RVM来的方便了!

那怎么办呢? 简单,设置系统环境变量:

sudo gedit /etc/environment


#环境变量PATH值如下:

PATH="/usr/local/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

可以运行ri试试,应该感觉不错吧! good,go ahead!

 

顺带说一下ubuntu的环境变量
在Ubuntu中有如下几个文件可以设置环境变量
1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
3、~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bashshell的用户执行此文件.当bash shell被打开时,该文件被读取.
4、~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。5. /etc/rc.local:自动执行的脚本

可以用命令:env查看

 

1、Ubuntu专有方式
编辑 /etc/ld.so.conf 文件,如果以下语句不存在,则加入:
include /etc/ld.so.conf.d/*.conf
然后在/etc/ld.so.conf.d下边新建一个以 .conf 结尾的文件。
在新建的 .conf 文件中写入需要设置的 path,例如:
~/mypath/bin

2、用户目录下的 .bashrc 文件
在用户主目录下,有一个 .bashrc 文件,编辑该文件:
$gedit ~/.bashrc
在最后边加入需要设置变量的shell语句,例如:
export PATH=~/mypath/bin:$PATH
该文件编辑保存后,可立即在新打开的终端窗口内生效。
该方式添加的变量只能当前用户使用。

3、系统目录下的 profile 文件
在系统的 etc 目录下,有一个 profile 文件,编辑该文件:
$gedit /etc/profile
在最后边加入需要设置变量的shell语句,例如:
export PATH=~/mypath/bin:$PATH
该文件编辑保存后,重启系统,变量生效。
该方式添加的变量对所有的用户都有效。

4、系统目录下的 environment 文件
在系统的 etc 目录下,有一个 environment 文件,编辑该文件:
$gedit /etc/environment
找到以下的 PATH 变量:
PATH="<......>"
修改该 PATH 变量,在其中加入自己的path即可,例如:
PATH="~/mypath/bin:<......>"
各个path之间用冒号分割。该文件也是重启生效,影响所有用户。

or source /etc/environment 生效

根据需要选择合适的吧!

 

7.安装MYSQL吧

sudo apt-get install mysql-server mysql-client

设置MQSQL的UTF-8编码方式:

$sudo gedit /etc/mysql/my.cnf ,编辑添加如下内容
[mysql]
default-character-set = utf8
[mysqld]
default-character-set = utf8
init_connect = 'SET NAMES utf8'

[client]
default-character-set = utf8

运行:sudo /etc/init.d/mysql restart
检查;sudo netstat -tap | grep mysql

检查MYSQL查看编码
MYSQL命令: show variables like'character%'; 
或者:
#mysql -u root -p
Enter password: ******
> /s # 查看是否配置成功
Client characterset:    utf8
Server characterset:    utf8
>quit

 

 

 

8. Install nginx+passenger

sudo gem install passenger
passenger-install-nginx-module
这里需要一些required softwares,可以按照提示完成;
例如:
le@leUbt:~$
sudo apt-get install libopenssl-ruby
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libssl-dev

这个步骤有个问题,死活提示:
 * OpenSSL support for Ruby... not found
手动安装了,但是死活找不到! 问题在哪里呢? 在irb里运行,require 'openssl' 确实是找不到。
哪问题在哪里呢?
解决方法:
(1)重新编译Ruby一下,问题解决了
(2)又一解决方法,未经过验证:http://hideto.javaeye.com/blog/99521 or
    一开始尝试使用
    sudo apt-get install libopenssl-ruby1.8
    安装是安装成功了,但是仍然提示找不到openssl。还是决定从源码安装,首先确保ubuntu安装了openssl:
    sudo apt-get install openssl
    sudo apt-get install libssl-dev
    sudo apt-get install libssl0.9.8
  
    然后进入ruby源码目录下的/ext/openssl
    cd RUBY_SOURCE/ext/openssl
    ruby extconf.rb
    make
    sudo make install


新问题又出现了:
Permission problems

This installer must be able to write to the following directory:

  /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.5

But it can't do that, because you're running the installer as ***.
Please re-run this installer as root.
方法一,釜底抽薪的方法:
注意:如果你想把nginx安装在非个人目录,如/usr/local/nginx或者/opt/nginx你需要以root身份执行以下命令
sudo /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.5/bin/passenger-install-nginx-module

方法二,灵活的方法----------->如果你喜欢被虐的话:
修改权限:chmod 777 /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.5
安装过程中又有其他的权限问题,则继续给予相应的权限。
另外 附带安装Nginx,需要建立文件夹:mkdir /opt/nginx;
修改文件夹权限:chmod 777 /opt/nginx

 

可以验证一下Nginx。 启动Nignx

 

9.配置MySQL

 

rails new helloMySQL -d mysql
cd ./helloMySQL
bundle update
进入应用程序目录,将root的密码添加到database.yml

问题:
Installing mysql2 (0.2.7) with native extensions /usr/local/ruby/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/usr/local/ruby/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

解决方法:
sudo apt-get install libmysql-ruby libmysqlclient-dev
bundle update
可以看到MySQL适配器mysql2被重新安装:
Using activeresource (3.0.5)
Using bundler (1.0.10)
Installing mysql2 (0.2.7) with native extensions
Using thor (0.14.6)


验证MySQL配置工作:
rake db:create
rails server
打开:http://127.0.0.1:3000/, 查看环境配置参数;


10. 配置nignx服务器

配置:/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


 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值