2

Docke 搭建 apache2 + php8 + MySQL8 环境 - 闲时喝喝茶

 1 year ago
source link: https://www.cnblogs.com/xshhc/p/16614123.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Docke 搭建 apache2 + php8 + MySQL8 环境

  • Docker 安装
执行 Docker 安装命令
curl -fsSL https://get.docker.com/ | sh
启动 Docker 服务
sudo service docker start
查看 Docker 是否正常工作
sudo service docker status
1446741-20220822201358268-713382652.png
更改用户权限
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
1446741-20220822201357680-577189987.png
这里选用第一个的 ubuntu + apache2 环境
docker pull ubuntu/apache2
1446741-20220822201358218-1209440626.png
docker images
1446741-20220822201358159-415075229.png
启动 ubuntu/apache2 容器
docker run -it -d -p 8000:80 ubuntu/apache2:latest /bin/sh
并查看当前活跃容器
1446741-20220822201358134-391622005.png
进入容器内部
docker exec -it 2af38a bash
1446741-20220822201357623-1994107340.png
开启 apache2 服务
service apache2 start
可以看到成功启动 apache2 服务
1446741-20220822201357648-753668507.png
在物理机上访问
localhost:8000
可以看到 apache2 成功运行
1446741-20220822201358343-859729178.png
在首页下新建php文件
vim /var/www/html/1.php 
# /var/www/html 是网站文件存放路径
如果 vim 提示未安装,则需要先安装
apt update #更新 
apt install vim #安装 vim
1.php 内容如下
<?php phpinfo(); ?>
localhost:8000/1.php
会发现不解析 php
  • php 搭建
在容器内部直接安装php
apt install php apt install php-mysql
重启 apache2 服务
service apache2 restart
成功解析 php 代码
1446741-20220822201358321-717887045.png
  • MySQL 搭建
ctrl +d 回到物理机终端
同 apache2 安装 MySQL(这里以MySQL8为例)
运行 MySQL 容器
docker run -it -d -p 3000:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql(编号) /bin/sh 
# -e 默认mysql账号 root 密码 123456
1446741-20220822201358209-217625297.png
进入 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

__EOF__

本文作者: 闲时喝喝茶 本文链接: https://www.cnblogs.com/xshhc/p/16614123.html 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK