拉取php镜像,下面以7.2版本为例。也可拉取指定版本的镜像php:5.6-fpm、php:latest等
docker pull php:7.2-fpm
拉取nginx镜像,这里直接拉取最新的镜像版本
docker pull nginx:latest
添加PHP容器
# /docker/nginx/default/www 是PHP容器映射宿主机目录
docker run --name php -p 9000:9000 -v /docker/nginx/default/www:/www -d php:7.2-fpm
添加nginx容器
# /docker/nginx/default/www 是容器映射宿主机的可执行文件目录
# /docker/nginx/default/conf/conf.d 是容器映射宿主机配置文件目录
# /docker/nginx/default/logs 是容器映射宿主机lgo文件目录
docker run --name nginx -p 80:80 -d \
-v /docker/nginx/default/www:/usr/share/nginx/html:ro \
-v /docker/nginx/default/conf/conf.d:/etc/nginx/conf.d:ro \
-v /docker/nginx/default/logs:/var/log/nginx \
nginx
查看PHP容器IP
docker inspect --format '{{ .NetworkSettings.IPAddress }}' php
# 172.17.0.4
编辑nginx配置文件
在/docker/nginx/default/conf/conf.d目录下新建default.conf,内容如下
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; 这里的(/www/)指的是PHP容器
php文件执行目录。和启动的PHP容器指向的目录保持一致。
fastcgi_pass 172.17.0.4:9000;PHP容器IP及端口
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass 172.17.0.4:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
重启nginx容器
docker restart nginx容器ID
/docker/nginx/default/www 目录下添加index.php
<?php
echo phpinfo();
浏览器访问127.0.0.1
image.png
网友评论