Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
26
Help us understand the problem. What is going on with this article?
@shadowhat

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

概要

Apacheと共に最近人気なnginxをソースからコンパイルして導入したいと思います。
2020年7月現在では、「1.19.1」が最新版

ダウンロード先

ダウンロード先は
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.44
nginx 1.19.6
OS CentOS 8.2

PCREのインストール

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

PCREは、PCRE2ではなくPCREを導入すること。
2021年1月現在では、8.44が最新版

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.42.tar.gz
cd pcre-8.42
./configure
make
make install

nginxのインストール

nginxダウンロードとインストール
cd /usr/local/src
wget https://nginx.org/download/nginx-1.19.6.tar.gz
tar xvzf nginx-1.19.6.tar.gz
cd nginx-1.19.6
./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.1i
make
make install

#非推奨オプション
#--with-http_xslt_module \
#--with-ipv6 \
#--with-sha1=/usr/local \
#--with-md5=/usr/local \

/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/conf/nginx.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
26
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
shadowhat
Nutanix製品とLinux/SolarisついでにWindows Serverが好きなプリセールスエンジニア。最近はIPv6な日々を過ごしています。 Linuxでは、ソースコンパイルからのプログラムインストールをモットーとして、なるべくパッケージを利用しない方法を常に模索中。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
26
Help us understand the problem. What is going on with this article?