Λάδι Βιώσας

http://profile.hatena.ne.jp/kenkitii/

Ubuntu 10.04 TLS に nginx + passenger + sinatra を入れたメモ(1)

準備

make するのに必要なものを入れとく

sudo apt-get install build-essential zlib1g-dev libcurl4-openssl-dev

インストール

sudo gem install passenger                      
sudo env PATH=$PATH passenger-install-nginx-module                                 

ちなみにデフォルトのインストール先は、/opt/nginx になってたけど、気分悪いから /usr/local/nginx にしておいた。
で、ここにある起動スクリプトをダウンロードして /etc/init.d に保存

設定

  • nginx へのパス :/usr/local/nginx/sbin/nginx
  • pid file :/var/run/nginx.pid
  • config file: /usr/local/nginx/conf/nginx.conf
  • Document root: /home/kenkiti/nginx/helloworld # <= とりあえずテスト用てことで

こんな感じ↑で動かすつもりなので、設定ファイル等々の該当する箇所を変更する

  • /usr/local/nginx/conf/nginx.conf
user  www-data; #nobody;
worker_processes  1;

error_log  logs/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    passenger_root /var/lib/gems/1.8/gems/passenger-3.0.0;
    passenger_ruby /usr/bin/ruby1.8;

    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"';

    access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  yourhost.net;  # ここ修正
        root /home/kenkiti/nginx/helloworld/public; # ここ修正
        passenger_enabled on; # なかったら追加

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}
  • /etc/init.d/nginx
…
#------------------------------------------------------------------------------
#                               Consts
#------------------------------------------------------------------------------
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/nginx/sbin/nginx

PS="nginx"
PIDNAME="nginx"                         #lets you do $PS-slave
PIDFILE=$PIDNAME.pid                    #pid file
PIDSPATH=/var/run

DESCRIPTION="Nginx Server..."

RUNAS=root                              #user to run as

SCRIPT_OK=0                             #ala error codes
SCRIPT_ERROR=1                          #ala error codes
TRUE=1                                  #boolean
FALSE=0                                 #boolean

lockfile=/var/lock/subsys/nginx
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
…
sudo chmod a+x /etc/init.d/nginx
sudo update-rc.d -f /etc/init.d/nginx defaults

起動スクリプト自動起動設定↑にしとく。んー長くなったので、sinatra 編は次回へ続く