すげえ分かりやすい。

install options

インストール

1
2
3
4
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.0.0.tar.gz
tar zxvf nginx-1.0.0.tar.gz
cd nginx-1.0.0
1
2
3
Nginxはコンパイル時にしか拡張モジュールの組み込みができないので、
ビルドの過程はシェルスクリプトの形で残しておいた方が良い。
http://wp.serpere.info/archives/1799   CentOS 5にNginxをインストールする | へびにっき] (リンク切れ)

を習って元エントリスクリプトを自分用に修正。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/sh

NGINX=nginx-1.0.0
SOURCE_DIR=/usr/local/src
id nginx || sudo useradd -s /sbin/nologin -d /usr/local/nginx -M nginx

cd $SOURCE_DIR/$NGINX 
[ -e "$SOURCE_DIR/$NGINX/Makefile" ] && make clean 
./configure \
  --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/ \
&& make

1
$SOURCE_DIR/$NGINX/hogehoge.sh

として配置してはじいてあげる。

1
2
3
sh hogehoge.sh
make install
mkdir -p /var/tmp/nginx/{proxy,client,fcgi}

とするとな。

nginx.conf 編集

1
 --conf-path=/etc/nginx/nginx.conf

としたとおり、

/etc/nginx/nginx.conf

を編集する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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"';

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  example.com;

        access_log  /path/to/access.log  main;
	    error_log   /path/to/access.log;

        location / {
            root   /path/to/example.com/DocumentRoot;
            index  index.php index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ /\.ht {
            deny  all;
        }
    }

}

としたとしようや。

1
root   /path/to/example.com/DocumentRoot;

がhttpd.confの

1
DocumentRoot /path/to/example.com/DocumentRoot

なので、それなりにディレクトリ作ったらいいよ。

という対応ですね。

起動

  • /usr/local/nginx/sbin/nginx がそれ
    • /usr/local/nginx/sbin/nginx で実行
    • /usr/local/nginx/sbin/nginx -s stop で停止
    • /usr/local/nginx/sbin/nginx -s reload で再読込
      • /usr/local/nginx/sbin/nginx -h
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
nginx: nginx version: nginx/1.0.0
nginx: Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

なんで /usr/local/nginx/sbin/nginx に配置されるかっていうと InstallOptions - Nginx Communityにある、

1
2
--prefix=path - defines a directory that will keep server files. This same directory will also be used for all relative paths set by configure (except for paths to libraries sources) and in the nginx.conf configuration file. It is set to the /usr/local/nginx directory by default. 
--sbin-path=path - sets the name of an nginx executable file. This name is used only during installation. By default the file is named prefix/sbin/nginx. 

だからですね。

  • –prefix=
  • –sbin-path=

ともに無指定だったため、デフォルトでインストールされたということ。

確認

1
2
3
# ps -ef|grep nginx |grep -v grep
nginx     5497  6044  0 04:47 ?        00:00:00 nginx: worker process      
root      6044     1  0 00:34 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
1
echo "Hello nginx" > /path/to/example.com/DocumentRoot/index.html

とかね。ゾンザイだけども。