Docke 搭建 apache2 + php8 + MySQL8 环境
2022/8/24 2:24:54
本文主要是介绍Docke 搭建 apache2 + php8 + MySQL8 环境,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- Docker 安装
curl -fsSL https://get.docker.com/ | sh启动 Docker 服务
sudo service docker start查看 Docker 是否正常工作
sudo service docker status更改用户权限
sudo groupadd docker # 新建用户组 sudo gpasswd -a $USER docker #将登录用户加入docker组 newgrp docker #更新用户组查看当前镜像
docker images搜索可用镜像
docker search 名称下载镜像
docker pull 名称启动当前镜像
docker run -it -d -p 8000:80 镜像编号/名称 /bin/sh -it #表示用终端操控 -d #表示后台运行 -p #表示把容器的 80 端口映射到 物理机的 8000 端口查看当前运行容器
docker ps停止当前运行容器
docker stop 容器编号进入容器内部
docker exec -it 容器编号 bash
- apache2搭建
搜索有关于 apache2 的容器
docker search apache2这里选用第一个的 ubuntu + apache2 环境 下载镜像
docker pull ubuntu/apache2查看镜像
docker images启动 ubuntu/apache2 容器
docker run -it -d -p 8000:80 ubuntu/apache2:latest /bin/sh并查看当前活跃容器 进入容器内部
docker exec -it 2af38a bash开启 apache2 服务
service apache2 start可以看到成功启动 apache2 服务 在物理机上访问
localhost:8000可以看到 apache2 成功运行 在首页下新建php文件
vim /var/www/html/1.php # /var/www/html 是网站文件存放路径如果 vim 提示未安装,则需要先安装
apt update #更新 apt install vim #安装 vim1.php 内容如下
<?php phpinfo(); ?>访问
localhost:8000/1.php会发现不解析 php
- php 搭建
apt install php apt install php-mysql重启 apache2 服务
service apache2 restart成功解析 php 代码
- MySQL 搭建
docker run -it -d -p 3000:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql(编号) /bin/sh # -e 默认mysql账号 root 密码 123456进入 MySQL 容器,并开启 MySQL 服务
docker exec -it 4fc917 bash service mysql start接下来 配置 MySQL 进入MySQL
mysql -u root -p # 或者 mysql可以直接进入 mysql 更改账号密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';或者可以参试以下方法更改账号密码
cat /etc/mysql/debian.cnf 用debian.cnf里面的用户名和密码来登录 use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES; sudo service mysql restart 创建远程用户并赋予权限 CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';物理机访问 MySQL,不出意外是能成功访问 Docker 容器内的 MySQL
mysql -uadmin -p123456 -h本机ip -P3000同理,php访问mysql也是 ip+端口号 这种方式 注:MySQL搭建这部分的更改账号密码可能会出现意外,可以去网上寻找其它方法 这里我为什么不在 ubutn/apache2 容器内部署mysql或者直接用lamp呢,这是因为我尝试了几次,发现,如果 apache2 和 mysql 在同一个容器内,那么 apache2 或者 mysql 总是启动不成功,所以就用了 MySQL独占一个容器的方法。 附:部署文件上传题目的时候,要更改文件上传的目录所属,否则文件上传不上去
chown -R www-data:www-data /var/www/upload
这篇关于Docke 搭建 apache2 + php8 + MySQL8 环境的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享