
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像基于Debian 10 Buster构建,集成Apache 2.4 Web服务器,并支持PHP 7.4、7.3、7.2、7.1、7.0及5.6多个版本。采用新模板系统实现配置的灵活定制,默认配置针对开发环境优化,不建议直接用于生产环境。
适用于PHP应用的开发和测试环境,尤其适合需要在不同PHP版本间切换的开发场景。默认配置开启错误显示、调试模式等开发特性,不满足生产环境的安全和性能要求,请勿直接用于生产环境。
.env文件设置
通过.env文件定义基础环境变量,例如启用XDEBUG:
iniXDEBUG_ENABLED=1
docker-compose.yml配置
在docker-compose.yml中添加环境变量配置:
ymlenvironment: ## Web根目录,如Drupal脚手架可设为/web - WEB_ROOT ## SSH支持,如需启用需同时取消volumes中的# - ${SSH_AUTH_SOCK}:/ssh-agent注释 - SSH_AUTH_SOCK=/ssh-agent ### 警告:仅在不使用自定义php.ini时使用 - PHP_SENDMAIL_PATH - PHP_SENDMAIL_DOMAIN - XDEBUG_ENABLED
PHP配置
基于php.ini-development文件,各PHP版本默认配置如下:
| 变量名 | 7.4 | 7.3 | 7.2 | 7.1 | 7.0 | 5.6 |
|---|---|---|---|---|---|---|
PHP_DATE_TIMEZONE | Europe/Berlin | Europe/Berlin | Europe/Berlin | Europe/Berlin | Europe/Berlin | Europe/Berlin |
PHP_DISPLAY_ERRORS | On | On | On | On | On | On |
PHP_DISPLAY_STARTUP_ERRORS | On | On | On | On | On | On |
PHP_ERROR_REPORTING | E_ALL | E_ALL | E_ALL | E_ALL | E_ALL | E_ALL |
PHP_EXPOSE | On | On | On | On | On | On |
PHP_LOG_ERRORS | On | On | On | On | On | On |
PHP_LOG_ERRORS_MAX_LEN | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 |
PHP_MAX_EXECUTION_TIME | 30 | 30 | 30 | 30 | 30 | 30 |
PHP_MAX_FILE_UPLOADS | 20 | 20 | 20 | 20 | 20 | 20 |
PHP_MAX_INPUT_TIME | 60 | 60 | 60 | 60 | 60 | 60 |
PHP_MAX_INPUT_VARS | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 |
PHP_MEMORY_LIMIT | 128M | 128M | 128M | 128M | 128M | 128M |
PHP_POST_MAX_SIZE | 8M | 8M | 8M | 8M | 8M | 8M |
PHP_SENDMAIL_PATH | /usr/sbin/ssmtp -t | /usr/sbin/ssmtp -t | /usr/sbin/ssmtp -t | /usr/sbin/ssmtp -t | /usr/sbin/ssmtp -t | /usr/sbin/ssmtp -t |
PHP_TRACK_ERRORS | - | - | - | On | On | On |
PHP_UPLOAD_MAX_FILESIZE | 2M | 2M | 2M | 2M | 2M | 2M |
PHP_ZEND_ASSERTIONS | 1 | 1 | 1 | 1 | 1 | 1 |
XDEBUG_HOST | localhost | localhost | localhost | localhost | localhost | localhost |
PHP XDEBUG配置
| 变量名 | 默认值 |
|---|---|
XDEBUG_ENABLED | 1 |
XDEBUG_REMOTE_CONNECT_BACK | 1 |
XDEBUG_REMOTE_AUTOSTART | 1 |
XDEBUG_REMOTE_ENABLE | 1 |
XDEBUG_REMOTE_PORT | 9000 |
XDEBUG_MAX_NESTING_LEVEL | 500 |
XDEBUG_IDEKEY | PHPSTORM |
XDEBUG_PROFILER_ENABLE_TRIGGER | 1 |
XDEBUG_SHOW_ERROR_TRACE | 1 |
sSMTP配置
| 变量名 | 默认值 |
|---|---|
PHP_SENDMAIL_DOMAIN | true |
Apache虚拟主机配置
| 变量名 | 默认值 |
|---|---|
DEFAULT_ROOT | /var/www/html |
WEB_ROOT | (空值) |
APACHE_SERVER_NAME | localhost |
php.ini模板
基于php.ini-development,通过环境变量动态生成:
ini[PHP] expose_php = {{ getenv "PHP_EXPOSE" "On" }} error_reporting = {{ getenv "PHP_ERROR_REPORTING" "E_ALL" }} display_errors = {{ getenv "PHP_DISPLAY_ERRORS" "On" }} display_startup_errors = {{ getenv "PHP_DISPLAY_STARTUP_ERRORS" "On" }} log_errors = {{ getenv "PHP_LOG_ERRORS" "On" }} log_errors_max_len = {{ getenv "PHP_LOG_ERRORS_MAX_LEN" "1024" }} max_execution_time = {{ getenv "PHP_MAX_EXECUTION_TIME" "30" }} max_input_time = {{ getenv "PHP_MAX_INPUT_TIME" "60" }} max_input_vars = {{ getenv "PHP_MAX_INPUT_VARS" "2000" }} post_max_size = {{ getenv "PHP_POST_MAX_SIZE" "8M" }} upload_max_filesize = {{ getenv "PHP_UPLOAD_MAX_FILESIZE" "2M" }} max_file_uploads = {{ getenv "PHP_MAX_FILE_UPLOADS" "20" }} memory_limit = {{ getenv "PHP_MEMORY_LIMIT" "128M" }} [Date] date.timezone = {{ getenv "PHP_DATE_TIMEZONE" "Europe/Berlin"}} [Assertion] zend.assertions = {{ getenv "PHP_ZEND_ASSERTIONS" "1" }} [mail function] sendmail_path = {{ getenv "PHP_SENDMAIL_PATH" "/usr/sbin/ssmtp -t" }} [Xdebug] xdebug.remote_host = {{ getenv "XDEBUG_HOST" "localhost" }}
xdebug.ini模板
inixdebug.default_enable = {{ getenv "XDEBUG_ENABLED" "1" }} xdebug.remote_connect_back = {{ getenv "XDEBUG_REMOTE_CONNECT_BACK" "1" }} xdebug.remote_autostart = {{ getenv "XDEBUG_REMOTE_AUTOSTART" "1" }} xdebug.remote_enable = {{ getenv "XDEBUG_REMOTE_ENABLE" "1" }} xdebug.remote_host = {{ getenv "XDEBUG_HOST" "localhost" }} xdebug.remote_port = {{ getenv "XDEBUG_REMOTE_PORT" "9000" }} xdebug.max_nesting_level = {{ getenv "XDEBUG_MAX_NESTING_LEVEL" "500" }} xdebug.idekey = {{ getenv "XDEBUG_IDEKEY" "PHPSTORM" }} xdebug.profiler_enable_trigger = {{ getenv "XDEBUG_PROFILER_ENABLE_TRIGGER" "1" }} xdebug.show_error_trace = {{ getenv "XDEBUG_SHOW_ERROR_TRACE" "1" }}
sSMTP配置模板
inimailhub={{ getenv "PHP_SENDMAIL_DOMAIN" "true" }}
Apache虚拟主机模板
iniDocumentRoot {{ getenv "DEFAULT_ROOT" "/var/www/html" }}{{ getenv "WEB_ROOT" "" }} ServerName {{ getenv "APACHE_SERVER_NAME" "localhost" }}
ymlversion: '3' services: php-apache: image: [镜像名称] ports: - "80:80" volumes: - ./your-app:/var/www/html # 如需SSH支持,取消下一行注释 # - ${SSH_AUTH_SOCK}:/ssh-agent environment: - WEB_ROOT=/web # 如Drupal应用的web根目录 - SSH_AUTH_SOCK=/ssh-agent - PHP_MEMORY_LIMIT=256M # 自定义PHP内存限制 - XDEBUG_ENABLED=1 # 启用XDEBUG - APACHE_SERVER_NAME=myapp.local # 自定义服务器名称
bash# 创建.env文件 echo "XDEBUG_ENABLED=1" > .env # 启动服务 docker-compose up -d
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务