nginx
CentOS
コンパイル

nginxインストール(ソースからコンパイル編)for CentOS7.2

More than 1 year has passed since last update.


概要

Apacheと共に最近人気なnginxをソースからコンパイルして導入したいと思います。

2016年9月現在では、「1.9.15」が最新版


ダウンロード先

ダウンロード先は

http://nginx.org/download/

で確認が可能


注意事項

OpenSSLは、あらかじめコンパイルをしておきます。

また、includeの関係でソースが必要ですので、opensslのsrcディレクトリを指定します。

今回は「/usr/local/src/」に「openssl-1.1.0.tar.gz」を回答したものを配置し、そのディレクトリを「--with-openssl」で指定します。

OpenSSLに関しては、「OpenSSL(1.0.x)をインストールする(ソースからコンパイル)for CentOS 7.2」を参照してください。


検証環境バージョン

ソフトウェア
バージョン

PCRE 
8.39

nginx
1.9.15

OS
CentOS 7.2


PCREのインストール

まずは、PCREをインストール

PCREは、PCRE2ではなくPCREを導入すること。

2016年9月現在では、8.39が最新版


PCREのダウンロードとインストール

wget  --trust-server-names http://downloads.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fpcre%2Ffiles%2Fpcre%2F8.39%2F&ts=1474204113&use_mirror=jaist

tar xvzf pcre-8.39.tar.gz
cd pcre-8.39
./configure
make
make install


nginxのインストール


nginxダウンロードとインストール

cd /usr/local/src

wget http://nginx.org/download/nginx-1.9.15.tar.gz
tar xvzf nginx-1.9.15.tar.gz
cd nginx-1.9.15
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--with-pcre-jit \
--with-http_addition_module \
--with-http_dav_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_sub_module \
--with-http_xslt_module \
--with-ipv6 \
--with-sha1=/usr/local \
--with-md5=/usr/local \
--with-mail \
--with-mail_ssl_module \
--with-openssl=/usr/local/src/openssl-1.0.2h
make
make install

/usr/sbin/nginx が存在すればコンパイル完了です。


起動スクリプトの配置

起動スクリプトは、CentOSのRPMから拝借しましょう。


nginx起動スクリプト配置先

/usr/lib/systemd/system/nginx.service



nginx起動スクリプト

[Unit]

Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/etc/nginx/logs/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/conf/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/confnginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target



起動スクリプトの設定

あとは、このスクリプトで起動と停止を確認


nginx起動

systemctl start nginx



nginx停止

systemctl stop nginx



nginx自動起動

systemctl enable nginx