九保すこひ@フリーランスエンジニア|累計300万PVのブログ運営中
さてさて、みなさんは過去に開発した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バージョンを自動で切り替えることができて便利ですね。
おわりに
ということで、今回はホントに作業内容が簡単なので短い記事になってしまいましたが、みなさんのお役にたてれば嬉しいです。
ではでは〜。