Liunx下搭建Rails和Nginx环境
用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;
}
}
}