前置库安装
sudo apt-get install gcc
sudo apt-get install build-essential
sudo apt-get install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev linux-headers-generic
sudo apt-get install zlib1g-dev libssl-dev libreadline5-dev libxml2-dev
sudo apt-get install libcurl4-openssl-dev libssl-dev zlib1g-dev libreadline5-dev
sudo apt-get install curl git-core
sudo apt-get install bison build-essential zlib1g zlib1g-dev libssl-dev libreadline5-dev libxml2-dev subversion autoconf
安装RVM
bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
sudo vi /home/mlzboy/.bashrc
将[ -z "$PS1" ] && return替换为 if [[ -n "$PS1" ]] ; then
在最后加上
fi # <= be sure to close the if at the end of the .bashrc.
# This is a good place to source rvm v v v
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.
使用source ~/.bashrc 可使更改立刻生效,也可新打开终端
进行测试
rvm notes
type rvm | head -n1
result is :rvm is a function
安装ruby 1.9.2
rvm list
rvm install 1.9.2
在安装完rails1.9.2后,将它设为默认的 rvm 1.9.2 --default 安装passenger gem install passenger 安装nginx 备份旧的nginx可执行文件及目录特别是nginx.conf,并将原来运行的nginx进程停止,虽然书上说可以进行平滑升级。 查看原有nginx配置参数 strings /usr/local/nginx/sbin/nginx | grep configure --add-module=../uwsgi-0.9.5.4/nginx/ --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module
sudo
apt-get
install
libpcre3 libpcre3-dev
sudo apt-get install libcurl4-openssl-dev sudo apt-get install openssl libssl-dev
sudo apt-get install build-essential libpcre3-dev libssl-dev libxslt-dev libgd2-xpm-dev libgeoip-dev zlib1g-dev
wget http://nginx.org/download/nginx-0.7.67.tar.gz
tar xvf nginx-0.7.67.tar.gz
使用rvmsudo passenger-install-nginx-module进行升级安装nginx
根据提示:Please specify the directory: /home/mlzboy/nginx-0.7.67
Please specify a prefix directory [/opt/nginx]: /usr/local/nginx
Extra arguments to pass to configure script: --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module
完成后会提示两段话
Nginx with Passenger support was successfully installed.
Please edit your Nginx configuration file (probably /usr/local/nginx/conf/nginx.conf),
and set the passenger_root and passenger_ruby configuration options in the
'http' block, like this:
http {
...
passenger_root /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/passenger-3.0.1;
passenger_ruby /home/mlzboy/.rvm/wrappers/ruby-1.9.2-p0/ruby;
...
}
After you (re)start Nginx, you are ready to deploy any number of Ruby on Rails
applications on Nginx.
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/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/passenger-3.0.1/doc/Users guide Nginx.html
从目前的情况来看,如果原有nginx则nginx.conf不会被覆盖
sudo /usr/local/nginx/conf/nginx.conf
nginx.conf以下部分进行更改
在第1行
user mlzboy;
在http{...}节内
加入以下两行
passenger_root /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/passenger-3.0.1;
passenger_ruby /home/mlzboy/.rvm/wrappers/ruby-1.9.2-p0/ruby;
在server节加入如下,局部根据具体情况更改
server {
listen 80;
server_name localhost;
root /home/mlzboy/my/b2c2/public;
passenger_enabled on;
rails_env development;
保存后使用./sbin/nginx -t来检测配置的正确性
安装并配置mysql
sudo apt-get install mysql-server-5.1
sudo vi /etc/mysql/my.cnf
做以下更改以达到,能被外部访问,中国时区,utf-8支持,红色标记为改动部分
[client]
default-character-set=utf8
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
default-character-set=utf8
init_connect='SET NAMES utf8'
default-time-zone = '+8:00'
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
更改系统时区
sudo tzselect
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sudo ntpdate cn.pool.ntp.org
date
重启mysql服务
sudo service mysql restart
检查前面的设置
mysql -uroot -p
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2010-12-10 22:22:26 |
+---------------------+
1 row in set (0.00 sec)
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
使外网特定ip能访问远程mysql,还需要进行以下配置
二、Mysql数据库的修改
1) [root@etc etc]# mysql -u root -p
Enter password:
2)mysql> use mysql;
3)mysql> select host,user,password from user;
4)grant all privileges on *.* to root@192.168.1.100 identified by 'password'
注意: (1)192.168.15.101是欲连接到此Mysql数据库的客户端的IP地址,而不是Mysql数据库所在数据库服务器的IP地址,切记
(2)password就是Mysql数据库root用户的password,根据实际情况需要修改
上传程序及mysql数据脚本备份
将数据导入mysql,生产库和开发库使用一模一样的配置
mysql -uroot -pxxxx <2010-12-11进行备份数据导入,相应的导出脚本为mysqldump --database b2c2_development -uroot -pxxxx >20101210
使用cron作每日备份
bachup_mysql.sh
#!/bin/sh
name=$(date +%Y-%m-%d)
/usr/bin/mysqldump --database b2c2_development -uroot -pzhoubt | /bin/gzip>/home/mlzboy/my/backup_mysql/$name.gz
安装bundler及程序相关的依赖项
gem install bundler(注意是bundler,不是bundle)
sudo apt-get install imagemagick
paperclip插件需要这个库预先装,一般情况下已经装了
安装rails3的mysql2 gem需要sudo apt-get install libmysql-ruby libmysqlclient-dev
安装sqlite3-rubygem需要下面这个库的支持sudo apt-get install libsqlite3-dev
进入b2c2项目使用bundle install进行安装
passenger集成文档
http://rvm.beginrescueend.com/integration/passenger/
http://xcell.me/posts/3-installing-rails-3-through-rvm
http://ivice.iteye.com/blog/756391
http://rvm.beginrescueend.com/integration/passenger/
http://ivice.iteye.com/blog/730795