centos 6 ruby on rails(nginx+unicorn)のインストール(環境依存の確立)
6789 ワード
.
1.
su root ***
yum -y install gcc
yum install flex autoconf zlib curl zlib-devel curl-devel bzip2 bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel
gcc+ gcc-c++ libxml2 libxml2-devel libxslt libxslt-devel
( : , rails )
2. ruby
wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
tar -zxvf ruby-1.9.2-p0.tar.gz
cd ruby-1.9.2-p0
./configure --prefix=/usr/local/ruby
make
make test
make install
3.ruby gem list
ERROR: Loading command: list (LoadError)
no such file to load -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::Commands::ListCommand
:
sudo apt-get install zlib1g-dev
(2) ext/zlib ( ruby1.9.2 )
sudo ruby extconf.rb ( )
make
sudo make install
4. sudo: ruby: command not found
:
sudo ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
sudo ln -s /usr/local/ruby/bin/gem /usr/bin/gem
5. gem install rails
6. mysql
mysql
yum install mysql-server
yum install mysql
yum install mysql-devel
mysql ,
mysql -u root -p
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('new-password') WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql service
/etc/init.d/mysqld restart
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/ var/lib/mysql/mysql.sock' (2)
sudo /etc/init.d/mysqld start
7. git
yum install git-core
ssh-keygen -t rsa
, :
chmod 777 id_rsa id_rsa.pub
8.
(1).rails , ~/
mkdir projects && cd ..
git clone [email protected]:entos.git
cd entos
git checkout develop
bundle install
mv config/database.yml.example database.yml
(2)
vi config/database.yml edit root# password
,
bundle exec rake RAILS_ENV=production db:create:all
bundle exec rake RAILS_ENV=production db:migrate
(3)
rails s
rails
:localhost:3000
(4) :
a :errors:libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
:sudo yum install -y libxml2 libxml2-devel libxslt libxslt-devel ( -y , )
b :make: g++: Command not found
: yum -y install gcc+ gcc-c++
c : no such file to load -- openssl (LoadError)
: cd ~/Downloads/ruby-1.9.2-p180/ext/openssl (assuming you extracted the ruby tar to ~/Downloads)
$ ruby extconf.rb && make && sudo make install
9. nginx+unicorn :
(1) install nginx
wget http://nginx.org/download/nginx-1.0.10.tar.gz
sudo ./configure --prefix=/usr/local/nginx
make && make install
:sudo /usr/local/nginx/sbin/nginx
:sudo /usr/local/nginx/sbin/nginx -s stop
:sudo /usr/local/nginx/sbin/nginx -s reload
(2)
./configure: error: the HTTP rewrite module requires the PCRE library.
pcre-devel
yum -y install pcre-devel
(3) Unicorn
gem install unicorn
unicorn
curl -o config/unicorn.rb https://raw.github.com/defunkt/unicorn/master/examples/unicorn.conf.rb
:
vi config/unicorn.rb
app_path="/home/dong/projects/entos"
working_directory app_path # available in 0.94.0+
listen app_path+"/tmp/nginx/sockets/unicorn.sock", :backlog => 64 (/tmp/nginx/sockets , :unicorn.sock , unicorn_rails , *.sock)
listen 8080, :tcp_nopush => true
timeout 30
pid app_path+"/tmp/pids/unicorn.pid"
stderr_path app_path+"/log/unicorn.stderr.log"
stdout_path app_path+"/log/unicorn.stdout.log"
( log unicorn.stderr.log ,unicorn.stdout.log, )
touch log/unicorn.stderr.log
touch log/unicorn.stdout.log
unicorn_rails
unicorn_rails config/unicorn.rb -E production -D
sudo gedit /usr/local/nginx/conf/nginx.conf
:
user root root;
http{
upstream unicorn_server {
server unix:/home/dong/projects/entos/tmp/nginx/sockets/unicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name www.entsea.com;
root /home/dong/projects/entos/public;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
proxy_pass http://unicorn_server; # , : nginx 403 Forbidden ,
}
}
}
,
vim /etc/hosts
127.0.0.1 www.entsea.com
: www.entsea.com
10.centos
yum install "@Chinese Support"
Preferences-Input method- ...