21
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS 7にnginxをインストールしてブラウザ確認するまで

Last updated at Posted at 2019-01-10

#環境

  • macOS 10.12.6
  • MacBook pro 2016
  • VirtualBox 5.2.18
  • CentOS 7.6-1810

#リポジトリの追加
yumコマンドでインストールします。
CentOS 7では公式のyumリポジトリにnginxがないので、まずはnginxの公式が用意しているリポジトリを追加します。
yumリポジトリ に関しては、こちらの記事をご覧ください。

###nginxの.repoファイルを作成
nginx.repo というファイル名で、 /etc/yum.repos.d/ 配下にファイルを作成してください。

# cd /etc/yum.repos.d
# touch nginx.repo

ファイルの中身を書き加えましょう。

# vi nginx.repo

.repoファイルの書き方は以下のような感じです。

nginx.repo
[nginx] # リポジトリID(なんのリポジトリなのかを表す、ユニークで任意な名前)
name=nginx repo # リポジトリ名(yum repolistで表示される)
baseurl=http://nginx.org/packages/centos/7/$basearch/ # リポジトリの場所(このurlの先のリモートにリポジトリがある)
gpgcheck=0 # GPG署名確認を有効にするか否か(0 = しない, 1 = する)
enabled=1 # yum コマンド利用時にこのリポジトリを使用するかどうか(0 = しない, 1 = する)

#yumでインストール
まずは、先ほど追加したリポジトリが反映されているかのチェック。

# yum info nginx

利用可能なパッケージ
名前                : nginx
アーキテクチャー    : x86_64
エポック            : 1
バージョン          : 1.14.2
リリース            : 1.el7_4.ngx
容量                : 754 k
リポジトリー        : nginx/x86_64
要約                : High performance web server
URL                 : http://nginx.org/
ライセンス          : 2-clause BSD-like license
説明                : nginx [engine x] is an HTTP and reverse proxy server, as well as
                    : a mail proxy server.

こんな感じでリポジトリ情報が出てくれていれば、確認OK
あとは、インストール

# yum install nginx

#Nginxの起動と停止
###nginxのポートに気をつける
yumでnginxをインストールした際、デフォルトのポートは80番になっています。
nginxと一緒にApacheも入れてどちらもデフォルトのポート番号だと、ポートが被ってしまってうまく起動してくれません。
さらに、nginxは1024よりも低いポート番号(80番とか)で起動しようとすると、エラーログ( /var/log/nginx/error.log )に以下のようなエラーが出ます。

error.log
bind() to 0.0.0.0:80 failed (13: Permission denied)

この場合、管理者権限(root権限)で、起動しなければならないみたいです。
しかし!自分の場合、sudoで実行しても、rootユーザーで実行しても全くこのエラーが解消されずでした…
なので、自分はポート番号を変えて解決しました!

###-- 2019/02/14 追記
SELinuxという標準の制御機能があるらしく、そいつの制御に引っかかって弾かれていたみたいです…(そんなのこのエラーだけじゃわからんよ…)
SELinuxの状態は以下で確認できます。

# getenforce
enforcing

・enforcing SELinux有効でありアクセス制御が有効となる
・permissive アクセス制御は無効だが警告メッセージを表示する
・disabled SELinux無効

こちらより

なので、今回はSELinuxをpermissiveにしなくてはなりませんね。
変更のやり方はこうです

# setenforce 0 //permissiveに変更
# setenforce 1 //enforcingに変更

これでどんなポートでも設定できちゃいます!!!やったー!!!

###nginxで使用するポートの変更
設定できるのが、 /etc/nginx/conf.d/default.conf のファイルです。

# vi /etc/nginx/conf.d/default.conf

以下の部分を書き換えましょう!

default.conf
server {
    listen       8080; # この部分でポート番号を変更できる
    server_name  localhost;

###起動

# systemctl start nginx

CentOS 6 以下は、serviceコマンドを使ってください。
###起動の確認

# systemctl status nginx

たくさん文字が出てきますが、Active: active (running)とどこかにあれば動いている証しです。
###停止

# systemctl stop nginx

#自動起動の設定
これは、CentOSの起動・再起動の際に一緒にnginxも起動するようにする設定です。
以下のコマンドでOK

# systemctl enable nginx

CentOS 6 以下は、chkconfigコマンドを使ってください。

#ブラウザ確認
まずは、CentOSがデフォルトでfirewalldが動いていてアクセス制御されているので、nginxで設定したポートを許容するように設定します。
これも、コマンドでできちゃいます。

# firewall-cmd --add-port=開けたいポート番号/tcp --zone=public --permanent
# firewall-cmd --reload //反映

あとは、ブラウザで http://CentOSのIPアドレス:ポート番号 を叩けば、以下の画面が表示されて完了です。
スクリーンショット 2019-01-11 3.05.10.png

21
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?