跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

Docke 搭建 apache2 + php8 + MySQL8 环境


KaiWn

推荐的帖子

  • 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
链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...