centos+nginx+ruby(and rails)+mongrel+php+mysql centos安装php常见错误

安装gcc
yum -y install gcc

安装g++
yum install gcc-c++

安装libxml2
/*
wget http://mirror.centos.org/centos-5/5/os/i386/CentOS/libxml2-2.6.26-2.1.2.8.i386.rpm
rpm -Uvh libxml2-2.6.26-2.1.12.el5_7.2.i386.rpm
*/
(http://download.chinaunix.net/download/0007000/6095.shtml)
wget http://down1.chinaunix.net/distfiles/libxml2-2.7.2.tar.gz http://down1.chinaunix.net/distfiles/libxml2-2.6.27.tar.gz
tar zxvf libxml2-2.7.2.tar.gz
cd libxml2-2.7.2
./configure –prefix=/usr/local/libxml2
make
make install

centos安装nginx php ruby
1、编译安装PHP 5.3.10所需的支持库
cd /root/software

libiconv库
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14/
./configure –prefix=/usr/local
make
make install
cd ../

libmcrypt库
wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure –enable-ltdl-install
make
make install
cd ../../

mhash库
wget http://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

mcrypt库
wget http://nchc.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../

2、安装mysql             http://www.cnblogs.com/Jeffreyliang/archive/2011/06/04/2040628.html
wget http://mysql.easynet.be/Downloads/MySQL-5.1/mysql-5.1.62.tar.gz
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
tar zxvf mysql-5.1.62
cd mysql-5.1.62/
./configure –prefix=/usr/local/mysql –with-extra-charsets=all –with-unix-socket-path=/usr/local/mysql/var/mysql.sock –

with-named-curses-libs=/usr/lib/libncursesw.so.5

make
make install
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
cd ../

暂时这样配置:
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db
启动mysql:
/usr/local/mysql/share/mysql/mysql.server start
如果不能启动请运行/usr/local/mysql/bin/mysqld_safe –user=root 就能够启动了!!
接着输入/usr/local/mysql/share/mysql/mysql.server start即可成功启动
好了,我们把密码设置为123456 /usr/local/mysql/bin/mysqladmin -u root password 123456

连接本机上的mysql:
/usr/local/mysql/bin/mysql -u root -p
退出mysql: exit;

/*以下的步骤这样没有配置成功

附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下几步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他

服务器上的MySQL数据库,那么,以下两步无需执行。
①、创建MySQL数据库存放目录
mkdir -p /mnt/mysql/3306/data/
mkdir -p /mnt/mysql/3306/binlog/
mkdir -p /mnt/mysql/3306/relaylog/
chown -R mysql:mysql /mnt/mysql/

②、以mysql用户帐号的身份建立数据表:
/usr/local/mysql/bin/mysql_install_db –basedir=/usr/local/mysql –datadir=/mnt/mysql/3306/data –user=mysql

③、创建my.cnf配置文件:
vi /mnt/mysql/3306/my.cnf

输入以下内容:

[client]
character-set-server = utf8
port    = 3306
socket  = /tmp/mysql.sock

[mysqld]
character-set-server = utf8
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user    = mysql
port    = 3306
socket  = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /mnt/mysql/3306/data
log-error = /mnt/mysql/3306/mysql_error.log
pid-file = /mnt/mysql/3306/mysql.pid
open_files_limit    = 10240
back_log = 600
max_connections = 5000
max_connect_errors = 6000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 300
#thread_concurrency = 8
query_cache_size = 512M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 246M
max_heap_table_size = 246M
long_query_time = 3
log-slave-updates
log-bin = /mnt/mysql/3306/binlog/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /mnt/mysql/3306/relaylog/relaylog
relay-log-info-file = /mnt/mysql/3306/relaylog/relaylog
relay-log = /mnt/mysql/3306/relaylog/relaylog
expire_logs_days = 30
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover

interactive_timeout = 120
wait_timeout = 120

skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

#master-host     =   192.168.1.2
#master-user     =   username
#master-password =   password
#master-port     =  3306

server-id = 1

innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_file_path = ibdata1:256M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0

#log-slow-queries = /mnt/mysql/3306/slow.log
#long_query_time = 10

[mysqldump]
quick
max_allowed_packet = 32M

④、创建管理MySQL数据库的shell脚本:

vi /mnt/mysql/3306/mysql

输入如下内容:

#!/bin/sh

mysql_port=3306
mysql_username=”admin”
mysql_password=”123456″

function_start_mysql()
{
printf “Starting MySQL…\n”
/bin/sh /usr/local/mysql/bin/mysqld_safe –defaults-file=/mnt/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null &
}

function_stop_mysql()
{
printf “Stoping MySQL…\n”
/usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown
}

function_restart_mysql()
{
printf “Restarting MySQL…\n”
function_stop_mysql
sleep 5
function_start_mysql
}

function_kill_mysql()
{
kill -9 $(ps -ef | grep ‘bin/mysqld_safe’ | grep ${mysql_port} | awk ‘{printf $2}’)
kill -9 $(ps -ef | grep ‘libexec/mysqld’ | grep ${mysql_port} | awk ‘{printf $2}’)
}

if [ "$1" = "start" ]; then
function_start_mysql
elif [ "$1" = "stop" ]; then
function_stop_mysql
elif [ "$1" = "restart" ]; then
function_restart_mysql
elif [ "$1" = "kill" ]; then
function_kill_mysql
else
printf “Usage: /mnt/mysql/${mysql_port}/mysql {start|stop|restart|kill}\n”
fi

⑤、赋予shell脚本可执行权限:

chmod +x /mnt/mysql/3306/mysql

⑥、启动MySQL:

/mnt/mysql/3306/mysql start

⑦、通过命令行登录管理MySQL服务器(提示输入密码时直接回车):

/usr/local/mysql/bin/mysql -u root -p -S /tmp/mysql.sock

⑧、输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(123456):
GRANT ALL PRIVILEGES ON *.* TO ‘admin’@'localhost’ IDENTIFIED BY ’123456′;
GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’127.0.0.1′ IDENTIFIED BY ’123456′;

⑨、(可选)停止MySQL:
/mnt/mysql/3306/mysql stop

*/

3、编译安装PHP(FastCGI模式)
安装php前的预装库:
libxml2 libxml2-devel
openssl openssl-devel
curl curl-devel
libjpeg libjpeg-devel
libpng libpng-devel
freetype freetype-devel
gd gd-devel
(yum -y install gd
yum -y install gd-devel)
yum -y install openldap
yum -y install openldap-devel

rpm -qa | grep zlib
如果没有装则
yum  install zlib zlib-devel

tar zxvf php-5.3.10.tar.gz
cd php-5.3.10
./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-

mysqli=/usr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-dir –

with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –

enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi

–enable-fpm –enable-force-cgi-redirect –enable-cgi –enable-mbstring –with-mcrypt –with-gd –enable-gd-native-ttf –

with-openssl –with-mhash –enable-pcntl –enable-sockets –with-ldap –with-ldap-sasl –with-xmlrpc –enable-zip –enable-

soap
(configure参考:http://siyoung.iteye.com/blog/1052302)
make ZEND_EXTRA_LIBS=’-liconv’
make install
cp php.ini-dist /usr/local/php/etc/php.ini
cd ../

编译时出现错误集合:
如果出现 libxml错语提示:
请检查并安装libxml2
rpm -qa | grep libxml
yum install libxml2
yum install libxml2-devel

如果出现configure: error: Cannot find OpenSSL’s 错误,则:
yum install openssl openssl-devel

如果出现
configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/
错误,则:
yum install curl curl-devel

如果出现
configure: error: jpeglib.h not found.
错误,则:yum install libjpeg libjpeg-devel

如果出现
Configure: error: libpng.(also) not found.
错误,则:yum install libpng libpng-devel

configure: error: freetype.h not found.
yum -y install freetype freetype-devel

PHP编译configure: error集合http://blog.sina.com.cn/s/blog_7e4c8f2b0100v39j.html

4、编译安装PHP5扩展模块   (http://www.dankypang.com/2011/02/%E5%AE%89%E8%A3%85-memcache-2-2-6-tgz-php/)
memcached 是一个Linux下的缓存服务器,可以将内存划出一块来做为缓存使用。

安装Memcached
memcache基于libevent构建,在装memcache之前需要安装libevent (yum -y install libevent libevent-devel )
wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz   (http://memcached.org/)
tar zxvf memcached-1.4.13.tar.gz
cd memcached-1.4.13
./configure –prefix=/usr/local/memcached
make && make install

安装完成,运行一下(启动memcached):
/usr/local/memcached/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
说明:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

结束服务 kill `cat /tmp/memcached.pid`

安装memcache PHP模块
wget http://pecl.php.net/get/memcache-2.2.6.tgz
tar zxvf memcache-2.2.6.tgz
cd memcache-2.2.6/
/usr/local/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
make
make install
cd ../

执行/usr/local/php/bin/phpize时如果出现
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
错误,则需要安装m4 autoconf  (http://www.workle.cn/space.php?uid=1&do=blog&id=296)
yum install m4
yum install autoconf

安装完后会有类似这样的提示:
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

修改php的配置文件,php.ini
vi /usr/local/php/etc/php.ini
查找:extension_dir = “./”
修改成:
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/”
extension=memcache.so

Memcache环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
< ?php
$mem = new Memcache;
$mem->connect(“127.0.0.1″, 11211);
$mem->set(‘key’, ‘This is a test!’, 0, 60);
$val = $mem->get(‘key’);
echo $val;
?>

安装eaccelerator:

http://sourceforge.net/projects/eaccelerator/

wget http://nchc.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/usr/local/php/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config -with-eaccelerator-shared-memory
make
make install
cd ../

安装pdo_mysql:
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql
make
make install
cd ../

wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../

wget http://pecl.php.net/get/imagick-3.0.1.tgz
tar zxvf imagick-3.0.1.tgz
cd imagick-3.0.1/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../

在php.ini中加上
extension=imagick.so

5、修改php.ini文件
手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = “./”
修改为extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/”
并在此行后增加以下几行,然后保存:
extension = “memcache.so”
extension = “pdo_mysql.so”
extension = “imagick.so”

再查找output_buffering = Off
修改为output_buffering = On

再查找; cgi.fix_pathinfo=0
修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞。

6、配置eAccelerator加速PHP:

建立缓存文件夹,设置文件夹权限:
mkdir /tmp/eaccelerator_cache
chmod 0777 /tmp/eaccelerator_cache

vi /usr/local/php/etc/php.ini
按shift+g键跳到配置文件的最末尾,加上以下配置信息:
[eaccelerator]
zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so”
eaccelerator.shm_size=”64″
eaccelerator.cache_dir=”/tmp/eaccelerator_cache”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”3600″
eaccelerator.shm_prune_period=”3600″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″

7、创建www用户和组,以及供xhuoban.com和zhangwenyou.com两个虚拟主机使用的目录:
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /mnt/htdocs/xhuoban
chmod +w /mnt/htdocs/xhuoban
chown -R www:www /mnt/htdocs/xhuoban
mkdir -p /mnt/htdocs/zhangwenyou
chmod +w /mnt/htdocs/zhangwenyou
chown -R www:www /mnt/htdocs/zhangwenyou

8、创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi):
在/usr/local/php/etc/目录中创建php-fpm.conf文件:
rm -f /usr/local/php/etc/php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf

输入以下内容(如果您安装 Nginx + PHP 用于程序调试,请将以下的0改为

name=”display_errors”>1,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):

All relative paths in this config are relative to php’s install prefix

Pid file
/usr/local/php/logs/php-fpm.pid

Error log file
/usr/local/php/logs/php-fpm.log

Log level
notice

When this amount of php processes exited with SIGSEGV or SIGBUS …
10

… in a less than this interval of time, a graceful restart will be initiated.
Useful to work around accidental curruptions in accelerator’s shared memory.
1m

Time limit on waiting child’s reaction on signals from master
5s

Set to ‘no’ to debug fpm
yes

Name of pool. Used in logs and stats.
default

Address to accept fastcgi requests on.
Valid syntax is ‘ip.ad.re.ss:port’ or just ‘port’ or ‘/path/to/unix/socket’
127.0.0.1:9000

Set listen(2) backlog
-1

Set permissions for unix socket, if one used.
In Linux read/write permissions must be set in order to allow connections from web server.
Many BSD-derrived systems allow connections regardless of permissions.


0666

Additional php.ini defines, specific to this pool of workers.

/usr/sbin/sendmail -t -i
0

Unix user of processes
www

Unix group of processes
www

Process manager settings

Sets style of controling worker process count.
Valid values are ‘static’ and ‘apache-like’
static

Sets the limit on the number of simultaneous requests that will be served.
Equivalent to Apache MaxClients directive.
Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
Used with any pm_style.
128

Settings group for ‘apache-like’ pm style

Sets the number of server processes created on startup.
Used only when ‘apache-like’ pm_style is selected
20

Sets the desired minimum number of idle server processes.
Used only when ‘apache-like’ pm_style is selected
5

Sets the desired maximum number of idle server processes.
Used only when ‘apache-like’ pm_style is selected
35

The timeout (in seconds) for serving a single request after which the worker process will be terminated
Should be used when ‘max_execution_time’ ini option does not stop script execution for some reason
’0s’ means ‘off’
0s

The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
’0s’ means ‘off’
0s

The log file for slow requests
logs/slow.log

Set open file desc rlimit
65535

Set max core size rlimit
0

Chroot to this directory at the start, absolute path

Chdir to this directory at the start, absolute path

Redirect workers’ stdout and stderr into main error log.
If not set, they will be redirected to /dev/null, according to FastCGI specs
yes

How much requests each process should execute before respawn.
Useful to work around memory leaks in 3rd party libraries.
For endless request processing please specify 0
Equivalent to PHP_FCGI_MAX_REQUESTS
1024

Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
Makes sense only with AF_INET listening socket.
127.0.0.1

Pass environment variables like LD_LIBRARY_PATH
All $VARIABLEs are taken from current environment

$HOSTNAME
/usr/local/bin:/usr/bin:/bin
/tmp
/tmp
/tmp
$OSTYPE
$MACHTYPE
2

9、启动php-cgi进程,监听127.0.0.1的9000端口,进程数为128(如果服务器内存小于3GB,可以只开启64个进程),用户为www:
ulimit -SHn 65535
/usr/local/php/sbin/php-fpm start

注:/usr/local/php/sbin/php-fpm还有其他参数,包括:start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重

新加载配置文件使用reload。

安装ruby   (nginx Mongrel)
先安装所需要的库
yum groupinstall “Development Tools”
yum install zlib-devel wget openssl-devel pcre pcre-devel make gcc gcc-c++ curl-devel

ruby企业版(http://www.rubyenterpriseedition.com/download.html )
wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2012.02.tar.gz
tat zxvf ruby-enterprise-1.8.7-2012.02.tar.gz
cd ruby-enterprise-1.8.7-2012.02.tar.gz
./installer
如果出现 GNU Readline development headers… not found,则需要安装yum install readline-devel
安装企业版RubyGems会被自动安装进去。

执行./installer安装ruby完成后,提示如下信息:
/*
Installing useful libraries…
/usr/local/ruby/bin/ruby /usr/local/ruby/bin/gem sources –update
ERROR:  While executing gem … (Gem::RemoteFetcher::FetchError)
too many connection resets (http://production.s3.rubygems.org/specs.4.8.gz)
——————————————–
Warning: some libraries could not be installed
The following gems could not be installed, probably because of an Internet
connection error:

* passenger
* rake
* rails
* mysql
* bundler

These gems are not required, i.e. Ruby Enterprise Edition will work fine without them. But most people use Ruby Enterprise

Edition in combination with Phusion Passenger and Ruby on Rails, which do require one or more of the aforementioned gems, so

you may want to install them later.

To install the aforementioned gems, please use the following commands:
* /usr/local/ruby/bin/ruby /usr/local/ruby/bin/gem install passenger
* /usr/local/ruby/bin/ruby /usr/local/ruby/bin/gem install rake
* /usr/local/ruby/bin/ruby /usr/local/ruby/bin/gem install rails
* /usr/local/ruby/bin/ruby /usr/local/ruby/bin/gem install mysql
* /usr/local/ruby/bin/ruby /usr/local/ruby/bin/gem install bundler

Updating /usr/local/ruby/bin/gem…
Updating /usr/local/ruby/bin/irb…
Updating /usr/local/ruby/bin/erb…
Updating /usr/local/ruby/bin/testrb…
Updating /usr/local/ruby/bin/ri…
Updating /usr/local/ruby/bin/rdoc…
——————————————–
Ruby Enterprise Edition is successfully installed!
If want to use Phusion Passenger (http://www.modrails.com) in combination
with Ruby Enterprise Edition, then you must reinstall Phusion Passenger against
Ruby Enterprise Edition, as follows:

/usr/local/ruby/bin/passenger-install-apache2-module

Make sure you don’t forget to paste the Apache configuration directives that
the installer gives you.

If you ever want to uninstall Ruby Enterprise Edition, simply remove this
directory:

/usr/local/ruby

If you have any questions, feel free to visit our website:

http://www.rubyenterpriseedition.com

Enjoy Ruby Enterprise Edition, a product of Phusion (www.phusion.nl)

*/

通上以上信息显示一些组件没有安装,所以运行以下命令:
/usr/local/ruby/bin/gem install passenger
/usr/local/ruby/bin/gem install rake
usr/local/ruby/bin/gem install rails -v 2.3.9
/usr/local/ruby/bin/gem install bundler

安装ruby完毕。

cd /root/software/ruby-enterprise-1.8.7-2012.02/source/ext/zlib/
/usr/local/ruby/bin/ruby extconf.rb –with-zlib-include=/usr/include/ –with-zlib-lib=/usr/lib
cd ../../
make
make install
(参考:http://www.vpsee.com/2009/11/centos-install-redmine-git/)

编译和安装 rubygems,安装 ruby mysql 支持:
先查看是否已经安装过rubygems了,/usr/local/ruby/bin/gem -v
如果已经自动安装上,就不要再装了。否则就要先安装gem
# tar zxvf rubygems-1.3.5.tgz
# cd rubygems-1.3.5

# ruby setup.rb

# /usr/local/ruby/bin/gem sources -r http://gems.rubyforge.org/
#/usr/local/ruby/bin/gem sources -a http://gems.tron.name/gems.rubyforge.org/

安装 ruby mysql 支持
# /usr/local/ruby/bin/gem install mysql
安装mysql支持出错:
Building native extensions.  This could take a while…
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.

/usr/local/ruby/bin/ruby extconf.rb
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 ***

Gem files will remain installed in /usr/local/ruby/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /usr/local/ruby/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

解决(这样执行):
/usr/local/ruby/bin/gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config
或:不安装手册
/usr/local/ruby/bin/gem install –no-rdoc –no-ri mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config

启动应用程序时,mysql驱动出错: uninitialized constant MysqlCompat::MysqlRes
解决(http://www.tmtm.org/en/mysql/ruby/,http://dev.mysql.com/downloads/ruby.html):
gem uninstall mysql
wget http://rubyforge.org/frs/download.php/44203/mysql-ruby-2.7.7.tar.gz
tar -zxvf mysql-ruby-2.7.7.tar.gz
cd mysql-ruby-2.7.7
ruby extconf.rb –with-mysql-dir=/usr/local/mysql
make
ruby ./test.rb — localhost dbusrname 123456 xhb_db
make install
cd /mnt/htdocs/xhb
mongrel_rails start -p 8000 -a 127.0.0.1

安装 ruby on rails,指定版本号。安装前先检查是否已经安装过。
#gem list | grep rails
#gem install rails -v 2.3.9
删除rails:
gem uninstall -v 3.0.0 rails
gem uninstall -v 3.0.0 actionmailer
gem uninstall -v 3.0.0 railties
gem uninstall -v 3.0.0 actionpack
gem uninstall -v 3.0.0 activerecord
gem uninstall -v 3.0.0 activemodel
gem uninstall arel
gem uninstall -v 3.0.0 activesupport

生成应用程序:
#/usr/local/ruby/bin/rails /mnt/htdocs/xhb -d mysql

# wget http://rubyforge.org/frs/download.php/76017/redmine-1.4.0.tar.gz
# /usr/sbin/adduser redmine
#mysql -u root -p
mysql> create database redmine character set utf8;
mysql> grant all on redmine.* to ‘redmine’@'localhost’ identified by ‘yourpassword’;
mysql> flush privileges;

http://www.vpsee.com/2009/11/centos-install-redmine-git/

安装和配置 Mongrel
#gem install mongrel mongrel_cluster –include-dependencies
#ln -s /usr/local/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails /usr/bin/mongrel_rails
#ln -s /usr/local/ruby/bin/mongrel_rails  /usr/local/bin/mongrel_rails

新增系统用户 mongrel,并把工程目录的权限赋予 mongrel
#adduser -r mongrel (/usr/sbin/adduser)
#chown -R mongrel:mongrel /mnt/htdocs/xhb

启动mongrel:
#cd /mnt/htdocs/xhb
#mongrel_rails cluster::configure -e production -p 8000 -N 4 -c /mnt/htdocs/xhb -a 127.0.0.1 -user mongrel -group mongrel
在当前工程的目录 config 下生成一个mongrel_cluster.yml 配置文件:
#vi config/mongrel_cluster.yml
把user:改为user:mongrel
把group:改为group:mongrel
执行下面命令就可以启动 Mongrel 集群:
#mongrel_rails cluster::start
#mongrel_rails cluster::stop

启动mongrel(mongrel_rails cluster::start)出错,mongrel.8000.log显示如下错误:
Error calling Dispatcher.dispatch # You might have expected an instance of Array.
The error occurred while evaluating nil.split
cgi_process.rb:54:in `dispatch_cgi’
解决:(http://www.pcoder.net/error-calling-dispatcher-dispatch/#axzz1p21cqkK1)
在应用程序目录下创建config/initializers/mongrel.rb文件,内容为如下代码:
================================================================================================================
if Rails.version == ’2.3.9′ && Gem.available?(‘mongrel’, Gem::Requirement.new(‘~>1.1.5′)) && self.class.const_defined?

(:Mongrel)

# Pulled right from latest rack. Old looked like this in 1.1.0 version.
#
# def [](k)
# super(@names[k] ||= @names[k.downcase])
# end
#
module Rack
module Utils
class HeaderHash < Hash
def [](k)
super(@names[k]) if @names[k]
super(@names[k.downcase])
end
end
end
end

# Code pulled from the ticket above.
#
class Mongrel::CGIWrapper
def header_with_rails_fix(options = ‘text/html’)
@head['cookie'] = options.delete(‘cookie’).flatten.map { |v| v.sub(/^\n/,”) } if options.class != String and

options['cookie']
header_without_rails_fix(options)
end
alias_method_chain :header, :rails_fix
end

# Pulled right from 2.3.9 ActionPack. Simple diff was
#
# if headers.include?(‘Set-Cookie’)
# headers['cookie'] = headers.delete(‘Set-Cookie’).split(“\n”)
# end
#
# to
#
# if headers['Set-Cookie']
# headers['cookie'] = headers.delete(‘Set-Cookie’).split(“\n”)
# end
#
module ActionController
class CGIHandler
def self.dispatch_cgi(app, cgi, out = $stdout)
env = cgi.__send__(:env_table)
env.delete “HTTP_CONTENT_LENGTH”
cgi.stdinput.extend ProperStream
env["SCRIPT_NAME"] = “” if env["SCRIPT_NAME"] == “/”
env.update({
“rack.version” => [0,1],
“rack.input” => cgi.stdinput,
“rack.errors” => $stderr,
“rack.multithread” => false,
“rack.multiprocess” => true,
“rack.run_once” => false,
“rack.url_scheme” => ["yes", "on", "1"].include?(env["HTTPS"]) ? “https” : “http”
})
env["QUERY_STRING"] ||= “”
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
env["REQUEST_PATH"] ||= “/”
env.delete “PATH_INFO” if env["PATH_INFO"] == “”
status, headers, body = app.call(env)
begin
out.binmode if out.respond_to?(:binmode)
out.sync = false if out.respond_to?(:sync=)
headers['Status'] = status.to_s
if headers['Set-Cookie']
headers['cookie'] = headers.delete(‘Set-Cookie’).split(“\n”)
end
out.write(cgi.header(headers))
body.each { |part|
out.write part
out.flush if out.respond_to?(:flush)
}
ensure
body.close if body.respond_to?(:close)
end
end
end
end

end
================================================================================================================

为了让 Mongrel 集群在每次开机都能自动启动,把 mongrel_cluster 作为服务
#mkdir /etc/mongrel_cluster
#ln -s /mnt/htdocs/xhb/config/mongrel_cluster.yml /etc/mongrel_cluster/xhb.yml
#cp /usr/local/ruby/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/
#chmod +x /etc/init.d/mongrel_cluster
#ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
#ln -s /usr/local/ruby/bin/mongrel_rails /usr/bin/mongrel_rails
#ln -s /usr/local/ruby/bin/mongrel_cluster_ctl /usr/bin/mongrel_cluster_ctl
#chkconfig –level 345 mongrel_cluster on

注:如果执行 service mongrel_cluster start 出现“/usr/bin/env: ruby: 权限不够”的错误,就要检查工程 public 下的 dispatch.*

文件用户是否有执行权限
$ chmod 755 /var/www/business/public/dispatch.cgi
$ chmod 755 /var/www/business/public/dispatch.fcgi
$ chmod 755 /var/www/business/public/dispatch.rb
将三个文件的第一行指向 ruby 的安装路径 #!/usr/local/ruby/bin/ruby
打开 /usr/bin/mongrel_cluster_ctl 文件,如果第一行代码为 #!/usr/bin/env ruby,改为 !/usr/local/ruby/bin/ruby,上面的链接已经

建立后,也可以改为 #!/usr/bin/ruby

启动 mongrel:
# /etc/init.d/mongrel_cluster start

参考:Nginx + Mongrel Cluster 在 CentOS 上部署 ROR (http://brian80s.iteye.com/blog/645251)

http://magicgod.iteye.com/blog/153779

http://www.vpsee.com/2009/11/install-nginx-mongrel-rails-on-centos/

http://www.worldhello.net/2010/06/09/1347.html

http://hi.baidu.com/ge_geshuai/blog/item/2f05eb5c3629ad4ffbf2c029.html

http://www.rubyenterpriseedition.com/download.html

http://blog.sina.com.cn/s/blog_3d4a28be0100s4u1.html

http://www.freshblurbs.com/installing-ruby-rails-3-centos-nginx

http://blog.s135.com/nginx_php_v6/

./rails server 起动ruby程序时出错
iconv.so: libiconv.so.2: cannot open shared object file: No such file or directory
解决:ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

出错:execjs/runtimes.rb:50:in `autodetect’: Could not find a JavaScript runtime
解决:http://rubyer.me/blog/740/

三、安装Nginx 0.8.46
1、安装Nginx所需的pcre库:
tar zxvf pcre-8.10.tar.gz
cd pcre-8.10/
./configure
make && make install
cd ../
或者直接用 yum install pcre pcre-devel来安装。

2、安装Nginx
tar zxvf nginx-0.8.46.tar.gz
cd nginx-0.8.46/
./configure –user=www –group=www –prefix=/usr/local/nginx –sbin-path=/usr/local/nginx/sbin/nginx –with-

http_stub_status_module –with-http_ssl_module –without-mail_pop3_module –without-mail_imap_module –without-

mail_smtp_module –with-http_realip_module
make && make install
cd ../

cd /usr/local/ruby/bin
./passenger-install-nginx-module

Configure Firewall
vi /etc/sysconfig/iptables-config
IPTABLES_SAVE_ON_STOP=“yes”
IPTABLES_SAVE_ON_RESTART=“yes”

Open Web ports:
/sbin/iptables -I INPUT -p tcp -m state –state NEW,ESTABLISHED –dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp -m state –state NEW,ESTABLISHED –dport 443 -j ACCEPT

3、创建Nginx日志目录
mkdir -p /mnt/logs
chmod +w /mnt/logs
chown -R www:www /mnt/logs

4、创建Nginx配置文件
①、在/usr/local/nginx/conf/目录中创建nginx.conf文件:
rm -f /usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf
输入以下内容:

user  www www;

worker_processes 8;

error_log  /data1/logs/nginx_error.log  crit;

pid        /usr/local/webserver/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;

events
{
use epoll;
worker_connections 65535;
}

http
{
include       mime.types;
default_type  application/octet-stream;

#charset  gb2312;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush     on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

gzip on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zone  crawler  $binary_remote_addr  10m;

server
{
listen       80;
server_name  blog.s135.com;
index index.html index.htm index.php;
root  /data0/htdocs/blog;

#limit_conn   crawler  20;

location ~ .*\.(php|php5)?$
{
#fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires      30d;
}

location ~ .*\.(js|css)?$
{
expires      1h;
}

log_format  access  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
access_log  /data1/logs/access.log  access;
}

server
{
listen       80;
server_name  www.s135.com;
index index.html index.htm index.php;
root  /data0/htdocs/www;

location ~ .*\.(php|php5)?$
{
#fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

log_format  wwwlogs  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
access_log  /data1/logs/wwwlogs.log  wwwlogs;
}

server
{
listen  80;
server_name  status.blog.s135.com;

location / {
stub_status on;
access_log   off;
}
}
}

②、在/usr/local/nginx/conf/目录中创建fcgi.conf文件:
vi /usr/local/nginx/conf/fcgi.conf
输入以下内容:
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

5、启动Nginx
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx

四、配置开机自动启动Nginx + PHP
vi /etc/rc.local
在末尾增加以下内容:
ulimit -SHn 65535
/usr/local/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx

五、优化Linux内核参数
vi /etc/sysctl.conf
在末尾增加以下内容:
# Add
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog =  32768
net.core.somaxconn = 32768

net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800

#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024  65535

使配置立即生效:
/sbin/sysctl -p

Ruby on Rails mysql数据库连接过程的中的小记录http://www.cnblogs.com/keen-allan/archive/2012/04/22/2465269.html

Nginx vhost EG:

server
{
listen       80;
server_name blog.xhuoban.com blog2.xhuoban.com;
root   /var/www/xhb;
location / {
index  index.html index.htm index.php;
access_log off;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
access_log  /var/log/nginx/Chongqing.log;
location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
include        fastcgi_params;
}
rewrite ^/(.*)-htm-(.*)$ /$1.php?$2 last;
rewrite ^/(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ /$1/show.php?itemid=$2&page=$4 last;
rewrite ^/(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ /$1/list.php?catid=$2&page=$4 last;
rewrite ^/(.*)/show/([0-9]+)/([0-9]+)?([/])?$ /$1/show.php?itemid=$2&page=$3 last;
rewrite ^/(.*)/list/([0-9]+)/([0-9]+)?([/])?$ /$1/list.php?catid=$2&page=$3 last;
rewrite ^(.*)/([a-z]+)/(.*)\.shtml$ $1/$2/index.php?rewrite=$3 last;
rewrite ^/(com)/([a-z0-9_]+)/([a-z]+)/(.*)\.html$ /company/$3/index.php?homepage=$2&rewrite=$4 last;
rewrite ^/(com)/([a-z0-9_]+)/([a-z]+)([/])?$ /company/$3/index.php?homepage=$2 last;
rewrite ^/(com)/([a-z0-9_]+)([/])?$ /index.php?homepage=$2 last;
location /status {
stub_status on;
access_log  off;
}
}

参考:
本文讲述如何在Linux/Unix平台上面搭建Nginx+Mongrel Cluster实现Rails高负载的应用。

http://rails-deployment.group.iteye.com/group/wiki/1264-nginx-mongrel-cluster-configuration-guide

启动mongrel:
/etc/init.d/mongrel_cluster start
出现以下错误
mongrel_cluster_ctl:6: command not found: mongrel_rails
解决:ln -s `find /usr/local -type f -name mongrel_rails 2>/dev/null | head -1` /usr/local/bin  (即:ln -s

/usr/local/ruby/bin/mongrel_rails  /usr/local/bin/mongrel_rails)

mongrel_rails cluster::configure -e production -p 8000 -N 4 -c /mnt/htdocs/xhb -a 127.0.0.1 -user mongrel -group mongrel

rails3.2.3 使用mongrel出错:
dependencies.rb:251:in `require’: no such file to load — dispatcher (LoadError)

http://forums.cpanel.net/f5/mongrel-issue-when-starting-ruby-applications-using-rails-3-0-case-43320-a-163993.html

ruby 1.8.7 Enterprise Edition 和 mongrel 配置时,
用gem 1.8.15会出现错误。应该使用gem 1.6.2。
(ruby 1.8.1 Enterprise + mongrel 1.1.5 + gem 1.6.2)
ruby 1.8.7 Enterprise Edition 不能使用gem 1.8.15.
如何更新到gem 1.6.2,命令:gem update –system 1.6.2

如果ruby 1.8.7 Enterprise Edition + gem 1.8.15,启动应用程序(ruby script/server)会出现如下错误:
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/local/ruby/lib/ruby/gems/1.8/gems/rails-2.3.9/lib/rails/gem_dependency.rb:21.
NOTE: Gem::SourceIndex#refresh! is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#refresh! called from /usr/local/ruby/lib/ruby/gems/1.8/gems/rails-

2.3.9/lib/rails/vendor_gem_source_index.rb:34.
NOTE: Gem::SourceIndex#load_gems_in is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#load_gems_in called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:322.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127.
NOTE: Gem::SourceIndex#initialize is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#initialize called from /usr/local/ruby/lib/ruby/gems/1.8/gems/rails-

2.3.9/lib/rails/vendor_gem_source_index.rb:100.

这时只需运行:gem update –system 1.6.2,即可。

Category: Liunx, Ruby
You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.

你可能感兴趣的:(linux)