前提手順
rbenv – rails 環境作成 » # watch -d tail /var/log/ngsw.log
参考URL
nginxとPassengerでRailsアプリを動かしたよ – Umeyashikiの日記
手順
nginx Configuration options
# nginx -V
nginx: nginx version: nginx/1.1.7 nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-51) nginx: TLS SNI support disabled nginx: configure arguments: --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
gem install passenger (rbenv)
$ gem install passenger
$ cd ~/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/
$ tree -a ~/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/bin
/home/USER/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/bin |-- passenger |-- passenger-config |-- passenger-install-apache2-module |-- passenger-install-nginx-module |-- passenger-make-enterprisey |-- passenger-memory-stats `-- passenger-status 0 directories, 7 files
install nginx module
$ ./passenger-install-nginx-module
1st
curl-devel が足りませんでした
Welcome to the Phusion Passenger Nginx module installer, v3.0.11. This installer will guide you through the entire installation process. It shouldn't take more than 5 minutes in total. Here's what you can expect from the installation process: 1. This installer will compile and install Nginx with Passenger support. 2. You'll learn how to configure Passenger in Nginx. 3. You'll learn how to deploy a Ruby on Rails application. Don't worry if anything goes wrong. This installer will advise you on how to solve any problems. Press Enter to continue, or Ctrl-C to abort. -------------------------------------------- Checking for required software... * GNU C++ compiler... found at /usr/bin/g++ * The 'make' tool... found at /usr/bin/make * A download tool like 'wget' or 'curl'... found at /usr/bin/wget * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... found at /home/USER/.rbenv/versions/1.9.3-p0/bin/rake * rack... found * Curl development headers with SSL support... not found #curl-devel がない * OpenSSL development headers... found * Zlib development headers... found Some required software is not installed. But don't worry, this installer will tell you how to install them. Press Enter to continue, or Ctrl-C to abort. <br /> <ul> <li></li> </ul> Installation instructions for required software * To install Curl development headers with SSL support: Please run yum install curl-devel as root. #curl-devel をインストールしなさいね If the aforementioned instructions didn't solve your problem, then please take a look at the Users Guide: /home/USER/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/doc/Users guide Nginx.html
yum install curl-devel.x86_64
Installed: curl-devel.x86_64 0:7.15.5-9.el5_7.4 Dependency Installed: libidn-devel.x86_64 0:0.6.5-1.1 Complete!
2nd
nginx re-install
# diff -U0 ../nginx117/nginx_configure117.sh nginx_configure1112.sh
--- ../nginx117/nginx_configure117.sh 2011-11-12 11:07:47.000000000 +0900 +++ nginx_configure1112.sh 2012-01-08 00:26:47.000000000 +0900 @@ -3,2 +3,2 @@ -NGINX=nginx-1.1.7 -SOURCE_DIR=/usr/local/src/NGINX/nginx117 +NGINX=nginx-1.1.12 +SOURCE_DIR=/usr/local/src/NGINX/nginx1112 @@ -9,0 +10 @@ + --prefix='/usr/local/nginx' \ @@ -23,0 +25,2 @@ + --with-cc-opt='-Wno-error' \ + --add-module='/home/USER/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/nginx' \
/usr/local/src/NGINX/nginx1112/nginx_configure1112.sh
- ./configure ごにょごにょ && make
#!/bin/sh NGINX=nginx-1.1.12 SOURCE_DIR=/usr/local/src/NGINX/nginx1112 id nginx || sudo useradd -s /sbin/nologin -d /usr/local/nginx -M nginx cd $SOURCE_DIR/$NGINX [ -e "$SOURCE_DIR/$NGINX/Makefile" ] &amp;&amp; make clean ./configure \ --prefix='/usr/local/nginx' \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --user=nginx \ --group=nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-http_realip_module \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/tmp/nginx/client/ \ --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ --with-cc-opt='-Wno-error' \ --add-module='/home/USER/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/nginx' \ && make
# /usr/local/nginx/sbin/nginx -s stop
# cd /usr/local/src/NGINX/nginx1112/nginx-1.1.12
# make install
# /usr/local/nginx/sbin/nginx
# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.1.12 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-51) TLS SNI support disabled configure arguments: --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --with-cc-opt=-Wno-error --add-module=/home/USER/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11/ext/nginx
ここまではあんま関係ないですね。
さて rails が以下のように配置されていたとして
/path/to/rails_root |-- Gemfile |-- Gemfile.lock |-- README |-- Rakefile |-- app |-- config |-- config.ru |-- db |-- doc |-- lib |-- log |-- public |-- script |-- test |-- tmp `-- vendor
nginx の設定ファイルは以下のようにした。
/etc/nginx/conf.d/rails.conf
#rails.conf
server {
listen 80;
server_name aaa.to;
access_log /var/log/nginx/aaa.to/access.log main;
error_log /var/log/nginx/aaa.to/error.log;
location / {
root /path/to/rails_root/public;
passenger_enabled on;
index index.html index.htm;
rails_env development;
}
}
/etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#passenger
passenger_root /home/USER/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/passenger-3.0.11;
passenger_ruby /home/USER/.rbenv/shims/ruby;
#passenger
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name __default;
}
#include_zone
include /etc/nginx/conf.d/rails.conf;
#include_zone
}
うごいた!!