目录
引言
一、学习设备、系统
1.设备
2.系统
3.工具
(1)Docker Desktop for Windows(官网下载)
(2)VS Code(官网下载)
二、PHP环境方案(nginx+php)
1.参考文档
2.拉取镜像
(1)在terminal中拉取镜像
(2)在Docker Desktop中查看镜像
3.nginx容器配置
(1)第一次创建nginx的容器
(2)在ubuntu中创建nginx的配置文件和日志
(3)把容器里的配置文件复制到ubuntu里,结束第一次创建的容器的使命
(4)用配置文件重建nginx容器(这一步用了link,要先把下面的php容器开起来,不然会报错)
4.PHP容器配置
(1)第一次创建PHP容器
(2)用terminal或者VS Code的资源管理器创建php文件夹,及其下面的conf和log文件夹
(3)用配置文件重建容器
(4)重建容器后记得回上文,把nginx重建起来。
三、PHP的第一个应用(连接数据库)
1.环境测试
2.下载MYSQLi的拓展
3.建立一个连接,测试连接结果
引言
Win11应用商城自带的WSL2为Windows用户的Linux学习提供了便利,配合Docker官方提供的Docker Desktop for Windows用于镜像和容器的可视化管理、VS Code的Docker、WSL插件作为开发的支持,可以在Windows电脑上轻松搭建出需要的学习环境。(选择:Navicat作为数据库的管理软件)
一、学习设备、系统
1.设备
PC
2.系统
Win11 + WSL2(在微软应用商店下载的Ubuntu20.04.4 LTS)
3.工具
(1)Docker Desktop for Windows(官网下载)
Docker开启了如下设置,来支持WSL2
Setting-General-Use the WSL 2 based engine (Windows Home can only run the WSL 2 backend)
(2)VS Code(官网下载)
VS Code中下载Docker插件和WSL插件。
(3)Navicat Premium
支持正版,或者度娘?
二、PHP环境方案(nginx+php)
1.参考文档
用的这篇
基于Docker搭建PHP开发环境 - X-Wolf - 博客园 (cnblogs.com)
2.拉取镜像
(1)在terminal中拉取镜像
这一部分需要在terminal中操作,通过以下命令拉取最新的nginx、mysql镜像,拉取php的fpm镜像。
docker pull nginx docker pull php:fpm
(2)在Docker Desktop中查看镜像
3.nginx容器配置
(1)第一次创建nginx的容器
nginx容器的创建相对容易,可以在Docker Desktop中直接run。这一次创建的作用是为了让它生成配置文件,而后者我们要放在ubuntu中,用映射的方式对应到容器里面,所以等下会删掉这次创建的容器,再创建一次。
也可以在terminal中输入
docker run --name nginx -p 80:80 nginx
run后,在浏览器访问localhost即可进入初始页面,docker desktop中也能看到。
(2)在ubuntu中创建nginx的配置文件和日志
在terminal中
mkdir -p docker/nginx && cd docker/nginx mkdir conf log
或者在VS Code左侧的资源管理器中创建也是相同的
(3)把容器里的配置文件复制到ubuntu里,结束第一次创建的容器的使命
然后把容器内的配置文件复制到ubuntu里。以本文为例,本文是在用户文件夹里操作的,上面已经访问到了/docker/nginx文件夹中,下面的代码为
docker cp nginx:/etc/nginx/conf.d/default.conf conf/default.conf
结果如下:
这时,发动技能《过河拆桥》。在terminal中关闭容器并删除,或者在Docker Desktop中删除容器。
terminal操作如下:
docker stop nginx && docker rm nginx
界面操作如下:
(4)用配置文件重建nginx容器(这一步用了link,要先把下面的php容器开起来,不然会报错)
docker run --name nginx --link php-fpm:php -p 80:80
-v /home/yerdon/docker/nginx/conf:/etc/nginx/conf.d -v
/home/yerdon/docker/www:/usr/share/nginx/html -v
/home/yerdon/docker/nginx/log:/var/log/nginx nginx
到此,nginx容器配置完成。
4.PHP容器配置
思路与nginx容器的创建一致,需要先直接创建一次,从中提取配置文件到ubuntu,然后删除容器,映射配置文件重新创建。
(1)第一次创建PHP容器
docker run --name php-fpm -p 9000:9000 -d php:fpm
或者在docker desktop中run也可。
(2)用terminal或者VS Code的资源管理器创建php文件夹,及其下面的conf和log文件夹
cd进这个文件夹,从容器里拷两份配置文件过来。
cd /home/yerdon/docker/php docker cp php-fpm:/usr/local/etc/php-fpm.d/www.conf conf/www.conf docker cp php-fpm:/usr/local/etc/php/php.ini-production conf/php.ini
然后删掉容器。
docker stop php-fpm && docker rm php-fpm
(3)用配置文件重建容器
docker run --name php-fpm -p 9000:9000 -v /home/yerdon/docker/www:/var/www/html -v /home/yerdon/docker/php/conf/php.ini:/usr/local/etc/php/php.ini php:fpm
(4)重建容器后记得回上文,把nginx重建起来。
三、PHP的第一个应用(连接数据库)
1.环境测试
1.环境测试
在docker/www/下创建一个index.php
使用上面的代码测试环境是否已经搭建成功。
2.下载MYSQLi的拓展
在Docker Desktop中打开php的命令行,用以下命令安装和启用MYSQLi的拓展。
docker-php-ext-install mysqli docker-php-ext-enable mysqli
3.建立一个连接,测试连接结果
建议不要用docker拉的Mysql进行测试,Docker的默认时区是0时,会导致PHP连不上。
在navicat中可以连接成功。
在index.php中写入
connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
至此,整个环境就搭建完成了。



