LoginSignup
3
2

More than 3 years have passed since last update.

Docker で PHP 8.0.0 Alpha 1 環境構築

Posted at

概要

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/ でアクセスできます。
php8.png

コマンドラインから実行する

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 行追加するだけで使えるようになります。

3
2
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
3
2