TECH
[CloudGarage]

CloudGarageでサーバセットアップ【その3:nginxとPHP-FPMを連携させる】

TECH
中津川 篤司

インスタンスを簡単に立ち上げられるCloudGarageですが、立ち上げただけでは意味がありません。このインスタンスを使って開発を行っていかなければなりません。とは言え、自分の作りたいものはあるのに、セットアップで色々と時間が取られるのは面倒なはずです。

慣れてきたらKUSANAGI/CentOS-7.3-64bitなどのイメージから選択しても良いですが、まずは自分でイチから作業してみると何かトラブルがあってもリカバリーできるようになります。サーバの動きを掴んでおくと、後々役立つことも多いでしょう。

前回はHTTPサーバを立ち上げるところまでいきましたので、今回はPHPを使えるようにします。

nginxとPHPの組み合わせについて

PHPを手軽に使おうと思うとApache + mod_phpという組み合わせが一番簡単でしょう。しかし最近ではHTTPサーバとしてより高速なnginxとPHP-FPMを組み合わせるケースが増えています。FPMとはFastCGI Process Managerの略です。FastCGIは実行プロセスを常時立ち上げておくことで実行速度を高速化する技術です。PHP-FPMを用いることで、nginx上でも高速なPHP実行環境が手に入ります。

PHP-FPMをインストールする

インストールはaptで行えます。

sudo sudo apt-get install -y php php-fpm

そして起動します。

sudo service php7.0-fpm start

これでPHP側の準備は完了です。設定ファイルである /etc/php/7.0/fpm/pool.d/www.conf を見ると、次のように書かれています。

user = www-data
listen = /run/php/php7.0-fpm.sock

この二つの情報を覚えておきます。

nginxの設定

nginxの設定ファイルを編集します。ファイルは /etc/nginx/conf.d/default.conf です。 〜.php というアクセスがあると location ~ [^/]\.php(/|$) { 以下の設定が適用されます。ファイル名を取得して $document_root$fastcgi_script_name というPHPファイルを実行します。 $document_root は root で定義されている /usr/share/nginx/html/ です。

server {
    listen       80;
    # 省略
    # root を移動(全体に関係するので)
    root   /usr/share/nginx/html/;
   
    location / {
        # / へのアクセスを index.php へのアクセスとしたい場合は追加
        if (!-e $request_filename) {
            rewrite ^/(.+)#  /index.php?q=$1 last;
            break;
        }
        index  index.php index.html index.htm;
    }
    # PHP FPMの設定
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    }
    # 省略
}

さらにPHPが www-data というユーザで実行されていますので、nginxも合わせておきます。これは /etc/nginx/nginx.conf です。

# 変更前
user nginx;

# 変更後
user www-data;

/usr/share/nginx/html/www-data 向けにします。

sudo chown -R www-data:www-data /usr/share/nginx/html/

実行してみる

では /usr/share/nginx/html/index.php というファイルを作成して、以下の内容を記述します。

<?php
phpinfo();
?>

これでサーバにアクセスしてみます。URLは https://ドメイン名/index.php になります。

PHP Infoが表示されればPHPは正しく動作しています。後はWordPressをはじめとして好きなPHPソフトウェアをインストールしたり、Webアプリケーションの開発が行えるでしょう。


PHPはWeb開発で最も人気のあるプログラミング言語でしょう。実際に使っている方も多いはずです。CloudGarageを使って素早くPHP開発環境を整えてみてください!

次回は別インスタンスでデータベースを立ち上げてPHPから接続してみます。

この記事を書いた人

中津川 篤司

株式会社MOONGIFT 代表取締役。CloudGarage、ニフクラ mobile backend、hifive エバンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ『MOONGIFT』を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶエバンジェリスト業「DevRel」活動をスタートした。 Twitter:@goofmint | GitHub:@goofmint | Facebook: goofmint

連載『CloudGarageでサーバセットアップ』の記事

この記事のタグ

オススメの記事

ページトップへ