LoginSignup
18
19

More than 5 years have passed since last update.

Nginxインストール

Posted at

CentOSへのインストール手順になります。

# cat /etc/redhat-release
CentOS release 6.6 (Final)

必要なパッケージ

pcre

# yum -y install pcre pcre-devel

zlib

# yum -y install zlib zlib-devel

openssl

# yum -y install openssl openssl-devel

Nginxインストール

ユーザ作成

# useradd -s/sbin/nologin -d/usr/local/nginx -M nginx

ソースダウンロード、展開

# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.7.7.tar.gz
# tar zxvf nginx-1.7.7.tar.gz

configure

  • --with-http_ssl_moduleでデフォルトで無効なモジュールを有効
# ./configure --prefix=/usr/local/nginx-1.7.7 --with-http_ssl_module
# make
# make install

シンボリックリンク

  • バージョンを変える用。
# cd /usr/local
# ln -s nginx-1.7.7 nginx

起動スクリプト。

# vi /etc/init.d/nginx
!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

#nginx="/usr/sbin/nginx"
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

#NGINX_CONF_FILE="/etc/nginx/nginx.conf"
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -z "`grep $user /etc/passwd`" ]; then
       useradd -M -s /bin/nologin $user
   fi
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac
# chkconfig --add /etc/init.d/nginx
# chkconfig nginx on

設定ファイルの確認

# /etc/init.d/nginx configtest
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

起動

# /etc/init.d/nginx start

サードパーティモジュールのインストール

HttpEchoModule

# cd /usr/local/src
# wget https://github.com/openresty/echo-nginx-module/archive/v0.56.tar.gz
# tar zxvf v0.56.tar.gz
# ls echo-nginx-module-0.56

--add-module

# cd /usr/local/src
# ./configure --prefix=/usr/local/nginx-1.7.7 --with-http_ssl_module --add-module=../echo-nginx-module-0.56
# make
# make install
18
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
19