Liunx下搭建Rails和Nginx环境

8月 12th, 2015 1,837 留下评论 阅读评论

用rails开发轻量级web,效率最高!

安装rvm

http://www.rvm.io/

\curl -sSL https://get.rvm.io | bash -s stable

echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile

source /etc/profile

然后就可以在命令行中使用rvm命令了

安装ruby

安装rvm后安装ruby下载缓慢,手动在ruby.taobao.org下载ruby-1.9.3,将安装包放在rvm/archives下即可

rvm install 1.9.3-p545 (如果不指定p版本,则不一定会使用安装包,而去下载网上最新版本)

which ruby 可以找到当前版本ruby版本和位置

按照http://ruby.taobao.org/的方法,将gem的source改为https://ruby.taobao.org/

这里要大大赞一下taobao,为国内开发者提供了便利,然后严重鄙视和谴责GFW

gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l
*** CURRENT SOURCES ***

https://ruby.taobao.org
# 请确保只有 ruby.taobao.org

安装mysql

apt-get install mysql-server

apt-get install libmysqlclient-dev

gem install mysql2 -v=0.2.24 gem install activerecord-mysql2-adapter

安装rails

gem install rails -v=3.0.20 3.2版本以上使用了很多新的东西,包括要安装nodejs等环境比较麻烦

rails new demo --skip-bundle

如果提示缺少必要gem的话,可以使用bundle自动安装
cd demo
bundle config mirror.https://rubygems.org https://ruby.taobao.org
bundle install

rails server或者rails s 即可启动自带的WEBrick web server

rails连接mysql

在mysql中新建数据库

修改config/database.yml

将adapter类型修改为mysql2

production:
adapter: mysql2
database: db_name
username: db_user
password: db_pawd
host: 127.0.0.1
encoding: utf8
socket: /var/run/mysqld/mysqld.sock

修改demo/Gemfile,注释#gem ‘sqlite3’,添加gem 'mysql2', '< 0.3'

然后写一个最简单的migrate文件用以测试,执行RAILS_ENV=production db:migrate

不成功的原因:
若提示无法加载libmysqlclient.18.dylib,是因为/usr/lib下没有这个文件,作一个软链接即可,前提是找到本机mysql安装位置:
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

安装pcre和nginx

源码安装,将nginx包解压到/opt/nginx-x.x.x后,不要将/opt/nginx-x.x.x改名为/opt/nginx,因为/opt/nginx目录会在编译后自动生成。然后不要删除源码目录,安装Passenger还会用到。

这里不需要自己编译安装Nginx,因为安装Passenger的时候会需要编译安装一次

安装PCRE:apt-get install libpcre3 libpcre3-dev

若自己编译nginx,方法如下:
./configure --prefix='/opt/nginx' --with-http_stub_status_module --with-http_sub_module --with-md5='/usr/lib' --with-sha1='/usr/lib --with-http_gzip_static_module' --with-http_ssl_module --with-cc-opt=-Wno-error --with-http_secure_link_module
# 若是手动编译安装PCRE,则需要加上 --with-pcre=/opt/pcre-8.36
make
make install
然后/opt/nginx目录就出来啦,安装完毕

安装Passenger

首先是gem install passenger

然后进到gem的Passenger/bin目录中(可能在/usr/local/rvm/gems/ruby-1.9.3-p551/gems/passenger-5.0.16/),执行passenger-install-nginx-module脚本,选择第二种自定义安装nginx(第一种自动下载、编译、安装nginx),通过命令行输入nginx源码目录即可,之后都默认。

最后按照安装Passenger完毕给予的提示,配置nginx的conf/nginx.conf。

http {
passenger_root /usr/local/rvm/gems/ruby-1.9.3-p551/gems/passenger-5.0.16;
passenger_ruby /usr/local/rvm/gems/ruby-1.9.3-p551/wrappers/ruby;

server {
listen 80;
server_name localhost;
passenger_enabled on;
rails_env production;

location / {
root rails_project/public;
}
}
}
Categories: ruby on rails 标签:, ,
  1. 还没有评论呢。