搭建 PHP 开发环境并配置权限

以下是创建 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 #开发环境 #权限控制
 
 
Back to Top