WebサーバーNginxのインストール




1年以上前に更新された記事です。
情報が古い可能性がありますので、注意してください。

apt-getでインストールがお手軽で簡単だが、バージョンが古いのでソースからインストールする。なお、nginxのバージョンは下記のようになっており、奇数バージョンは定期的に新しい機能が追加され、偶数バージョンは重要な問題がない限り更新されません。

奇数バージョン(1.11)メインラインの分岐です。このブランチは積極的に開発されています。新しいマイナーリリースは(1.11.1、1.11.2等)定期的に新しい機能を導入し、約4〜6週ごとに作られています。

偶数バージョン(1.10)当社の安定版ブランチです。このブランチはnginxの開発の最前線に滞在したくないユーザーのために提供されており、重要な問題が修正される必要がある場合にのみ更新されます。例えば、昨年は、ただ1つのマイナーリリースは1.8 stableブランチに行われました。

準備

必要なパッケージをインストールする。

$ sudo apt-get install gcc checkinstall libpcre3-dev zlib1g-dev libssl-dev libxslt1-dev libgd-dev libgeoip-dev

コンパイル

$ cd /opt
$ sudo wget http://nginx.org/download/nginx-1.10.0.tar.gz
$ sudo tar zxvf nginx-1.10.0.tar.gz
$ cd nginx-1.10.0
$ sudo ./configure --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' \
  --with-ld-opt=-Wl,-z,relro \
  --prefix=/usr/share/nginx \
  --sbin-path=/sbin/nginx \
  --conf-path=/etc/nginx/nginx.conf \
  --http-log-path=/var/log/nginx/access.log \
  --error-log-path=/var/log/nginx/error.log \
  --lock-path=/var/lock/nginx.lock \
  --pid-path=/run/nginx.pid \
  --http-client-body-temp-path=/var/lib/nginx/body \
  --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
  --http-proxy-temp-path=/var/lib/nginx/proxy \
  --http-scgi-temp-path=/var/lib/nginx/scgi \
  --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
  --with-debug \
  --with-pcre-jit \
  --with-ipv6 \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-http_realip_module \
  --with-http_auth_request_module \
  --with-http_addition_module \
  --with-http_dav_module \
  --with-http_geoip_module \
  --with-http_gzip_static_module \
  --with-http_image_filter_module \
  --with-http_v2_module \
  --with-http_sub_module \
  --with-http_xslt_module
$ sudo make

パッケージ作成

$ sudo checkinstall --install=no

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software is released under the GNU GPL.


The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: y

Preparing package documentation...OK

Please write a description for the package.
End your description with an empty line or EOF.
>>(エンター)

*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values:

0 -  Maintainer: [ root@minibian ]
1 -  Summary: [ Package created with checkinstall 1.6.2 ]
2 -  Name:    [ nginx ]
3 -  Version: [ 1.10.0 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ armhf ]
8 -  Source location: [ nginx-1.10.0 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ nginx ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue:(エンター)

インストール

$ sudo dpkg -i nginx_1.10.0-1_armhf.deb

起動スクリプト

起動スクリプトは、下記を参考に作成。
Debian/Ubuntu Nginx init Script (opt)

$ sudo vi /etc/init.d/nginx
#! /bin/sh
 
### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/sbin/nginx
DAEMON_OPTS=
NAME=nginx
DESC=nginx
 
test -x $DAEMON || exit 0
 
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi
 
set -e
 
case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /var/run/nginx.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /var/run/nginx.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /var/run/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/nginx.pid \
          --exec $DAEMON
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac
 
exit 0
$ sudo chmod +x /etc/init.d/nginx

その他、ポート開放、必要なディレクトリや起動スクリプトの登録を行う。

$ sudo ufw allow 80
$ sudo mkdir /var/log/nginx
$ sudo mkdir /var/lib/nginx
$ sudo systemctl enable nginx

確認

$ sudo service nginx start

サービスを起動させ、サーバーIP へブラウザで接続する。
ページが表示されれば、無事インストール成功。
nginx

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です