
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该容器镜像包含PHP 5.6,作为构建PHP 5.6应用程序的https://github.com/openshift/source-to-image基础镜像。用户可选择基于RHEL或CentOS的构建器镜像:RHEL镜像可从Red Hat Container Catalog获取,镜像名为registry.access.redhat.com/rhscl/php-56-rhel7;CentOS镜像可从https://hub.docker.com/r/centos/php-56-centos7/获取,镜像名为`centos/php-56-centos7`。生成的镜像可通过http://docker.io运行。
PHP 5.6容器镜像是构建和运行各种PHP 5.6应用程序及框架的基础平台。PHP是一种HTML嵌入式脚本语言,旨在帮助开发者轻松编写动态生成的网页。PHP还提供了对多种商业和非商业数据库管理系统的内置集成,因此编写数据库支持的网页变得简单。PHP最常见的用途可能是作为CGI脚本的替代品。
使用独立https://github.com/openshift/source-to-image构建简单的https://github.com/sclorg/s2i-php-container/tree/master/5.6/test/test-app应用,并通过http://docker.io运行:
RHEL基础镜像
bash$ s2i build https://github.com/sclorg/s2i-php-container.git --context-dir=5.6/test/test-app rhscl/php-56-rhel7 php-test-app $ docker run -p 8080:8080 php-test-app
CentOS基础镜像
bash$ s2i build https://github.com/sclorg/s2i-php-container.git --context-dir=5.6/test/test-app centos/php-56-centos7 php-test-app $ docker run -p 8080:8080 php-test-app
访问应用
bash$ curl 127.0.0.1:8080
可在源代码仓库的.sti/environment文件中设置键值对形式的环境变量,配置PHP和Apache行为。
PHP配置变量(php.ini)
| 变量名 | 描述 | 默认值 |
|---|---|---|
| ERROR_REPORTING | PHP错误、警告和通知的报告级别 | E_ALL & ~E_NOTICE |
| DISPLAY_ERRORS | 是否输出错误、通知和警告 | ON |
| DISPLAY_STARTUP_ERRORS | 是否单独处理启动阶段错误 | OFF |
| TRACK_ERRORS | 是否将最后错误信息存储在$php_errormsg中 | OFF |
| HTML_ERRORS | 是否将错误链接到相关文档 | ON |
| INCLUDE_PATH | PHP源文件路径 | .:/opt/app-root/src:/opt/rh/rh-php56/root/usr/share/pear |
| SESSION_NAME | 会话名称 | PHPSESSID |
| SESSION_HANDLER | 会话保存方式 | files |
| SESSION_PATH | 会话数据文件位置 | /tmp/sessions |
| SESSION_COOKIE_DOMAIN | Cookie有效的域名 | 空 |
| SESSION_COOKIE_HTTPONLY | 是否添加httpOnly标志到Cookie | 0 |
| SESSION_COOKIE_SECURE | 是否仅通过安全连接发送Cookie | Off |
| SHORT_OPEN_TAG | 是否识别标签间的代码 | OFF |
| DOCUMENTROOT | 应用程序的DocumentRoot路径 | / |
OPcache配置变量(opcache.ini)
| 变量名 | 描述 | 默认值 |
|---|---|---|
| OPCACHE_MEMORY_CONSUMPTION | OPcache共享内存存储大小(MB) | 128 |
| OPCACHE_REVALIDATE_FREQ | 脚本时间戳检查频率(秒,0为每次请求检查) | 2 |
PHP配置路径覆盖
| 变量名 | 描述 |
|---|---|
| PHPRC | 设置php.ini文件路径 |
| PHP_INI_SCAN_DIR | 扫描额外ini配置文件的路径 |
Apache MPM配置
| 变量名 | 描述 | 默认值 |
|---|---|---|
| HTTPD_START_SERVERS | 启动时创建的子服务器进程数 | 8 |
| HTTPD_MAX_REQUEST_WORKERS | 同时处理的最大请求数(httpd 2.3.13前称为MaxClients) | 256(通过公式总内存/15MB自动调整,15MB为单个httpd进程平均大小) |
Composer配置
| 变量名 | 描述 |
|---|---|
| COMPOSER_MIRROR | 自定义Composer仓库镜像URL(仅影响composer.json中的包) |
| COMPOSER_INSTALLER | 覆盖默认Composer安装器URL(适用于隔离环境) |
| COMPOSER_ARGS | 添加到composer install命令的额外参数(如--no-dev) |
现有PHP项目仓库无需修改,但以下文件会影响构建过程:
composer.json
需安装的依赖列表,格式参考https://getcomposer.org/doc/04-schema.md。
.htaccess
若应用的DocumentRoot嵌套在/opt/app-root/src目录下,可提供自定义Apache .htaccess文件,用于覆盖Apache行为和指定请求处理方式,需位于应用源代码根目录。
要立即应用源代码更改,需运行镜像时通过Docker -e标志传递环境变量OPCACHE_REVALIDATE_FREQ=0:
bash$ docker run -e OPCACHE_REVALIDATE_FREQ=0 -p 8080:8080 php-app
修改运行中容器的源代码,使用Docker exec命令:
bashdocker exec -it <容器ID> /bin/bash
执行后当前目录为/opt/app-root/src(源代码所在位置)。
可通过https://github.com/openshift/source-to-image扩展镜像内容、启动脚本和配置。应用结构如下:
| 文件夹名称 | 描述 |
|---|---|
./httpd-cfg | 包含额外的Apache配置文件(*.conf) |
./httpd-pre-init | 包含Apache启动前执行的shell脚本(*.sh) |
./httpd-ssl | 包含自定义SSL证书(certs/子目录)和密钥(private/子目录) |
./ | 应用程序源代码 |
Dockerfile及其他源代码位于https://github.com/sclorg/s2i-php-container,该仓库还包含其他PHP版本的Dockerfile。CentOS的Dockerfile名为`Dockerfile`,RHEL的Dockerfile名为`Dockerfile.rhel7`。
-p 8080:8080
开放容器8080端口并映射到主机相同端口。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务