PHP7のテスト環境を構築するための少しだけ長い道のり
昨日、東京でPHPカンファレンスが行われ、Rasmus Lerdorf氏による基調講演で「PHP7のテストに協力を」という話がありました。
「It is really easy!」ということなのでやってみたのですが、少しつまづきましたのでその記録です。
まずは、記述通りにgit clone
してvagrant up
します。
$ git clone https://github.com/rlerdorf/php7dev.git
$ cd php7dev
$ vagrant up
しかし、Boxのダウンロードに失敗します。
実は昨日の夜中にもやってみて、今日もやってみたのですが、同じく失敗したのでRasmusさんに確認してみました。
@kenji_s seems like a network problem on your end. Try the vagrantcloud urn directly. Works fine here.
— Rasmus Lerdorf (@rasmus) October 3, 2015
こちらのネットワークの問題ということで、別のネットワークから試したら、すんなりダウンロードできました。
$ wget https://vagrantcloud.com/rasmus/boxes/php7dev/versions/0.0.9/providers/virtualbox.box
(2015-10-30 追記) 新しいバージョンの0.1.0がリリースされています。
$ wget https://atlas.hashicorp.com/rasmus/boxes/php7dev/versions/0.1.0/providers/virtualbox.box
そして、ダウンロードしたBoxを手許のマシンに転送し、Vagrantに登録します。
$ vagrant box add virtualbox.box --name rasmus/php7dev
これで準備OK。あとはvagrant up
するだけです。無事に仮想マシンが起動しました。
(2015-10-30 追記) 新しいバージョンの0.1.0がリリースされており、以下で記述されている不具合は解消されています。
仮想マシンにSSHします。
$ vagrant ssh
php7dev image version 0.0.9
'makephp 7' - to update your PHP 7 build
'newphp 56' - to switch to PHP-5.6
Please read the documentation at https://github.com/rlerdorf/php7dev
You have mail.
php
のバージョンを確認します。
vagrant@php7dev:~$ php -v
PHP 7.0.0-dev (cli) (built: May 25 2015 16:34:33) (DEBUG)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
May 25 2015、ということで少し古いですね。最新版をビルドします。
vagrant@php7dev:~$ makephp 7
Build log in /tmp/build.log
Building PHP 7.0
Already on 'master'
configuring...
compiling...
installing...
done
Building PHP 7.0-debug
Already on 'master'
configuring...
compiling...
installing...
done
無事に終わりました。php
のバージョンを確認します。
vagrant@php7dev:~$ php -v
PHP 7.1.0-dev (cli) (built: Oct 4 2015 03:14:20) ( NTS DEBUG )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
なんとPHP 7.1.0-dev
!今度は最新過ぎます。
makephp
を調べると7のビルド時にブランチがmaster
になってました。それをPHP-7.0
に修正します。
--- /usr/local/bin/makephp.orig 2015-05-24 19:01:03.897226770 +0000
+++ /usr/local/bin/makephp 2015-10-04 03:26:10.252803467 +0000
@@ -276,18 +276,18 @@
if(!$zts || $world) {
echo "Building PHP 7.0\n";
$conf_flags = implode(' ', $conf[$v]) . ' --disable-debug --prefix=/usr/local/php70';
- build_it('master', $conf_flags);
+ build_it('PHP-7.0', $conf_flags);
echo "Building PHP 7.0-debug\n";
$conf_flags = implode(' ', $conf[$v]) . ' --enable-debug --prefix=/usr/local/php70-debug';
- build_it('master', $conf_flags);
+ build_it('PHP-7.0', $conf_flags);
}
if($zts || $world) {
echo "Building PHP 7.0-zts\n";
$conf_flags = implode(' ', $conf[$v]) . ' --disable-debug --enable-maintainer-zts --prefix=/usr/local/php70-zts';
- build_it('master', $conf_flags);
+ build_it('PHP-7.0', $conf_flags);
echo "Building PHP 7.0-debug-zts\n";
$conf_flags = implode(' ', $conf[$v]) . ' --enable-debug --enable-maintainer-zts --prefix=/usr/local/php70-debug-zts';
- build_it('master', $conf_flags);
+ build_it('PHP-7.0', $conf_flags);
}
break;
これでいいはず。
vagrant@php7dev:~$ makephp 7
php
のバージョンを確認します。
vagrant@php7dev:~$ php -v
PHP 7.0.0-dev (cli) (built: Oct 4 2015 03:41:15) ( NTS DEBUG )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
最新のPHP 7.0になりました。
これで、PHP 7.0のテストができるようになりました!
関連
Date: 2015/10/04