LoginSignup
10
3

More than 3 years have passed since last update.

WindowsでXAMPPにPHP8.0.0β2をインストールする

Last updated at Posted at 2020-08-31

先日PHP8.0.0α1でJITを試したときはPHP8をXAMPP経由で起動することができなかったのですが、今回動かすことができたので、その方法の共有です。
今回試したのはPHP8.0.0β2です。

XAMPPインストール

まずローカルのXAMPPを削除。
公式サイトからWindows向けXAMPPの最新版をダウンロードしてインストール。
既にPHP7.4.x版が入っているようなら、そのままでもいけると思います。

PHP8.0.0インストール

Windows版ダウンロードページからVS16 x64 Thread Safeをダウンロード。
適当に解凍。
path\to\xampp\phpディレクトリにだばぁ!と上書き。
php.ini-developmentを既存のphp.iniに上書き。
extension=mbstringとかdate.timezoneとかを好きに設定する。

Apacheの設定

path\to\xampp\apache\conf\extra\httpd-xampp.confをエディタで開く。
php7ts.dllphp8ts.dllに置換。
php7apache2_4.dllphp8apache2_4.dllに置換。
php7_modulephp_moduleに置換。

起動

XAMPPコントロールパネルから起動。
http://localhostにアクセス。
これでPHP8.0.0が動いているはず。

01.png

注意点

httpd-xampp.confphp_moduleがポイントです。
ここを過去の類推からphp8_moduleにすると何故か動きません。

これUPGRADINGにしっかり書かれているので、きちんと調べればわかります。

では何故α1でJITを試した時には気付かなかったのかというと、PHP8.0.0α1のUPGRADINGには全く書かれてなかったからなんじゃ!
PHP8.0.0α2のUPGRADINGからしれっと追加されています。

ちなみに、この設定はApacheからPHPを呼び出すときの設定なので、Apacheを使わず直接コマンドラインからPHPを呼び出すのであれば不要です。
先日のJIT実験は、そうやって直接PHPを呼び出したということです。

Apache経由のJITが死ぬ

ということで今度はApache経由でのJITを試してみようと思ったわけですが、なんか動きませんでした。
opcache.jit_buffer_sizeが設定されていると、何故かApache経由でアクセスするとERR_CONNECTION_RESETになって死にます。
これもコマンドライン経由だときちんと動くので、おそらくこれもhttpd-xampp.confあたりの問題だと思うのですがよくわかりませんでした。
XAMPPかApacheかどこかがサンプル設定上げてくれるとありがたいんですけどね。

PHP CS Fixerが死ぬ

PHPのデフォルトをPHP8にするとPHP CS Fixerがエラーを吐くようになります。
VSCodeだとPHP CS Fixer: php general error.としか言わないから何が原因なのかわからねえ。

直接実行すればメッセージを確認できます。

$ "path\to\php\php.exe" "path\to\php-cs-fixer-v2.phar"
PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.4.*.

ええ…
現行最新のv2.16.4を使ってもこう言われます。
RCが出たらまた来てだそうです。ひどい。
バージョン見て門前払いじゃなくて、せめて動かせるけど保証はしない、ってなりませんかね。

VSCodeのPHPフォーマッターはたくさんありますが、その多くはPHP CS Fixerのラッパーです。
従ってPHP CS Fixerが対応しないことにはまともに開発できないため、まだまだ環境を切り替えるには早いですね。
自力で整形しているフォーマッターのプラグインがあるのかはよくわかりませんでした。

どうしても早く使いたいなら、自力で対応しているPHPstormなどを使ってみるといいかもしれません。

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3