WindowsでPHP7をXamppとBitnamiの2通りの方法でインストールしてみた

なかなかうまく行かなかったのでメモ
Xampp V3.2.1以下だと不可(困難)
Xampp V3.2.2以降はOK
Bitnami WAMP Stackがイイカンジ






PHP7になって何が変わった?



高速化された

2倍くらい速くなるらしい!!

引数・返り値で型が指定できるようになった

スカラ型のタイプヒントにint, float, string, bool型を指定できるようになりました。まあ十分かな?
<?php
function IntToText(int $num): string {
    // ...
}

致命的エラーが例外として捕捉できるようになる

今まで即座に終了していたみたいですね。
ユニットテストなんかで使うことになるでしょうか?


??演算子追加

nullでなければその値を、nullなら右オペランドを返すとか。三項演算子っぽいと思いました。
<?php
var_dump(null ?? "null" ?? "not null"); // "null"

その他

非推奨機能を排除したり無名クラスを導入したりその他細々した変更があります。
http://d.hatena.ne.jp/hnw/20150525がすごく詳しいですね。
あまり大幅な変更はない(出来なかった)らしくバージョンアップもそこまで手間ではないそうです。
PHP6失敗しちゃいましたしなにか大胆に変えたい特はSwiftみたいに言語そのものを変えるしかないってことですかね?



PHP7のインストール


XamppいれてPHP7持ってきてごにょごにょすればいけるやろ~......ダメでした。
http://qiita.com/rana_kualu/items/447995347acb2f8997a3を参考にしたんですがいまいちうまく行きませんでした。

9:58:57 [Apache] Error: Apache shutdown unexpectedly.
9:58:57 [Apache] This may be due to a blocked port, missing dependencies,
9:58:57 [Apache] improper privileges, a crash, or a shutdown by another method.
9:58:57 [Apache] Press the Logs button to view error logs and check
9:58:57 [Apache] the Windows Event Viewer for more clues
9:58:57 [Apache] If you need more help, copy and post this
9:58:57 [Apache] entire log window on the forums

調べた感じポートが原因とか管理者権限で起動とか情報がありましたがどうも違うようで、ApacheやPHP7をビルドしなおせばいけそうですがそれだとXamppの意味が......
と悩んでいたんですが最新入れたらいけました。結構悩んだのに。
Xampp V3.2.1以下だと不可(困難)でXampp V3.2.2以降は問題なく使用できるようです。
https://www.apachefriends.org/jp/index.html
ただしV3.2.2はPHP5が入っているのでこれを置き換えます。
http://windows.php.net/qa/
Xamppに入っているApacheは32ビットアプリケーションのようなのでVC14 x86 Thread SafeのZipをダウンロードします。
php.ini-developmentをphp.iniに変更またはコピーします。
ダウンロードが完了したら、Xampp以下のPHPフォルダを置き換えます。
xampp\apache\conf\extra\httpd-xampp.confの5を7へ置き換えます。




Bitnami Wamp StackでPHP7のインストール



本当はXampp使えないからこれ使おうぜみたいな感じで記事を書くつもりだったのですが、あっさりXamppで使えたのでほぼ無意味になりました。
ただすごく使えそうなので紹介しておきます。
ググってもwordpressとかredmineとかしか出てきませんが主にWeb向けの開発環境を簡単にインストールできるパッケージと思っておけば問題ないかな。
WAMP Stack 7.0.0RC7-0 Dev をインストールすればそのまま行けそうですがDevの文字が気になるのでWAMP Stack 5.5.30-0をインストールします。Devが外れたらそれ入れちゃっていいと思います。
bitnami download
google+とかfacebookとかのアカウントでログインしてよ!みたいな表示が出ますがめんどくさいので、左下の No thanks, just take me to the download をクリックします。

bitnami setup
セットアップ画面です。Nextで進んでいきます。

bitnami setup
一緒にインストールするフレームワークを選択できます。
必要でないものはチェックを外しNextをクリックします。


インストールディレクトリ選択
今回はC:\Bitnami\wampstack-5.5.30-0へインストールします。


bitnamiのmysqlを使用するときのルートパスワードを設定します。


ウェブサーバーのポート番号設定
特に理由がなければデフォルトでいいかな?


「ちょっとうちいいクラウドサービスあんだけどさあ。インストールする間見ていかない?」(超訳)
みたいなこと言ってるんじゃないかな?知らないけど。


インストール完了後以上の画面が表示されると思います。
ただしこの状態だと残念ながらPHP5のままです。
phpinfoを表示したい場合は C:\Bitnami\wampstack-5.5.30-0\apache2\htdocs へ< ?php phpinfo(); というテキストデータが入った phpinfo.phpを用意してhttp://localhost/phpinfo.php へアクセスします。phpファイルならなんでも構いません。
phpinfo ver5.5.30
PHP7へ置き換えていきます。
基本的にXamppと一緒です。
http://windows.php.net/qa/
Xamppに入っているApacheは32ビットアプリケーションのようなのでVC14 x86 Thread SafeのZipをダウンロードします。
php.ini-developmentをphp.iniに変更またはコピーします。
ここからちょっとだけ違います。
C:\Bitnami\wampstack-5.5.30-0\apache2\conf\httpd.conf を置き換えます。
最後辺りに
LoadModule php5_module "C:/Bitnami/WAMPST~1.30-/php/php5apache2_4.dll"
と言う記述があるので
LoadModule php7_module "C:/Bitnami/WAMPST~1.30-/php/php7apache2_4.dll"
へ置き換えます。たったこれだけ!!
phpinfo PHP Version 7.0.0RC7

bitnamiすごく便利そうなのになんで情報がないんでしょう?

そのほかこの辺りを参考にしました。thanks !!
http://dqn.sakusakutto.jp/2015/07/php7_trap.html
http://www.slideshare.net/hnw/phpcon-kansai20150530


PHP7は高速化されたっていうのが大変魅力ですね。
まあ私仕事でもプライベートでもあんまりPHP使わないんですけどね。

2015年12月1日火曜日