PHP
WordPress
VCCW

VCCW にインストールされている PHP のバージョンを変更する

VCCWには、PHP7.0 がプリインストールされていますが、古いバージョンの PHP も利用できるようにしてほしいとのリクエストもちらほら見聞きしますので、VCCW の PHP のバージョンを切り替えるためのシェルスクリプトを作りました。

https://github.com/vccw-team/change-php-version

使い方

直接コマンドを実行する

最も簡単な方法は、以下のコマンドをゲストマシン内で実行することです。

$ 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 upvagrant provision を実行してください。

ちなみにこのファイルを ~/.vccw というディレクトリに設置すると、すべてのマシンのプロビジョニング時に毎回実行されるようになります。

サポートしている PHP のバージョン

現時点では PHP 5.6 以降です。

PHP のインストールには、ppa:ondrej/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 のバージョンも、近い内にアップグレードすると思います。