プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

Nginx インストール(CentOS編)

ローカル開発環境に準備したLinux(CentOs)のウェブサーバーとしてNginxを設定する方法
 
 
ローカル開発の設定はこちら

ローカル開発環境構築(Windows)

 
 


■公式サイト:http://nginx.org/

 
 

①前提条件のインストール

Linuxのパケージページより下記コマンドにてCentOS用の前提条件をインストール

sudo yum install yum-utils

 
 


②リポジトリの設定

管理者権限(sudoコマンド等)で「/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-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

 
 


③mainlineパケージをデフォルトに設定

Nginxには下記2つのパケージが存在するので開発環境ならmainlineパケージをデフォルトに設定しておく

sudo yum-config-manager --enable nginx-mainline

 
 

【参考】

・Mainline:最新版(開発環境で利用)
・Stable:安定版(商用環境で利用)
 
※引用
https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/


・ Mainline – Includes the latest features and bug fixes and is always up to date. It is reliable, but it may include some experimental modules, and it may also have some number of new bugs.

・ Stable – Doesn’t include all of the latest features, but has critical bug fixes that are always backported to the mainline version. We recommend the stable version for production servers.


 
 


④Nginxインストール

sudo yum install nginx

 
※バージョン確認

nginx -v

 
 


⑤Nginx起動

sudo nginx

 
 
下記エラーが出る場合はlsofコマンドでポートが何に使用されているかを確認する

[vagrant@localhost yum.repos.d]$ sudo nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

※↑ポート80が使用されている
 
 
※lsofコマンドをインストールしていない場合は
こちらを参考にインストールしておく
Linux lsofのインストールとコマンド

 
 

lsofコマンドでポート80の使用状況を確認

[vagrant@localhost yum.repos.d]$ sudo lsof -i:80

 
 
↓「Apache」が使用していることがわかる

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   17011   root    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17019 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17020 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17021 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17022 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17023 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17024 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17025 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
httpd   17026 apache    6u  IPv6 191301      0t0  TCP *:http (LISTEN)
[vagrant@localhost yum.repos.d]$

 
 

「Apache」を停止

sudo /etc/init.d/httpd stop

 
ポート80が使用されていないことを確認

sudo lsof -i:80

 
 

再度「Nginx」を起動

sudo nginx

 
Nginxがポート80を使用していることを確認

sudo lsof -i:80

 

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   29091  root    6u  IPv4 219443      0t0  TCP *:http (LISTEN)
nginx   29094 nginx    6u  IPv4 219443      0t0  TCP *:http (LISTEN)

 
 

「http://192.168.33.10/」にアクセスして下記が表示されていればOK

 
 

※設定ファイル

設定ファイルを変更した場合は「nginx -s reload」を実行する必要がる
 
・メインの設定ファイル

/etc/nginx/nginx.conf

・各サーバー用設定ファイル

/etc/nginx/conf.d/