nginxでPHPを複数バージョン使う一番簡単な方法

こんにちは。フリーランス・コンサルタント&エンジニアの 九保すこひ です。

さてさて、みなさんは過去に開発したPHPウェブアプリに変更を加えるときにPHPバージョンの違いで実行できなかった、という経験はないでしょうか。

大きな開発でしたら、やはりdockerやvagrantなどで環境を整備しておくべきだとは思いますが、ホントにちょっとしたものだったらもっと手軽にPHPの過去バージョンで実行したいものです。

そこで、今回は現在シェアを増やしているnginxで複数バージョンのPHPを実行する方法を紹介します。

実行環境とやること

  • Ubuntu 18.04
  • nginx 1.14.0

すでにPHP 7.2がインストールされていて、今回はPHP 5.6をインストール、さらにローカル環境の特定のサイトだけPHP 5.6で実行されるようにしたいと思います。

対象バージョンのPHPとphp-fpmをインストールする

まずはPHP(とnginxで実行するphp-fpm)をインストールしなければ始まりません。

ただ、Ubuntu18.04ではデフォルトでPHP 5.6をインストールできないようなので、まずはPPAを追加します。

sudo add-apt-repository ppa:ondrej/php

そして、aptを使ってphp5.6とphp5.6-fpm、それからDBも使いたいのでphp5.6-mysqlndも一緒にインストールします。

sudo apt install php5.6 php5.6-fpm php5.6-mysqlnd

はい、これでインストールは完了です。

nginxのconfファイルにPHP 5.6で実行されるよう設定する

では、次にnginxのconfファイルです。

といっても、設定の変更は簡単で、「fastcgi_pass」に実行したいPHPバージョンのfpmを指定するだけです。

server {

   server_name example.test;
   root /home/xxxxxx/dev/example;
   index index.php index.html;

   location / {
        try_files $uri $uri/ /index.php?$query_string;
   }

   error_page 404 /index.php;

   location ~ \.php$ {
    include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
   }

}

そして、nginxを再起動すればOKです。

sudo systemctl nginx restart

はい、これで「example.test」だけはPHP5.6で実行されるようになっているはずです。

この方法を使えば、開発しているサイトによって簡単にPHPバージョンを自動で切り替えることができて便利ですね。

開発のご依頼お待ちしております
開発のご依頼はこちらから: お問い合わせ
どうぞよろしくお願いいたします! by 九保すこひ

おわりに

ということで、今回はホントに作業内容が簡単なので短い記事になってしまいましたが、みなさんのお役にたてれば嬉しいです。

ではでは〜。

このエントリーをはてなブックマークに追加       follow us in feedly