以下是使用 Docker 启动一个可以热更新的 PHP Web 环境的简单步骤。

1. 准备 docker-compose.yml

创建一个文件 docker-compose.yml,内容如下:

version: '3.8'

services:
web:
image: php:8.2-apache # 使用 PHP 官方镜像
container_name: php_web
ports:
- "8080:80" # 将容器端口 80 映射到主机端口 8080
volumes:
- ./html:/var/www/html # 挂载本地代码到容器,支持热更新
- ./php.ini:/usr/local/etc/php/php.ini # 挂载自定义 PHP 配置(可选)

2. 创建本地项目目录

在当前目录下创建一个 html 文件夹,存放你的 PHP 项目代码。

示例文件 html/index.php:

<?php
echo "Hello, World! ";
echo "Current Time: " . date('Y-m-d H:i:s');
?>

3. 可选:配置自定义 PHP 配置

如果需要自定义 PHP 配置(如启用错误报告或调整缓存设置),创建一个 php.ini 文件:

示例文件 php.ini:

[PHP]
# 启用错误报告
error_reporting = E_ALL
display_errors = On
display_startup_errors = On

# 配置 OPCache 以支持文件变更即时生效
opcache.enable = 1
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0

4. 启动容器

运行以下命令启动容器:

docker-compose up -d

5. 测试热更新

1. 打开浏览器访问 http://localhost:8080。


2. 修改 html/index.php 文件,例如将 Hello, World! 改为其他内容。


3. 保存文件后刷新浏览器页面,改动会立即生效。



说明

热更新:通过将本地代码目录 ./html 挂载到容器内的 /var/www/html,实现代码的实时同步和热更新。

适用场景:该配置适用于开发环境,生产环境可能需要禁用错误报告并调整 opcache 配置以优化性能。

镜像选择:此处使用 php:8.2-apache,你可以根据需要替换为其他版本(如 php:7.4-apache)。


停止容器

如需停止并移除容器,执行以下命令:

docker-compose down
 
 
Back to Top