概要
2020年6月25日に PHP 8.0.0 Alpha 1 がリリースされました。
Docker イメージ も公開されていたので最低限の環境を構築してみます。
構成
$ tree
.
├── docker-compose.yml
├── nginx
│ └── default.conf
└── public
└── index.php
ファイル
docker-compose.yml
version: "3.8"
services:
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./public:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
php:
image: php:8.0.0alpha1-fpm
volumes:
- ./public:/var/www/html
public/index.php
<?php
phpinfo();
nginx/default.conf
server {
index index.php index.html;
root /var/www/html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
コードは SnowCait/php8-docker-compose-example にも置いてあります。
さくっと試したい方は git clone
して使ってください。
起動
docker-compose up -d
ブラウザでアクセスする
http://localhost/ にアクセスすると phpinfo()
の内容が表示されます。
ポートを変えたい場合は "80:80"
の部分を "8080:80"
にすると http://localhost:8080/ でアクセスできます。
コマンドラインから実行する
docker-compose exec php php -v
PHP 8.0.0alpha1 (cli) (built: Jun 26 2020 19:56:42) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
コマンドラインだけあれば良い方は nginx の設定は不要です。
停止
docker-compose down
拡張
実際にアプリを動かそうとすると今回紹介したコードだけでは足りないと思います。
データーベースや KVS が必要だったり Composer が必要だったり public/ 以外のディレクトリが必要だったり。
Docker Compose であればコンテナや設定を追加するだけなので色々と拡張しやすいです。
Composer を使いたい方は 環境を汚さずに Composer を使いたい - Qiita に書いていますのでもし興味があれば。
docker-compose.yml に 4 ~ 5 行追加するだけで使えるようになります。