【 php-fpm 編】Mac に Docker インストールしてみた

前回の『【 Nginx 編】Mac に Docker インストールしてみた』の続きです。

enomotodev.hatenablog.com

コンテナを削除する

Nginx のコンテナなどが稼働していると思うので、一旦全て削除します

$ docker rm -f `docker ps -a -q`

php-fpm のイメージを pull する

公式の php-fpm のイメージを pull します

$ docker pull php:fpm
...(略)
Status: Downloaded newer image for php:fpm

php-fpm のコンテナを起動する

最初に Document Root に配置する PHP ファイルを作成します

  • ~/docker/www/index.php
<?php
    phpinfo();
?>

PHP ファイルの準備ができたら php-fpm のコンテナを起動しましょう

$ docker run --name fpm -p 9000:9000 -v /Users/enomotodev/docker/www:/var/www/html -d php:fpm

--name オプションで fpm と指定することによって、fpm という名前でコンテナを起動しています

続けて、Nginx のコンテナを起動するのですが、先に前回作成した conf ファイルを編集しましょう

  • ~/docker/nginx/nginx.conf
server {
    listen 8080;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass fpm:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        include fastcgi_params;
    }
}

conf ファイルの準備ができたので、Nginx のコンテナを起動します

$ docker run --name nginx -p 9090:8080 -v /Users/enomotodev/docker/nginx/nginx.conf:/etc/nginx/conf.d/nginx.conf --link fpm -d nginx

--link オプションで fpm を指定することによって、Nginx コンテナから php-fpm コンテナへの接続ができるようになります

つまり、conf ファイルの fastcgi_pass fpm:9000; の部分は php-fpm コンテナの 9000 番ポートに接続するという意味になります

それでは、ブラウザで確認してみましょう

f:id:enomotodev:20170519202237p:plain

phpinfo が表示されました!

まとめ

Nginx と PHP の連携ができたので、次は Database との連携も行い、Docker で PHP 開発環境を構築したいと思います