2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Docker搭建php本地开发环境 - 保姆教程

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

时间:2021-03-25 04:29:48

相关推荐

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

目录

前言思路开始搭建通过brew 安装 mysql安装Docker启动centos容器安装宝塔安装需要软件关于连接MySQL重启容器docker容器部分操作方法

前言

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

思路

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

开始搭建

通过brew 安装 mysql

# 安装mysqlbrew install mysql@5.7# 连接mysql, 注意: 刚安装的mysql是没有密码的mysql -u root -p# 修改初始化密码, 注意: 此方法不行的话, 请根据使用的数据版本自行百度初始化密码的方法ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

安装Docker

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

启动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 /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容器部分操作方法

在不停止容器的情况下, 退出容器命令行: mac:control + p + qwindows :ctrl + p + q查看容器列表docker ps -a停止容器docker stop cid启动已停止的容器docker start从命令行进入启动的容器docker attach cid

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。