Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

環境

  • 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

nooboolean
3年目になってしまったエンジニア。 基本自分の備忘録用として残していますが、自分と同じことに迷った人に伝わりやすい記事を書くことが目標です。わかりにくい部分があればどしどしご指摘ください。
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした