当前位置: 首页 > 工具软件 > Docker-PHP > 使用案例 >

Docker搭建php本地开发环境 - 保姆教程

范凡
2023-12-01

前言

  1. 本方法适用于Mac(写此文章的目的就是记录自己的Mac环境配置方法), 同时也适用于Windows只是Windows有好用的集成环境, 所以就懒得这么麻烦了
  2. 由于本人木有找到在Mac端简单好用的php集成开发. 在使用brew搭建环境后, 个人感觉在安装php扩展和配置环境也不是很方便. 环境不用了想关掉时, mysql, nginx也要一个一个的brew service stop很麻烦, 用完了不关, 很占电脑资源(来自贫穷的8G内存), 就想找个简单的方法
  3. 这样可以让主机环境更干净~

思路

  1. 使用Docker容器技术
  2. 基于Dockercentos镜像来模拟linux环境,在centos镜像中简单粗暴的安装宝塔面板,再通过宝塔面板简单快速的搭建一个好用的PHP环境
  3. 使用docker的数据卷,将本地项目目录挂载到容器中, 方便开发
  4. 为了方便对数据库的操作, 数据持久化和数据管理, 我选择直接把mysql安装在Mac上而没有安装在容器中

开始搭建

通过brew 安装 mysql

# 安装mysql
brew install mysql@5.7

# 连接mysql, 注意: 刚安装的mysql是没有密码的
mysql -u root -p

# 修改初始化密码, 注意: 此方法不行的话, 请根据使用的数据版本自行百度初始化密码的方法
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

安装Docker

  1. 使用Docker官网下载的Mac版客户端即可, 附上官网链接 Docker官网下载页面
  2. 无脑安装好客户端之后, 启动客户端即可

启动centos容器

# 运行docker容器 请将xxxxxx 处替换为自己本地的项目目录
# 我是在Document下建了一个www目录,所有的项目都放在该目录下
# 注意提前将本地的项目目录权限改为777,防止意外
# 此处的phpdev是容器名,可以任意起名, 80和8888端口一定要开, 8080和81不一定, 我是随手就都开了
docker run -it --name phpdev -p 80:80 -p 8888:8888 -p 8080:8080 -p 81:81 -v xxxxxx:/www/wwwroot centos /bin/bash

安装宝塔

# 成功启动镜像后在容器内运行命令 安装 宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

中间有提示时 输入y
安装完成后, 根据宝塔的提示输入宝塔面板的登录网站
注意: 要把登录的ip地址更换为 127.0.0.1

安装需要软件

通过宝塔面板安装 nginx, redis, php等软件, 宝塔的用法请参考宝塔官网

注意: 安装PHP 7.4, 8.0, 8.1版本后可能出现无法启动的情况
请卸载刚安装的PHP, 并在容器中执行 yum install oniguruma libsodium -y
再重新安装PHP

关于连接MySQL

在容器中连接容器外部的MySQL时, host地址要填写docker.for.mac.host.internal

原因: Mac电脑, 在容器中连接容器外部的MySQL时, host地址填写docker网桥中的地址是不行的, 原因是Mac电脑中没有docker0这个网桥. docker 18.03 加入了一个 feature,在容器中可以通过 host.docker.internal 来访问主机

重启容器

停止容器后再次启用容器时使用
docker start cid启动容器
启动后使用docker attach cid进入容器命令行
使用bt start启动宝塔面板
之后就可以正常使用环境了

docker容器部分操作方法

  1. 在不停止容器的情况下, 退出容器命令行: mac:control + p + q windows : ctrl + p + q
  2. 查看容器列表 docker ps -a
  3. 停止容器 docker stop cid
  4. 启动已停止的容器 docker start
  5. 从命令行进入启动的容器 docker attach cid
 类似资料: