前回の『【 Nginx 編】Mac に Docker インストールしてみた』の続きです。
コンテナを削除する
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 番ポートに接続するという意味になります
それでは、ブラウザで確認してみましょう

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

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化
- 作者: 阿佐志保,山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2015/11/20
- メディア: 大型本
- この商品を含むブログ (3件) を見る