##概要
Apacheと共に最近人気なnginxをソースからビルドして導入したいと思います。
2021年10月現在では、「1.21.3」が最新版
##ダウンロード先
ダウンロード先は
http://nginx.org/download/
で確認が可能
##注意事項
OpenSSLは、あらかじめコンパイルをしておきます。
また、includeの関係でソースが必要ですので、opensslのsrcディレクトリを指定します。
今回は「/usr/local/src/」に「openssl-1.1.1l.tar.gz」を回答したものを配置し、そのディレクトリを「--with-openssl」で指定します。
OpenSSLに関しては、「OpenSSL(1.0.x)をインストールする(ソースからコンパイル)for CentOS 7.2」を参照してください。
検証環境バージョン
ソフトウェア | バージョン |
---|---|
PCRE | 8.45 |
nginx | 1.21.3 |
OS | RockyLinux 8.4 |
##PCREのインストール
まずは、PCREをインストール
PCREは、PCRE2ではなくPCREを導入すること。
2021年1月現在では、8.44が最新版
wget --trust-server-names https://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz?ts=gAAAAABhcYSDrxoQfi9FRhQpv3QTSNRMT1wSsHXsSukcepH4gozvhyhC7ryXm8wE7NLOKBc5AWQZNxAYLPqsNNwgajFWvw2kJQ%3D%3D&r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fpcre%2Ffiles%2Fpcre%2F8.45%2Fpcre-8.45.tar.gz%2Fdownload
tar xvzf pcre-8.45.tar.gz
cd pcre-8.45
./configure
make
make install
##nginxのインストール
cd /usr/local/src
wget https://nginx.org/download/nginx-1.21.3.tar.gz
tar xvzf nginx-1.21.3.tar.gz
cd nginx-1.21.3
./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-mail \
--with-mail_ssl_module \
--with-openssl=/usr/local/src/openssl-1.1.1l
make
make install
#非推奨オプション
#--with-http_xslt_module \
#--with-ipv6 \
#--with-sha1=/usr/local \
#--with-md5=/usr/local \
/usr/sbin/nginx が存在すればコンパイル完了です。
##起動スクリプトの配置
起動スクリプトは、CentOSのRPMから拝借しましょう。
/usr/lib/systemd/system/nginx.service
cat > /usr/lib/systemd/system/nginx.service << EOF
[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/conf/nginx.conf
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
##起動スクリプトの設定
あとは、このスクリプトで起動と停止を確認
systemctl start nginx
systemctl stop nginx
systemctl enable nginx