CentOS環境におけるNginxのインストール、基本的な操作コマンド、およびsystemctlを用いたサービス管理、さらにはアンインストール方法について解説します。
1. Nginxのインストール
NginxはC言語で記述されているため、コンパイルに必要な開発ツールをまずインストールします。
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
次に、Nginxのソースコードをダウンロードします。
yum install wget -y
wget https://nginx.org/download/nginx-1.16.1.tar.gz
ダウンロードしたアーカイブファイルを展開します。
tar -zxvf nginx-1.16.1.tar.gz
展開されたnginxディレクトリを/usr/local/に移動させます。
mv nginx /usr/local/
/usr/local/nginx/ディレクトリに移動し、コンパイル設定を行います。
cd /usr/local/nginx/
./configure
コンパイルとインストールを実行します。
make && make install
インストールされたディレクトリ構造を確認するにはtreeコマンドが便利です。もしtreeコマンドがインストールされていない場合は、以下でインストールできます。
yum install tree -y
tree /usr/local/nginx/
主要なディレクトリとファイルは以下の通りです。
conf/: 設定ファイル格納ディレクトリ。conf/nginx.conf: Nginxのコア設定ファイル。html/: 静的コンテンツ(HTML, CSSなど)を配置するディレクトリ。logs/: Nginxのアクセスログやエラーログが格納されるディレクトリ。sbin/nginx: Nginxサービスを起動・停止するための実行ファイル。
2. Nginxの基本操作コマンド
/usr/local/nginx/sbin/ディレクトリにあるnginx実行ファイルとオプションを組み合わせて、Nginxの操作を行います。
2.1. バージョンの確認
/usr/local/nginx/sbin/nginx -v
2.2. 設定ファイルの構文チェック
nginx.confファイルを変更した後に、構文エラーがないか確認します。
/usr/local/nginx/sbin/nginx -t
2.3. Nginxの起動
/usr/local/nginx/sbin/nginx
起動後、ps aux | grep nginxコマンドでプロセスが実行されていることを確認できます。通常、Nginxはマスタープロセスとワーカープロセスの2つで動作します。
Nginxへのアクセスを可能にするためには、ファイアウォール設定が必要です。
- ファイアウォールを停止する場合:
systemctl stop firewalld - ポート80を開放する場合:
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
2.4. Nginxの停止
/usr/local/nginx/sbin/nginx -s stop
停止後、ps aux | grep nginxコマンドでプロセスが終了していることを確認します。
2.5. 設定ファイルの再読み込み
設定ファイルを変更した場合、サービスを停止せずに設定を反映させるためにリロードします。
/usr/local/nginx/sbin/nginx -s reload
2.6. 環境変数の設定
毎回sbinディレクトリに移動せずにNginxコマンドを実行できるように、環境変数を設定します。
/etc/profileファイルを編集し、以下の行を追加します。
export PATH=$PATH:/usr/local/nginx/sbin
変更を反映させるために、以下のコマンドを実行します。
source /etc/profile
これにより、どのディレクトリからでもnginxコマンドを実行できるようになります。
3. systemctl を使用したNginxサービスの管理
systemctlコマンドを利用することで、Nginxサービスをより系統的に管理し、システムの起動時に自動起動させる設定も可能です。
3.1. Nginxサービスユニットファイルの作成
systemd用のサービスユニットファイルを作成します。
cd /lib/systemd/system/
touch nginx.service
vim nginx.service
3.2. ユニットファイルの設定
nginx.serviceファイルに以下の内容を記述します。
[Unit]
Description=nginx Web Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]セクション: サービスの説明と起動順序を指定します。[Service]セクション: サービスの実行コマンド、リロードコマンド、停止コマンドなどを定義します。Type=forkingはバックグラウンドで実行されるサービスを示します。[Install]セクション: システム起動時のターゲットを指定します。multi-user.targetは通常のマルチユーザーモード(ランレベル3)を意味します。
3.3. systemd 設定の再読み込み
新しいサービスユニットファイルをsystemdに認識させるために、設定を再読み込みします。
systemctl daemon-reload
3.4. Nginxサービス管理コマンド
- Nginxサービスのステータス確認:
systemctl status nginx.service - Nginxサービスの起動:
systemctl start nginx.service - Nginxサービスの停止:
systemctl stop nginx.service - Nginxサービスの再起動:
systemctl restart nginx.service - Nginx設定の再読み込み(設定変更を即時反映):
systemctl reload nginx.service
3.5. システム起動時の自動起動設定
- Nginxをシステム起動時に自動起動させる場合:
systemctl enable nginx.service - 自動起動を無効にする場合:
systemctl disable nginx.service
4. Nginxのアンインストール
Nginxをアンインストールする手順は以下の通りです。
まず、Nginxが実行中か確認します。
ps aux | grep nginx
実行中の場合は、停止します。
nginx -s stop
# またはプロセスを直接kill
pkill nginx
# またはプロセスIDを指定してkill
# kill -9 <PID>
Nginxに関連するファイルを検索します。
find / -name nginx
検索結果に基づき、Nginx関連のファイルを削除します。注意して実行してください。
rm -rf /usr/local/nginx*
# 必要に応じて、findコマンドで再度検索し、関連ファイルを削除
find / -name nginx* | xargs rm -rf
依存関係としてインストールされたパッケージがあれば、それらを削除します。
yum remove nginx