LoginSignup
10
12

More than 5 years have passed since last update.

nginx + PHP-FPMでCentOS 7にPHPの実行環境を作る

Last updated at Posted at 2019-01-13

環境

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

はじめに

nginx上でPHPの実行環境を作ってブラウザ確認までしようと思います。
nginxのインストールはこちらの記事をご覧ください↓
  - CentOS 7にnginxをインストールしてブラウザ確認するまで
CentOS 7の環境構築はこちらの記事をご覧ください↓
  - MacでVirtualBoxを使ってCentOS 7をインストールしてみた
  - VirtualBoxのネットワーク設定をいじって安全で快適な開発ができるようにした

nginxでPHPを動かすには

Apacheはインストールした時点でPHPの実行環境が整っています。
PHPはApache用に、同一プロセスで動くモジュール版というものが用意されていて、これがApacheのインストール時に一緒に入っているので、PHPのプログラムを動かすことができるのです。

それに比べて、nginxはインストールしただけではPHPのプログラムを動かせません。
なぜなら、nginx用のモジュール版は用意されていないからです。よってnginxでPHPを動かすには、CGI版のPHPを使わなくてはなりません。(ちなみに、ApacheにはCGI版もあるみたいです…!欲張りですね。)
CGI版のPHPを動かすには、PHP-CGIというものにリクエストを送らなくてはならないのですが、nginxだけだとそれができません。。。(なんでできないのかは後ほど調べよ〜っと)

ではどうするか、そこで登場するのが、PHP-FPMというプログラムです!
この、PHP-FPMがうまいこと、nginxからPHP-CGIへのリクエストをさばいてくれて、やっとPHPのプログラムが動いてくれるというわけです。

まあ、とにかくPHPをnginxで動かしたいならPHP-FPM入れなさいってことですね。

PHPのインストール

yumでチャチャっとインストール。

// インストール
# yum -y install php
// 確認
# php --version

phpの用意はこれだけで十分です。

PHP-FPMのインストールと設定

こちらもyumでインストール。

# yum -y install php-fpm

設定ファイルは、/etc/php-fpm.d/配下の、www.confというファイルです。

# vi /etc/php-fpm.d/www.conf

設定内容は以下です。

www.conf
- user = apache
- group = apache
+ user = nginx
+ group = nginx

nginxでの設定

設定ファイルは、/etc/nginx/conf.d/配下の、default.confというファイルです。

# vi /etc/nginx/conf.d/default.conf
default.conf
# ...(省略)
   location / {
        root   /usr/share/nginx/html;
        index  index.php; # index.phpを設定
    }
# ...(省略)
  # 以下の部分のコメントアウトを消す
  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; # デフォルトでは、「/scripts」となっているので、「ドキュメントルート($document_root)」に変更する
        include        fastcgi_params;
    }
# ...(省略)

表示するPHPファイルを用意

上記の設定で、ドキュメントルートを/usr/share/nginx/htmlにしていますので、/usr/share/nginx/html配下に、index.phpを作成しましょう。

# touch /usr/share/nginx/html/index.php

確認用なので、適当にechoしてみましょう。

index.php
<?php
 echo('PHP動いたよ!');
?>

ブラウザで確認

nginxとphp-fpmの設定を変えたので、両方とも再起動して設定を反映させます。

# systemstl restart nginx
# systemctl restart php-fpm
※CentOS 6 以下は、serviceコマンドを使ってください。

あとは、http://CentOSのIP:nginxで設定したポート番号/index.phpでアクセスして、ブラウザ確認できたら完了!
スクリーンショット 2019-01-14 0.20.14.png

10
12
1

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
10
12