一、获取镜像
1 | docker pull php:7.4-fpm
二、运行容器并测试
1.创建测试用例
1 | mkdir php
2 | cd php
3 | vi index.php
编写如下内容到index.php
<!DOCTYPE html>
<html>
<head>
<title>PHP 动态网站</title>
</head>
<body>
<?php
$user_name = 'tao';
echo "<h1>".$user_name."</h1>";
?>
</body>
</html>
2.运行容器
首先创建一个自定义网络
1 | docker network create nginx-php
运行 php 容器并连接到指定的自定义网络 nginx-php
并使用 -v 把事先准备好的测试用例挂载到容器内
1 | docker run -d -v /root/php/index.php:/var/www/html/index.php php:7.4-fpm
3.测试php
进入容器,测试
1 | docker exec -it php bash
2 | root@43a9d7f4ad32:/var/www/html# php index.php
<!DOCTYPE html>
<html>
<head>
<title>PHP 动态网站</title>
</head>
<body>
<h1>tao</h1></body>
</html>
三、运行nginx容器
1 | docker run -d --name nginx1 -p 8090:80 --network=nginx-php nginx:alpine
2 | docker run -d --name php --network=nginx-php php:7.4-fpm
3 | docker cp index.php php:/var/www/html/ #将主机的index.php拷贝到php容器内
四、配置Nginx
进入容器内修改配置文件
1 | docker exec -it nginx1 sh
2 | vi /etc/nginx/conf.d/default.conf
location ~ \.php$ {
root /var/www/html; # php server dir
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_scr
include fastcgi_params;
}
注意: /var/www/html
是 php
容器内的路径。
在容器内执行如下命令,重新加载配置文件
1 | nginx -s reload
也可以在宿主机上执行
1 | docker exec php nginx -s reload
五、在主机上测试访问
1 | curl 127.0.0.1:8090/index.php
<!DOCTYPE html>
<html>
<head>
<title>PHP 动态网站</title>
</head>
<body>
<h1>tao</h1></body>
</html>