BroadcastChannel
https://channel.gandli.eu.org/
https://channel.gandli.eu.org/
搭建 PHP 开发环境并配置权限
以下是创建 PHP 开发环境、配置 MySQL 和 phpMyAdmin 权限、以及创建
### 步骤 1: 创建目录并进入项目目录
在终端中执行以下命令:
### 步骤 2: 创建
在
### 步骤 3: 启动 Docker 服务
在
这将会启动 MySQL、PHP+Apache 和 phpMyAdmin 服务。
### 步骤 4: 授权普通用户创建数据库和管理权限
MySQL 容器启动后,执行以下命令为普通用户
首先,进入 MySQL 容器:
输入
这将授予
### 步骤 5: 创建
在
### 步骤 6: 访问 PHP 开发环境
1. **访问 PHP 页面**:在浏览器中访问 `http://localhost:8080/`,你将看到 PHP 配置信息页面。
2. 访问 phpMyAdmin:在浏览器中访问 `http://localhost:8081/`,使用以下凭据登录:
- **用户名**:`user`
- **密码**:`password`
登录后,你可以使用
### 总结
通过以上步骤,你成功搭建了一个包含 MySQL、PHP+Apache 和 phpMyAdmin 的开发环境,并授予了普通用户创建数据库的权限。同时,你也创建了一个简单的 PHP 文件来展示 PHP 配置信息。
#docker #php #mysql #phpmyadmin #开发环境 #权限控制
以下是创建 PHP 开发环境、配置 MySQL 和 phpMyAdmin 权限、以及创建
index.php 文件的详细步骤。### 步骤 1: 创建目录并进入项目目录
在终端中执行以下命令:
mkdir php-dev && cd php-dev### 步骤 2: 创建
docker-compose.yml 文件在
php-dev 目录下创建一个 docker-compose.yml 文件,内容如下:version: '3.7'
services:
# 构建 MySQL 服务
mysql:
image: mysql:8.0 # 使用官方 MySQL 镜像
container_name: php_mysql
environment:
MYSQL_ROOT_PASSWORD: password # 设置 MySQL root 密码
MYSQL_DATABASE: pikachu # 设置初始化数据库
MYSQL_USER: user # 创建用户
MYSQL_PASSWORD: password # 设置用户密码
# MYSQL_ALLOW_EMPTY_PASSWORD: "yes" # 允许空密码
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_bin
- --lower_case_table_names=1
ports:
- "3306:3306" # 映射端口
volumes:
- mysql_data:/var/lib/mysql # 数据持久化
# 构建 PHP+Apache 服务
web:
image: php:8.2-apache # 使用 PHP + Apache 官方镜像
container_name: php-apache
depends_on:
- mysql # 确保 MySQL 在此服务之前启动
volumes:
- ./html:/var/www/html # 将主机目录挂载到容器工作目录
ports:
- "8080:80" # 映射端口
# 构建 phpMyAdmin 服务
phpmyadmin:
image: phpmyadmin/phpmyadmin # 使用官方 phpMyAdmin 镜像
container_name: phpmyadmin
environment:
PMA_HOST: php_mysql # 设置连接的 MySQL 容器名称
PMA_USER: user # 设置 phpMyAdmin 使用的数据库用户名
PMA_PASSWORD: password # 设置 phpMyAdmin 使用的密码
depends_on:
- mysql # 确保 MySQL 启动后才启动 phpMyAdmin
ports:
- "8081:80" # 映射端口
# 定义持久化存储
volumes:
mysql_data:### 步骤 3: 启动 Docker 服务
在
php-dev 目录下执行以下命令启动服务:docker-compose up -d这将会启动 MySQL、PHP+Apache 和 phpMyAdmin 服务。
### 步骤 4: 授权普通用户创建数据库和管理权限
MySQL 容器启动后,执行以下命令为普通用户
user 授予创建、删除、修改数据库的权限。首先,进入 MySQL 容器:
docker exec -it php_mysql mysql -u root -p输入
root 密码后,执行以下 SQL 语句:GRANT CREATE, DROP, ALTER, INDEX ON *.* TO 'user'@'%';
FLUSH PRIVILEGES;这将授予
user 用户在所有数据库上的创建、删除、修改和索引权限,并刷新权限表。### 步骤 5: 创建
index.php 文件在
php-dev 目录下创建 html 文件夹,并在其中创建 index.php 文件:echo "<?php phpinfo(); ?>" > html/index.php### 步骤 6: 访问 PHP 开发环境
1. **访问 PHP 页面**:在浏览器中访问 `http://localhost:8080/`,你将看到 PHP 配置信息页面。
2. 访问 phpMyAdmin:在浏览器中访问 `http://localhost:8081/`,使用以下凭据登录:
- **用户名**:`user`
- **密码**:`password`
登录后,你可以使用
phpMyAdmin 来管理 MySQL 数据库和执行其他操作。### 总结
通过以上步骤,你成功搭建了一个包含 MySQL、PHP+Apache 和 phpMyAdmin 的开发环境,并授予了普通用户创建数据库的权限。同时,你也创建了一个简单的 PHP 文件来展示 PHP 配置信息。
#docker #php #mysql #phpmyadmin #开发环境 #权限控制
# kali
1 . 换源
[LinuxMirrors](https://linuxmirrors.cn/use)
> GNU/Linux 更换系统软件源脚本及 Docker 安装脚本
2. Docker 安装脚本
4. Node.js
5. Python
6. snap
8. oh my zsh 、zplug
9. font
10 . shell 历史记录
11. docker 靶场
快速启动php web 服务
[sqli-labs](https://github.com/Audi-1/sqli-labs)
> SQLI 实验室测试基于错误、基于盲布尔值、基于时间。
[docker-dvwa](https://github.com/infoslack/docker-dvwa)
> DVWA(极易受攻击的Web应用程序)的Docker镜像
[upload-labs](https://github.com/c0ny1/upload-labs)
> 一个想帮你总结所有类型的上传漏洞的靶场
[pikachu](https://github.com/zhuifengshaonianhanlu/pikachu)
> 一个好玩的Web安全-漏洞测试平台
[php_ser_Class](https://github.com/mcc0624/php_ser_Class)
> php反序列化靶场课程,基于课程制作的靶场
[PHPSerialize-labs](https://github.com/ProbiusOfficial/PHPSerialize-labs)
> PHPSerialize-labs是一个使用php语言编写的,用于学习CTF中PHP反序列化的入门靶场。旨在帮助大家对PHP的序列化和反序列化有一个全面的了解。
[PHP-LAB](https://github.com/ShangRui-hash/php-lab)
> 基于docker搭建的一套环境,方便测试同一套PHP代码在不同PHP版本下运行的不一致性
[DPanel](https://github.com/donknap/dpanel)
> docker可视化管理面板
[Watchtower](https://github.com/containrrr/watchtower)
> 用于自动更新Docker容器基础镜像的流程。
#kali #docker #靶场
1 . 换源
[LinuxMirrors](https://linuxmirrors.cn/use)
> GNU/Linux 更换系统软件源脚本及 Docker 安装脚本
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)2. Docker 安装脚本
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
sudo usermod -aG docker $USER
newgrp docker4. Node.js
curl -fsSL https://fnm.vercel.app/install | bash5. Python
sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
curl https://pyenv.run | bash6. snap
sudo apt install -y snapd
sudo systemctl enable --now snapd apparmor
echo export PATH=$PATH:/snap/bin >> .zshrc8. oh my zsh 、zplug
sh -c "$(curl -fsSL https://mirror.ghproxy.com/https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zshsource ~/.zplug/init.zsh
# History config
HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.zsh_history
# zplug plugins
zplug "romkatv/powerlevel10k", as:theme, depth:1
zplug 'zplug/zplug', hook-build:'zplug --self-manage'
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-history-substring-search"
zplug "zsh-users/zsh-autosuggestions"
zplug "zdharma/fast-syntax-highlighting"
zplug "zpm-zsh/ls"
zplug "plugins/docker", from:oh-my-zsh
zplug "plugins/composer", from:oh-my-zsh
zplug "plugins/extract", from:oh-my-zsh
zplug "lib/completion", from:oh-my-zsh
zplug "plugins/sudo", from:oh-my-zsh
zplug "b4b4r07/enhancd", use:init.sh
# Install packages that have not been installed yet
if ! zplug check --verbose; then
printf "Install? [y/N]: "
if read -q; then
echo; zplug install
else
echo
fi
fi
zplug load9. font
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/install_manual.sh)"10 . shell 历史记录
bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh)11. docker 靶场
快速启动php web 服务
docker run -d -p 80:80 -v /home/kali/44227.php:/var/www/html/index.php php:apache[sqli-labs](https://github.com/Audi-1/sqli-labs)
> SQLI 实验室测试基于错误、基于盲布尔值、基于时间。
[docker-dvwa](https://github.com/infoslack/docker-dvwa)
> DVWA(极易受攻击的Web应用程序)的Docker镜像
[upload-labs](https://github.com/c0ny1/upload-labs)
> 一个想帮你总结所有类型的上传漏洞的靶场
docker run --name dvwa -dt -p 81:80 infoslack/dvwa
docker run --name sqli-lab -dt -p 82:80 acgpiano/sqli-labs:latest
docker run --name upload-labs -dt -p 83:80 c0ny1/upload-labs[pikachu](https://github.com/zhuifengshaonianhanlu/pikachu)
> 一个好玩的Web安全-漏洞测试平台
git clone https://gitclone.com/github.com/zhuifengshaonianhanlu/pikachu.git depth 1
docker build -t "pikachu" .
docker run -d --name pikchu -p 84:80 pikachu[php_ser_Class](https://github.com/mcc0624/php_ser_Class)
> php反序列化靶场课程,基于课程制作的靶场
docker pull mcc0624/ser:1.8
docker run -d --name php_ser_Class -p 85:80 mcc0624/ser:1.8[PHPSerialize-labs](https://github.com/ProbiusOfficial/PHPSerialize-labs)
> PHPSerialize-labs是一个使用php语言编写的,用于学习CTF中PHP反序列化的入门靶场。旨在帮助大家对PHP的序列化和反序列化有一个全面的了解。
git clone --depth 1 https://github.com/ProbiusOfficial/PHPSerialize-labs.git
cd PHPSerialize-labs
sudo docker compose up -d[PHP-LAB](https://github.com/ShangRui-hash/php-lab)
> 基于docker搭建的一套环境,方便测试同一套PHP代码在不同PHP版本下运行的不一致性
git clone https://github.com/ShangRui-hash/php-lab.git --edpth 1
docker compose up --build --remove-orphans [DPanel](https://github.com/donknap/dpanel)
> docker可视化管理面板
docker run -it -d --name dpanel --restart=always \
-p 90:8080 -e APP_NAME=dpanel \
-v /var/run/docker.sock:/var/run/docker.sock -v dpanel:/dpanel \
dpanel/dpanel:lite[Watchtower](https://github.com/containrrr/watchtower)
> 用于自动更新Docker容器基础镜像的流程。
docker run --detach \
--name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower#kali #docker #靶场
在 Kali Linux 上安装 Docker 的步骤归纳如下:
1. **更新包管理器**:
2. **安装 Docker**:
使用
3. **启动 Docker 并设置为开机自启**:
4. **测试 Docker 是否正常运行**:
你可以通过运行以下命令来验证:
5. **将当前用户添加到 Docker 组(可选)**:
如果希望在不使用
6. **重新登录**:
为使组的更改生效,退出并重新登录。
完成这些步骤后,你就可以在 Kali Linux 上使用 Docker 了。#kali #docker
1. **更新包管理器**:
sudo apt update
2. **安装 Docker**:
使用
docker.io 包进行安装: sudo apt install -y docker.io
3. **启动 Docker 并设置为开机自启**:
sudo systemctl enable docker --now
4. **测试 Docker 是否正常运行**:
你可以通过运行以下命令来验证:
docker
5. **将当前用户添加到 Docker 组(可选)**:
如果希望在不使用
sudo 的情况下运行 Docker,需将用户添加到 Docker 组: sudo usermod -aG docker $USER
6. **重新登录**:
为使组的更改生效,退出并重新登录。
完成这些步骤后,你就可以在 Kali Linux 上使用 Docker 了。#kali #docker