php-fpm alpine の docker image を動かす際の覚書
利用するベース Docker image
php:8.1-fpm-alpine Docker Hub
作成する Dockerfile とビルド
Dockerfile の設定は最小限。
Dockerfile
FROM php:8.0-fpm-alpine RUN echo "<?php echo 'Hello World!'; " > /var/www/html/index.php COPY index.php /var/www/html/index.php
ビルドコマンド
# build image $ docker build --pull --rm -t fpmtest:latest -f Dockerfile . # run container and forward port $ docker run -p 9000:9000 -d fpmtest:latest
php-fpm 単体での動作確認
php-fpm への接続は unix ドメインソケットか TCP(デフォルト)で行う必要がある
http 接続には対応していないため、php-fpm 単体では curl による動作確認は不可能。
curl の代わりに cgi-fcgi
というコマンドで動作確認ができる。
# install for Mac OS $ brew install fcgi # request to php-fpm $ SCRIPT_NAME=index.php\ SCRIPT_FILENAME=/var/www/html/index.php\ REQUEST_METHOD=GET\ cgi-fcgi -bind -connect 127.0.0.1:9000 X-Powered-By: PHP/8.0.18 Content-type: text/html; charset=UTF-8 Hello World!%
(参考)fcgi コマンドでターミナルから php-fpm(FastCGI)の動作を確認する - Qiita
設定ファイル
php:8.1-fpm-alpine image では、php や php-fpm の設定ファイルは以下の場所にある。
/var/www/html # ls /usr/local/etc/ pear.conf php php-fpm.conf php-fpm.conf.default php-fpm.d
/usr/local/etc/php-fpm.d/www.conf に、9000 port で listen する設定などがある
(抜粋)
listen = 127.0.0.1:9000