Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

Docke 搭建 apache2 + php8 + MySQL8 环境

 Share


KaiWn

Recommended Posts

  • 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
Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...