#前提声明,配置PHP环境还需用到Nginx镜像;
一、下载镜像
docker拉取PHP和Nginx镜像
#拉取Nginx最新版本
docker pull nginx:latest
#拉取PHP:7.4-fpm 版本
docker pull PHP:7.4-fpm
使用docker images 查看安装的镜像:
二、创建并启动PHP
首先创建nginx文件夹 方便后续PHP的挂载目录
mkdir -p /docker/nginx/www/myphp
创建并查看容器
#创建容器
docker run --name myphp -v /docker/nginx/www/myphp:/www/myphp -d php:7.4-fpm
#查看容器(成UP状态表示成功)
docker ps -a
创建并编辑conf、conf.d目录
#创建目录
mkdir -p /docker/nginx/conf/conf.d
#编辑文件
vim /docker/nginx/conf/conf.d/myphp.conf
#输入内容:
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 php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/myphp/$fastcgi_script_name;
include fastcgi_params;
}
}
创建运行nginx的容器,打通nginx与php容器之间的关联
#创建Nginx容器
docker run --name nginx1 -p 8088:80 -d \
-v /docker/nginx/www:/usr/share/nginx/html \
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \
--link myphp:php nginx
#查看状态
docker ps -a
当两个容器的状态都处于UP的情况下,就可以进行测试
三、测试
在我们最开始创建的文件下编辑文件
#编辑文件
vim /docker/nginx/www/myphp/index.php
#输入内容
<?php
echo phpinfo();
?>
访问
输入我们的ip地址+映射的端口号+文件
如 192.168.10.24:8088/index.php
出现如上图说明配置完成
四、常见问题解决
用docker ps -a 查看时两个容器的状态都为 UP 但就是最后访问打不开
可参考如下:
#首先清除docker正在运行的容器
docker rm -f (容器名)
#重启docker
systemctl restart docker
#再重新运行两个容器
docker run --name myphp -v /docker/nginx/www/myphp:/www/myphp -d php:7.4-fpm
docker run --name nginx1 -p 8088:80 -d \
-v /docker/nginx/www:/usr/share/nginx/html \
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \
--link myphp:php nginx
#再次访问
如以上方法还是解决不了,可查看配置文件是否输入错误