1.查看仓库可用php版本
docker search php
2.我这里安装php7.4
docker pull php:7.4-fpm
3.查看镜像是否安装成功
docker images
4.运行容器
docker run --name php7.4-fpm-test -v D:\DockerContainer\nginx\www:/www -d php:7.4-fpm
参数说明:
--name php7.4-fpm-test : 将容器命名为 php7.4-fpm-test。
-v D:\DockerContainer\nginx\www:/www : 将主机中项目的目录 www 挂载到容器的 /www
-d php:7.4-fpm: 设置容器在在后台一直运行。
5.进入容器
docker exec -it php7.4-fpm-test /bin/bash
进入容器后发现容器根目录www下已经有index.php文件,这是我们上篇文章配置nginx创建的,出现这说明映射成功
6.在D:\DockerContainer\nginx\conf.d目录下创建test.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/$fastcgi_script_name;
include fastcgi_params;
}
}
7.在D:\DockerContainer\nginx\www目录下创建index.php文件
<?php
echo phpinfo();
?>
8.运行nginx容器
docker run --name nginx-test -p 8080:80 -v D:\DockerContainer\nginx\conf:/etc/nginx/conf -v D:\DockerContainer\nginx\conf.d:/etc/nginx/conf.d -v D:\DockerContainer\nginx\logs:/var/log/nginx -v D:\DockerContainer\nginx\www:/usr/share/nginx/html -d --link php7.4-fpm-test:php nginx
9.浏览器访问index.php
10.安装mysqli扩展
进入容器安装php mysqli扩展,进入到/usr/local/bin目录执行命令
docker-php-ext-install mysql
docker-php-ext-install mysqli
安装成功后重启php容器
11.php连接mysql
在index.php文件写连接代码
<?php
$servername = "mysql-test2";
$username = "root";
$password = "root";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
mysql-test2是之前创建的mysql容器,$servername填写容器名称或者容器ip
12.访问浏览器输出连接成功