
workingmachine/dokuwiki本镜像基于 PHP 官方镜像构建,集成 Apache Web 服务器与 GD 图形库扩展,提供开箱即用的 PHP 运行环境,适用于需要服务端图像处理能力的 Web 应用场景。
基础环境
GD 扩展能力
易用性
通过 docker run 快速启动容器,挂载本地代码目录并映射端口:
bash# 基础运行(映射本地 8080 端口到容器 80 端口,挂载当前目录代码) docker run -d \ -p 8080:80 \ -v $(pwd):/var/www/html \ --name php-gd-app \ php-gd-apache
参数说明:
-p 8080:80:将容器 Apache 服务端口 80 映射到本地 8080 端口-v $(pwd):/var/www/html:挂载本地当前目录到容器 Apache 默认网站根目录--name:指定容器名称(可选)通过 docker-compose.yml 管理多服务依赖(如搭配数据库):
yamlversion: '3.8' services: web: image: php-gd-apache ports: - "80:80" # 直接映射宿主机 80 端口(需 root 权限) volumes: - ./src:/var/www/html # 本地代码目录 - ./config/php.ini:/usr/local/etc/php/php.ini # 自定义 php.ini - ./config/apache2.conf:/etc/apache2/apache2.conf # 自定义 Apache 配置 environment: - PHP_MEMORY_LIMIT=256M # PHP 内存限制 - UPLOAD_MAX_FILESIZE=20M # 上传文件大小限制 - APACHE_SERVER_NAME=example.com # Apache 服务器名称 restart: unless-stopped # 容器退出时自动重启(非手动停止)
通过挂载 php.ini 文件覆盖默认配置:
config/php.ini,添加自定义参数:
inimemory_limit = 256M upload_max_filesize = 20M post_max_size = 25M date.timezone = Asia/Shanghai
docker run 或 docker-compose 中挂载该文件至容器的 PHP 配置目录(默认路径:/usr/local/etc/php/php.ini)。修改 Apache 虚拟主机或模块配置:
config/apache2.conf 或 .htaccess 文件,添加规则(如 URL 重写):
apache<VirtualHost *:80> ServerName example.com DocumentRoot /var/www/html/public <Directory /var/www/html/public> AllowOverride All Require all granted </Directory> </VirtualHost>
/etc/apache2/apache2.conf 或 /var/www/html/.htaccess)。| 环境变量名 | 说明 | 默认值 |
|---|---|---|
PHP_MEMORY_LIMIT | PHP 内存限制 | 128M |
UPLOAD_MAX_FILESIZE | 单文件上传大小限制 | 2M |
POST_MAX_SIZE | POST 数据总大小限制 | 8M |
DATE_TIMEZONE | PHP 时区配置 | UTC |
APACHE_SERVER_NAME | Apache 服务器域名 | localhost |
APACHE_RUN_USER | Apache 进程运行用户 | www-data |
数据持久化
volumes 挂载,避免容器重建导致代码丢失。性能优化
PHP_FPM_MAX_CHILDREN(若启用 PHP-FPM)或 Apache MaxRequestWorkers。PHP_MEMORY_LIMIT 足够(建议 ≥ 256M)。安全加固
root 运行 Apache。.dockerignore 排除本地开发文件(如 .git、node_modules),减少镜像体积及安全风险。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务