VPSにnginxをインストールしよう

Webサーバーとして、Apacheではなくnginxを使う事例が増えています。今回は、VPSにnginxをインストールして、Webサーバーとして動作させる方法を紹介します。

 

 

■Apacheに代わる高速Webサーバー「nginx」

■Apacheの停止

■nginxのインストール

■php-fpmのインストールと設定

■nginxとphp-fpmの起動

■nginxとphp-fpmの動作の確認

 

 

 

■Apacheに代わる高速Webサーバー「nginx」

Webサーバーのソフトはいくつかあります。以前はApacheが高いシェアを占めていましたが、ここ数年は「nginx」が伸びています。

nginxは軽量なWebサーバーで、Apacheと比べて動作が速い特徴があります。また、多数のアクセスをさばくことを考慮した設計になっていて、多くのユーザーがアクセスしてくるようなWebサイトを作る際に役立ちます。

 

 

■Apacheの停止

以前の記事でWebサーバーとしてApacheをインストールしましたが、nginxを使う場合はApacheとバッティングしますので、基本的にはApacheは停止しておきます。

次のコマンドを実行して、現在起動しているApacheを停止し、またインスタンス起動時にApacheが自動起動しないようにします。

 

リスト Apacheの停止

sudo service httpd stop
sudo chkconfig httpd off

 

 

■nginxのインストール

nginxはyumコマンドでインストールすることができます。ただし、CentOS標準のリポジトリではなく、nginx公式のリポジトリからインストールします。

 

・リポジトリの作成

まず、次のコマンドを実行して、nanoでリポジトリのファイルを新規作成します。

 

リスト nginxのリポジトリの作成

sudo nano /etc/yum.repos.d/nginx.repo

 

そして、次のリストを入力して保存します。

 

リスト nginxのリポジトリの設定

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=0

 

・yumコマンドでのインストール

リポジトリを作成したら、次のyumコマンドでnginxをインストールします。

 

リスト nginxのインストール

sudo yum -y --enablerepo=nginx install nginx

 

 

■php-fpmのインストールと設定

nginxでPHPのWebアプリケーションを動作させるには「php-fpm」というソフトを組み合わせます。

 

・php-fpmのインストール

php-fpmをインストールする前に、まずPHPをインストールしておきます。この手順は、「まずはここから!VPSでWebサーバーを構築しよう」の記事を参照してください。
この後、php-fpmをインストールします。PHP 5.6をインストールした場合は、次のコマンドを実行します。

 

リスト php-fpmのインストール(PHP 5.6の場合)

sudo yum -y --enablerepo=remi-php56,remi install php-fpm

 

また、PHP 7.0をインストールした場合は、次のコマンドを実行します。

 

 

リスト php-fpmのインストール(PHP7.0の場合)

sudo yum -y --enablerepo=remi-php70,remi install php-fpm

 

・php-fpmの有効化

php-fpmのインストールが終わったら、nginxの設定ファイルを書き換えて、php-fpmが動作するように設定します。
まず、次のコマンドを実行して、nginxの「default.conf」という設定ファイルをnanoで開きます。

 

リスト default.confファイルを開く

sudo nano /etc/nginx/conf.d/default.conf

 

default.confの中に、「index」という設定を行う行があります。この行では、ディレクトリのインデックスページとみなすファイルの名前を指定します。次のリストの赤字のように、「index.php」を追加して、index.phpもインデックスページとみなすようにします。

 

リスト インデックスページの設定

location / {

      root   /usr/share/nginx/html;

      index index.php index.html index.htm;

}

 

default.confをさらに下にスクロールしていくと、php-fpmを動作させる部分がコメントアウトされた状態になっています。行の先頭にある「#」を削除して、php-fpmの設定を有効化します。
また、「root」の行では、ドキュメントルートのディレクトリ名を「html」から「/usr/share/nginx/html」に書き換えます。さらに、「fastcgi_param」の行で、途中にある「/scripts」を「$document_root」に書き換えます。最終的に、次のリストの赤字の行と同じになるようにします。

 

 

リスト php-fpmを有効化する

server {

     listen       80;

     server_name  localhost;

・

・(途中略)

・

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php$ {

            root           /usr/share/nginx/html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

    }

 

    # deny access to .htaccess files, if Apache's document root

・

・(以後略)

・

 

設定の書き換えが終わったら、nanoを終了してdefault.confファイルを保存します。

 

・php-fpmの起動ユーザーの指定

次に、php-fpmの設定ファイルを書き換えて、php-fpmが起動される際のユーザーを変えます。初期状態では「apache」になっていますので、「nginx」に変えます。

まず、次のコマンドを実行して、php-fpmの設定ファイルを開きます。

 

リスト php-fpmの設定ファイルを開く

sudo nano /etc/php-fpm.d/www.conf

 

次に、Ctrl+Fキーを押して検索する状態にし、「user = apache」の行を検索します。そして、見つかった行の「apache」を「nginx」に書き換えます。

さらに、再度検索する状態にして、「group = apache」の行を検索します。こちらでも、「apache」を「nginx」に書き換えます。

 

リスト 設定ファイルで書き換える箇所(赤字の部分)

; Unix user/group of processes

; Note: The user is mandatory. If the group is not set, the default user's group

;       will be used.

; RPM: apache Choosed to be able to access some dir as httpd

user = nginx

; RPM: Keep a group allowed to write in log dir.

group = nginx

 

 

■nginxとphp-fpmの起動

ここまでで、nginxとphp-fpmの最低限の設定が終わりました。次のコマンドを実行して、nginxとphp-fpmを起動し、またインスタンスの起動時にnginxとphp-fpmを自動起動するようにします。

 

リスト nginxとphp-fpmの起動

sudo service php-fpm start

sudo service nginx start

sudo chkconfig php-fpm on

sudo chkconfig nginx on

 

 

■nginxとphp-fpmの動作の確認

nginxを起動したら、「http://インスタンスのIPアドレス/」にアクセスして、nginxのページが表示されることを確認します(図1)。例えば、インスタンスのIPアドレスが「123.45.67.89」の場合だと、「http://123.45.67.89/」にアクセスします。

また、DNSの設定でIPアドレスをドメインに結び付けている場合は、「http://ドメイン名/」でアクセスすることもできます。

 

図1 nginxのページ

図1 nginxのページ

 

次に、PHPの動作を確認します。まず、次のコマンドを実行して、nginxのドキュメントルートにphpinfo.phpというファイルを新規作成します。

 

リスト phpinfo.phpファイルの新規作成

sudo nano /usr/share/nginx/html/phpinfo.php

 

nanoが起動しますので、次の行を入力し、ファイルを保存してnanoを終了します。

 

リスト nanoに入力する行

<?php phpinfo(); ?>

 

そして、「http://インスタンスのIPアドレス(またはドメイン名)/phpinfo.php」にアクセスして、PHPの情報が表示されることを確認します。例えば、インスタンスのIPアドレスが「123.45.67.89」の場合だと、「http://123.45.67.89/phpinfo.php」にアクセスします。

PHPの情報が表示されたら、次のコマンドを実行して、phpinfo.phpファイルは削除しておきます。

 

リスト phpinfo.phpファイルの削除

sudo rm /usr/share/nginx/html/phpinfo.php

 

 

これ以後は、/usr/share/nginx/htmlディレクトリにHTMLやPHPなどのファイルを作成することで、nginxでWebサイトを運用することができます。

 

 

 

 

うちだ
サービスクリエーション本部所属        (監修:とみなが)       

オススメ記事

関連サービス

VPS VPSクラウド