Help us understand the problem. What is going on with this article?

Docker で PHP 8.0.0 Alpha 1 環境構築

概要

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

SnowCait
C# と PHP と あいうら が好きな気分屋さん。 仕事ではフリーランスとして主にソーシャルゲームの開発をしています。 最近は GitHub Actions に興味があります。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした