mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Nginx - Linux Mint にインストール(ソースビルド)!

[ サーバ構築 ] [ LinuxMint, Nginx ]

こんばんは。

昨日は、Linux Mint に軽量 Web サーバ Nginx をパーケージインストールする手順について記録しました。

今日は、Nginx をソースをビルドしてインストールする方法についてです。

当記事執筆時点では、

  • apt では 1.1.19 が最新。
  • 安定版ソースは 1.2.6 が最新。
  • 開発版ソースは 1.3.9 が最新。

となっているので、より新しいバージョンを使用したい場合はソースからインストールする方法を採用します。
今回は安定版ソースを使用します。

0 前提条件

  • Linux Mint 14 Nadia (64bit) での作業を想定。(前回まで Linux Mint 13 Maya でした)
  • インストール先は /usr/local とした。

1. 必要パッケージインストール

Nginx のビルドに以下のパッケージが必要なので、未インストールならインストールしておく。

1
$ sudo apt-get install gcc libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

2. アーカイブダウンロード

インストールに使用するアーカイブファイルをダインロードし、解凍する。
ダウンロード先はユーザルートとした。

1
2
$ wget http://nginx.org/download/nginx-1.2.6.tar.gz
$ tar zxvf nginx-1.2.6.tar.gz

3. インストール

configure, make, make install でビルド・インストールする。
インストール先はデフォルトでは /usr/local/nginx となるが、今後のバージョンアップのことも考慮し、バージョン別にインストール先を指定しリンクを貼るようにした。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ cd nginx-1.2.6
$ ./configure --prefix=/usr/local/nginx-1.2.6 \
--user=www-data \
--group=www-data \
--pid-path=/var/run/nginx.pid \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--lock-path=/var/run/nginx.lock \
--with-http_ssl_module \
--with-http_realip_module
$ make
$ sudo make install
$ sudo ln -s /usr/local/nginx-1.2.6 /usr/local/nginx

configure オプションについて。

  • prefix
    … nginx をインストールするディレクトリを指定する。(デフォルト: /usr/local/nginx
  • with-http_ssl_module
    … HTTPS/SSL support(デフォルト:HTTPS は無効)
  • with-http_realip_module
    … For using nginx as backend

4. インストール確認

Nginx がインストールできたか確認してみる。
-V オプションで configure オプションも確認可能。-v でバージョンだけ確認可能。

1
2
3
4
5
$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.2.6
built by gcc 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx-1.2.6 --user=www-data --group=www-data --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-http_realip_module

5. 設定

今回のインストール環境の場合、基本的(グローバル)な設定のファイルは /usr/local/nginx/conf/nginx.conf となる。
取り急ぎ、デフォルトのままとした。

6. Nginxのシステムサービス化

sudo /etc/init.d/nginx {start|stop|restart|reload} でサービスを起動できるよう /etc/init.d/nginx を作成する。
参考サイト の内容そのまま)

/etc/init.d/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
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
50
51
52
53
54
55
56
57
#! /bin/sh
# Author: Ryan Norbauer http://norbauerinc.com
# Modified: Geoffrey Grosenbach http://topfunky.com
# Modified: Clement NEDELCU
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME

# デーモンファイルが見つからなければ、スクリプトを終了する
test -x $DAEMON || exit 0

d_start() {
  $DAEMON || echo -n " already running"
}

d_stop() {
  $DAEMON -s quit || echo -n " not running"
}

d_reload() {
  $DAEMON -s reload || echo -n " could not reload"
}

case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
  ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
  ;;
  reload)
    echo -n "Reloading $DESC: configuration..."
    d_reload
    echo "reloaded."
  ;;
  restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    # 再起動の前に2秒スリープする。Nginxデーモンが穏便に終了するための時間を与えるのである。
    sleep 2
    d_start
    echo "."
  ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
    exit 3
  ;;
esac

exit 0

7. 実行権限付与

作成した /etc/init.d/nginx に実行権限を付与する。

1
$ sudo chmod +x /etc/init.d/nginx

8. サービス起動

サービスを使って Nginx を起動してみる。

1
2
$ sudo service nginx start
Starting nginx daemon: nginx.

もしくは、

1
2
$ sudo /etc/init.d/nginx start
Starting nginx daemon: nginx.

9. 起動確認

ブラウザで http://127.0.0.1/ にアクセスしてみる。
以下のような画面が表示されれば OK.

NGINX_1

10. ランレベル設定

適切なランレベルに達したときにスクリプトが自動的に実行されるようにする。
以下のようにすることで、リブート・シャットダウンレベルでは Nginx の stop が実行され、他のランレベルでは start が実行されるようになるようだ。

1
2
3
4
5
6
7
8
9
10
11
$ sudo update-rc.d -f nginx defaults
update-rc.d: warning: /etc/init.d/nginx missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/nginx ...
   /etc/rc0.d/K20nginx -> ../init.d/nginx
   /etc/rc1.d/K20nginx -> ../init.d/nginx
   /etc/rc6.d/K20nginx -> ../init.d/nginx
   /etc/rc2.d/S20nginx -> ../init.d/nginx
   /etc/rc3.d/S20nginx -> ../init.d/nginx
   /etc/rc4.d/S20nginx -> ../init.d/nginx
   /etc/rc5.d/S20nginx -> ../init.d/nginx

11. 参考サイト


これで、ローカル環境(GNU ディストリビューション)では、軽量 Web サーバ Nginx が使用できるようになりました。

以上。

Comments