VCCWには、PHP7.0 がプリインストールされていますが、古いバージョンの PHP も利用できるようにしてほしいとのリクエストもちらほら見聞きしますので、VCCW の PHP のバージョンを切り替えるためのシェルスクリプトを作りました。
使い方
直接コマンドを実行する
最も簡単な方法は、以下のコマンドをゲストマシン内で実行することです。
$ curl https://raw.githubusercontent.com/vccw-team/change-php-version/master/run.sh | bash -s -- <php-version>
<php-version>
のところには、5.6
とか 7.2
とかのバージョン番号を入力してください。
以下の例は、PHP 5.6 をインストールしています。
$ curl https://raw.githubusercontent.com/vccw-team/change-php-version/master/run.sh | bash -s -- 5.6
起動時に自動実行する
VCCW は、Vagrantfile
と同じディレクトリ内に provision-post.sh
というファイルがあると、プロビジョニングの最後に自動的に実行します。
この場合、provision-post.sh
に以下のように記述してください。
#! /usr/bin/env bash
set -ex
curl https://raw.githubusercontent.com/vccw-team/change-php-version/master/run.sh | bash -s -- 7.2
ファイルの設置が完了したら vagrant up
か vagrant provision
を実行してください。
ちなみにこのファイルを ~/.vccw
というディレクトリに設置すると、すべてのマシンのプロビジョニング時に毎回実行されるようになります。
サポートしている PHP のバージョン
現時点では PHP 5.6 以降です。
PHP のインストールには、ppa:ondrej/php
を使用しており、これはセキュリティサポートが提供されているバージョンのみをサポートしていきますよとのことなので、古いバージョンを使っている場合はさっさと新しいバージョンにしましょう。
- https://launchpad.net/%7Eondrej/+archive/ubuntu/php/+index?batch=75&memo=75&start=75
- http://php.net/supported-versions.php
注意
複数バージョンの PHP のインストールについて
複数のバージョンの PHP を入れて何度か切り替えているとセグメンテーションフォールトが出たりしました。
たとえば全部のバージョンの PHP をインストールして、頻繁に切り替えるみたいなユースケースは想定しておりません。
PHP の mcrypt モジュールについて
PHP の mcrypt モジュールは、10年以上メンテナンスされていないということで、PHP 7.2 から非推奨となりました。
このスクリプトでは、PHP7.2 以外のバージョンでもインストールしておりませんので、必要な場合は各自インストールする必要があります。
(上述の provision-post.sh
を使用すれば簡単ですよね。)
VCCW にプリインストールされる PHP のバージョンについて
WordPress 本体が、公式に推奨する PHP のバージョンは、まもなくリリースされる WordPress 4.9.5 から PHP7.2 となります。(動作保証環境は引き続き PHP5.2 以上)
VCCW にプリインストールする PHP のバージョンも、近い内にアップグレードすると思います。