一、 获取镜像
docker pull php:7.4-fpm
二、运行容器并测试
1 创建测试用例
mkdir php
cd php
编写如下内容到 index.php
<!DOCTYPE html>
<html>
<head>
<title>PHP 动态网站</title>
</head>
<body>
<?php
$user_name = 'shark';
echo "<h1>".$user_name."</h1>";
?>
</body>
</html>
2 运行容器
首先创建一个自定义网络
docker network create nginx-php
运行 php 容器并连接到指定的自定义网络 nginx-php
并使用 -v
把事先准备好的测试用例挂载到容器内
docker run -d --name php -v /root/php/index.php:/var/www/html/ --network=nginx-php php:7.4-fpm
3 测试 php
进入容器,测试
[root@qq php]# docker exec -it php bash
root@43a9d7f4ad32:/var/www/html# php index.php
<!DOCTYPE html>
<html>
<head>
<title>PHP 动态网站</title>
</head>
<body>
<h1>shark</h1></body>
</html>
root@43a9d7f4ad32:/var/www/html#
上面的输入中 <h1>shark</h1></body>
表示成功
三、运行 nginx 容器
docker run -d --name nginx1 -p 8090:80 --network=nginx-php nginx:alpine
四、配置 nginx
进入容器内修改配置文件
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 容器内的路径。
在容器内执行如下命令,重新加载配置文件
nginx -s reload
也可以在宿主机上执行
docker exec php nginx -s reload
五、最终在宿主机上访问测试
[root@qq php]# curl 127.0.0.1:8090/index.php
<!DOCTYPE html>
<html>
<head>
<title>PHP 动态网站</title>
</head>
<body>
<h1>shark</h1></body>
</html>