Linux でソースから NGINX をコンパイルしてインストールする方法
Nginx は、無料のオープンソース モジュラー モデル、高いパフォーマンス、安定性、シンプルな設定ファイル、非同期アーキテクチャ (イベント駆動型)、および低リソースにより、現在インターネットに接続されているパブリック サーバーで最も急速に成長している Web サーバーです。実行するために必要です。
公式システム リポジトリはバイナリ パッケージを提供していないため、このチュートリアルでは、Nginx の最新の安定バージョンを RHEL ベースのディストリビューションにソースからインストールする方法を説明します。
ソースのインストールを回避したい場合は、公式のNginx リポジトリを追加し、示されているように yum または dnf パッケージ マネージャーを使用してバイナリ パッケージをインストールできます。
方法 1: Yum リポジトリを使用して NGINX をインストールする
nginx をインストールする前に、RHEL とその派生製品 (CentOS、Rocky Linux、AlmaLinux、Oracle Linux など) で nginx パッケージ リポジトリを有効にする必要があります。その後、リポジトリから nginx をインストールして更新できます。
まず、 図に示すようにyum-utils パッケージをインストールします。
# yum install yum-utils
nginx 公式 yum リポジトリを有効にするには、次の内容を含む /etc/yum.repos.d/nginx.repo という名前のファイルを作成します。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
次に、リポジトリからnginxをインストールして更新できます。
# yum install nginx
重要: 上記の公式 nginx yum リポジトリに従うと、古いバージョンの nginx が提供されることに注意してください。本当に最新バージョンの Nginx をビルドしたい場合は、以下に示すように、ソースのインストールに従うことをお勧めします。
ソースのコンパイルとインストールを使用すると、利用可能な最新バージョンをインストールしたり、モジュールを追加または削除して Nginx 構成を調整したり、インストール システム パスやその他の重要な設定を変更したりできるため、いくつかの利点があります。つまり、インストールプロセス。
方法 2: ソースから NGINX をコンパイルしてインストールする
Nginx のコンパイルとインストールのプロセスを開始する前に、C/C++ コンパイラ、PCRE (Perl 互換の正規表現)、 > Zlib 圧縮ライブラリとOpenSSL (SSL サポートを使用して Nxing を実行する場合) パッケージを、次のコマンドを実行してマシンにインストールします。
# yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel
Nginx ソースをダウンロード
次に、Nginx ダウンロード ページに移動し、次の wget コマンドを使用して Nginx ソース tarball の最新の安定バージョンを取得し、nginx アーカイブを抽出して、 図に示すようにNginx 抽出ディレクトリに移動します。
# wget http://nginx.org/download/nginx-1.23.4.tar.gz
tar xfz nginx-1.23.4.tar.gz
cd nginx-1.23.4
ls -all
ソースから Nginx をコンパイルする
次のステップでは、configure
ファイルを使用してNginx インストール プロセスをカスタマイズし、次のコマンドを使用して Nginx コンパイル プロセスに必要な構成オプションとモジュールを視覚化します。
# ./configure --help
次に、特定の構成と有効または無効なモジュールを使用して Nginx をコンパイルします。このチュートリアルでは、次のモジュールと仕様が使用されましたが、必要に応じてコンパイルを調整できます。
--user=nginx
– Nginx を実行するシステム ユーザーを設定します。--group=nginx
– Nginx が実行されるシステム グループを設定します。--prefix=/etc/nginx
– サーバー ファイル (nginx.conf ファイルおよびその他の設定ファイル) のディレクトリ – デフォルトは /usr/local/nginx ディレクトリです。--sbin-path=/usr/sbin/nginx
– Nginx 実行可能ファイルの場所。--conf-path=/etc/nginx/nginx.conf
– nginx.conf 構成ファイルの名前を設定します。これは変更できます。--error-log-path=/var/log/nginx/error.log
– Nginx エラー ログ ファイルの場所を設定します。--http-log-path=/var/log/nginx/access.log
– Nginx アクセス ログ ファイルの場所を設定します。--pid-path=/var/run/nginx.pid
– メイン プロセス ID ファイルの名前を設定します。--lock-path=/var/run/nginx.lock
– Nginx ロック ファイルの名前を設定します。--with-http_ssl_module
– HTTPS モジュールの構築を有効にします – デフォルトでは構築されず、OpenSSL ライブラリが必要です。--with-pcre
– PCRE ライブラリのソースへのパスを設定します – デフォルトではビルドされず、PCRE ライブラリが必要です。
すべての Nginx モジュールのリストを表示するには、http://wiki.nginx.org/Modules にある Nginx ドキュメント Web ページにアクセスしてください。
Nginx に特定のモジュールをインストールする必要がない場合は、次のコマンドを使用して無効にすることができます。
--without-module_name
次のコマンドを発行してNginx のコンパイルを開始します。これにより、上記で説明したすべての構成とモジュールが使用されます (コマンドが 1 行に収まるようにしてください)。
# ./configure --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-pcre
コンパイル プロセスでは、GNU C コンパイラ、PCRE、OpenSSL ライブラリなどのシステムに必要なユーティリティがすべて検証された後、make.conf
ファイルが作成され、すべての設定の概要が出力されます。
Configuration summary
+ using system PCRE2 library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/etc/nginx"
nginx binary file: "/usr/sbin/nginx"
nginx modules path: "/etc/nginx/modules"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/var/run/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
ソースから Nginx をビルドする
最後のステップは、make
コマンドを使用してバイナリをビルドすることです。これは、マシンのリソースによっては完了するまでに時間がかかる場合があります。次に、make を使用してシステムに Nginx をインストールします。 install
コマンド。
make install
コマンドでインストールを実行するには root 権限が必要であることに注意してください。そのため、root アカウントでログインしていない場合は、sudo を持つ特権ユーザーを使用してください。
# make
make install
インストールプロセスが正常に終了したら、nginx システムユーザー (/etc/nginx/ をホームディレクトリとし、有効なシェルを持たない) を追加します。このユーザーは Nginx の次の useradd コマンドを発行すると、次のように実行されます。
# useradd -d /etc/nginx/ -s /sbin/nologin nginx
Nginxファイルの構成
コンパイル中に、Nginx が nginx システム ユーザーから実行され、nginx.conf ファイルを開いてユーザー ステートメントを に変更するように指定しました。 >nginx。
# nano /etc/nginx/nginx.conf
OR
vi /etc/nginx/nginx.conf
ここでは、次のオプションを使用してユーザーを検索して変更し、ルートの場所のステートメントも文書化します。
user nginx;
location / {
root /var/www/html;
autoindex on;
index index.html index.htm;
Nginx を開始する前に、Web ドキュメントのルート パスが作成されていることを確認し、次のコマンドを使用して nginx を開始します。
# mkdir -p /var/www/html
/usr/sbin/nginx
シェル プロンプトを使用してNginx が実行されているかどうかを確認する場合は、netstat コマンドを実行して TCP 接続を確認します。
# netstat -tulpn | grep nginx
ファイアウォールで Nginx を開く
リモート システムから Nginx を確認するには、ポート 80 と 443 で外部への接続を開くファイアウォール ルールを追加します。
# firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
systemctl restart firewalld
最後に、ブラウザを開いて、次のサーバーの IP アドレスに URL を送信します。
http://server_IP
Nginxサービスを管理する
Nginx プロセスを管理するには、次のコマンドを使用します。
# /usr/sbin/nginx -V [show Nginx modules and configurations]
/usr/sbin/nginx -h [help options]
/usr/sbin/nginx -t [check configuration file]
/usr/sbin/nginx [start Nginx process]
/usr/sbin/nginx -s stop [stop Nginx process]
/usr/sbin/nginx -s reload [reload Nginx process]
systemd スクリプトを通じて Nginx デーモン プロセスを管理する必要がある場合は、/lib/systemd/system/nginx.service に次のファイルを作成します。その後、systemctl コマンドを使用してプロセスを管理できます。
# vi /lib/systemd/system/nginx.service
次のファイル内容を追加します。
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Nginx systemd ファイルが作成されたら、以下のコマンドを使用してデーモンを管理します。
# systemctl start nginx
systemctl stop nginx
systemctl status nginx
それだけです!これで、RHEL ベースのディストリビューションに最新バージョンのNginx がインストールされました。次のチュートリアルでは、Nginx FastCGI Gateway を介して PHP-FPM プロセス マネージャーをインストールして有効にする方法について説明します。