专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量我的订单
文档

工具
提交工单页面收录

帮助
轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
php-72-centos7

centos/php-72-centos7

centos

用于构建和运行PHP 7.2应用的平台

10 次收藏下载次数: 0状态:社区镜像维护者:centos仓库类型:镜像最近更新:5 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 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 7.2 Docker镜像文档

镜像概述和主要用途

PHP 7.2容器镜像是一个基于Source-to-Image(S2I)的基础镜像,用于构建和运行PHP 7.2应用程序。用户可以选择基于RHEL或CentOS的构建器镜像:

  • RHEL UBI镜像可从Red Hat Container Catalog获取
  • CentOS镜像可从Quay.io获取
  • Fedora镜像可从Fedora Registry获取

生成的镜像可使用podman或docker运行(本文档中所有podman命令均可替换为docker命令,参数保持不变)。

核心功能和特性

  • 提供PHP 7.2运行环境,支持动态生成网页和数据库集成
  • 内置npm工具,可用于安装Web应用所需的JavaScript模块
  • 支持Source-to-Image(S2I)构建策略,简化应用构建流程
  • 包含Apache HTTP服务器,已配置PHP支持
  • 提供灵活的环境变量配置,可定制PHP和Apache行为
  • 支持热部署功能,便于开发和调试
  • 可通过多种方式扩展镜像功能和配置

使用场景和适用范围

  • 作为构建和运行各种PHP 7.2应用程序和框架的基础平台
  • 快速部署PHP Web应用到容器化环境或OpenShift平台
  • 开发和测试PHP 7.2应用程序
  • 构建基于PHP的动态网站和Web服务
  • 替换传统CGI脚本的PHP编码场景

详细使用方法和配置说明

在OpenShift中使用

假设使用ubi8/php-72镜像,在OpenShift中可通过php:72镜像流标签访问。

构建示例cakephp应用:

bash
oc new-app php:7.2~https://github.com/sclorg/cakephp-ex.git

访问应用:

bash
oc get pods
oc exec <pod名称> -- curl 127.0.0.1:8080

或直接访问:

bash
curl 127.0.0.1:8080

Source-to-Image框架和脚本

该镜像支持OpenShift的Source-to-Image(S2I)策略,这是一个将应用源代码作为输入,使用构建器镜像生成可运行应用镜像的框架。

构建器镜像包含以下重要脚本:

  • /usr/libexec/s2i/assemble: 用于生成包含应用程序工件的新镜像,将应用源代码放置到镜像中的适当目录
  • /usr/libexec/s2i/run: 作为生成的容器镜像的默认命令,启动启用PHP支持的httpd服务

使用Dockerfile构建应用

与Source-to-Image策略相比,使用Dockerfile是构建包含应用程序的PHP容器镜像的更灵活方式,适用于S2I不够灵活或在OpenShift环境外构建镜像的场景。

步骤1:拉取基础构建器镜像

bash
podman pull ubi8/php-72

UBI镜像ubi8/php-72可在UBI最终用户许可协议(EULA)条款下自由使用和重新分发。

步骤2:拉取应用代码

以cakephp示例应用为例:

bash
git clone https://github.com/sclorg/cakephp-ex.git app-src

步骤3:在容器中准备应用

此步骤通常包括:将应用源代码放入容器、安装依赖项、设置生成镜像的默认命令。有两种方法可实现:

3.1 使用自定义设置

创建以下Dockerfile:

dockerfile
FROM ubi8/php-72

# 添加应用源代码
ADD app-src .

# 安装依赖
RUN TEMPFILE=$(mktemp) && \
    curl -o "$TEMPFILE" "https://getcomposer.org/installer" && \
    php <"$TEMPFILE" && \
    ./composer.phar install --no-interaction --no-ansi --optimize-autoloader

# 运行脚本使用标准方式配置PHP应用并最终执行httpd -D FOREGROUND
CMD /usr/libexec/s2i/run

3.2 使用Source-to-Image脚本

创建以下Dockerfile:

dockerfile
FROM ubi8/php-72

# 将应用源代码添加到assemble脚本期望的目录并设置权限
USER 0
ADD app-src /tmp/src
RUN chown -R 1001:0 /tmp/src
USER 1001

# 安装依赖
RUN /usr/libexec/s2i/assemble

# 设置生成镜像的默认命令
CMD /usr/libexec/s2i/run

步骤4:从Dockerfile构建新镜像

bash
podman build -t cakephp-app .

步骤5:运行包含最终应用的镜像

bash
podman run -d cakephp-app

环境变量配置

可在源代码仓库中的.s2i/environment文件中设置键值对形式的环境变量。

PHP配置环境变量

以下环境变量设置php.ini文件中的相应属性值:

环境变量描述默认值
ERROR_REPORTING配置PHP错误、警告和通知的报告级别E_ALL & ~E_NOTICE
DISPLAY_ERRORS控制PHP是否输出错误、通知和警告ON
DISPLAY_STARTUP_ERRORS控制PHP启动序列期间发生的错误是否单独处理OFF
TRACK_ERRORS是否将最后一个错误/警告消息存储在$php_errormsg中OFF
HTML_ERRORS是否将错误链接到相关文档ON
INCLUDE_PATHPHP源代码文件路径.:/opt/app-root/src:/opt/rh/rh-php72/root/usr/share/pear (EL7)
.:/opt/app-root/src:/usr/share/pear (EL8, Fedora)
PHP_MEMORY_LIMIT内存限制128M
SESSION_NAME会话名称PHPSESSID
SESSION_HANDLER会话保存方法files
SESSION_PATH会话数据文件位置/tmp/sessions
SESSION_COOKIE_DOMAINCookie有效的域空
SESSION_COOKIE_HTTPONLY是否为Cookie添加httpOnly标志0
SESSION_COOKIE_SECURE是否仅通过安全连接发送CookieOff
SHORT_OPEN_TAGPHP是否识别标签之间的代码OFF
DOCUMENTROOT应用程序的DocumentRoot路径/

OPCache配置环境变量

以下环境变量设置opcache.ini文件中的相应属性值:

环境变量描述默认值
OPCACHE_MEMORY_CONSUMPTIONOPcache共享内存存储大小(MB)128
OPCACHE_REVALIDATE_FREQ检查脚本时间戳更新的频率(秒)2
OPCACHE_MAX_FILESOPcache哈希表中的最大键(脚本)数4000

PHP配置覆盖

环境变量描述
PHPRC设置php.ini文件的路径
PHP_INI_SCAN_DIR扫描其他ini配置文件的路径

Apache MPM配置

可覆盖Apache MPM prefork设置以提高PHP应用性能:

环境变量描述默认值
HTTPD_START_SERVERS启动时创建的子服务器进程数8
HTTPD_MAX_REQUEST_WORKERS同时服务的请求数限制256(通过公式自动调整:总内存/15MB)

Composer配置

环境变量描述
COMPOSER_MIRROR自定义composer仓库镜像URL
COMPOSER_INSTALLER覆盖默认Composer下载URL
COMPOSER_ARGS添加额外的composer install命令行参数

源代码仓库布局

现有PHP项目仓库无需修改,但以下文件会影响构建过程:

composer.json

需通过composer安装的依赖项列表,格式文档见Composer架构。

.htaccess

如果应用程序的DocumentRoot嵌套在源代码目录/opt/app-root/src中,用户可以提供自己的Apache .htaccess文件,用于覆盖Apache行为并指定如何处理应用程序请求。该文件需要位于应用程序源代码的根目录。

热部署配置

要立即获取应用源代码中的更改,需使用OPCACHE_REVALIDATE_FREQ=0环境变量运行构建的镜像:

bash
podman run -e OPCACHE_REVALIDATE_FREQ=0 -p 8080:8080 php-app

要在运行中的容器中更改源代码,使用Podman的exec命令:

bash
podman exec -it <容器ID> /bin/bash

执行后,当前目录将设置为源代码所在的/opt/app-root/src目录。

镜像扩展方法

不仅可以扩展镜像内容,还可以使用source-to-image扩展镜像的启动脚本和配置。应用程序结构如下:

文件夹名称描述
./httpd-cfg可包含其他Apache配置文件(*.conf)
./httpd-ssl可包含自己的SSL证书(在certs/子目录)和密钥(在private/子目录)
./php-pre-start可包含在httpd启动前执行的shell脚本(*.sh)
./php-post-assemble可包含在assemble脚本结束时执行的shell脚本(*.sh)
./应用程序源代码

部署示例

Docker Run命令示例

bash
# 基本运行
docker run -d -p 8080:8080 --name php-app ubi8/php-72

# 带环境变量配置
docker run -d -p 8080:8080 \
  -e PHP_MEMORY_LIMIT=256M \
  -e OPCACHE_REVALIDATE_FREQ=0 \
  --name php-app ubi8/php-72

# 挂载本地代码目录进行开发
docker run -d -p 8080:8080 \
  -v ./my-php-app:/opt/app-root/src \
  -e OPCACHE_REVALIDATE_FREQ=0 \
  --name php-dev-app ubi8/php-72

Docker Compose配置示例

yaml
version: '3'
services:
  php-app:
    image: ubi8/php-72
    ports:
      - "8080:8080"
    environment:
      - PHP_MEMORY_LIMIT=256M
      - ERROR_REPORTING=E_ALL
      - DISPLAY_ERRORS=ON
      - OPCACHE_REVALIDATE_FREQ=0
    volumes:
      - ./my-php-app:/opt/app-root/src
    restart: unless-stopped

安全注意事项

  • 使用-p 8080:8080参数会将容器端口8080映射到主机的相同端口,确保仅在必要时暴露端口
  • 生产环境中应设置DISPLAY_ERRORS=OFF以避免敏感信息泄露
  • 考虑设置SESSION_COOKIE_SECURE=On和SESSION_COOKIE_HTTPONLY=1增强会话安全性
  • 定期更新基础镜像以获取安全补丁

相关资源

Dockerfile和其他源代码可在https://github.com/sclorg/s2i-php-container%E8%8E%B7%E5%8F%96%E3%80%82%E8%AF%A5%E4%BB%93%E5%BA%93%E8%BF%98%E5%8C%85%E5%90%AB%E5%85%B6%E4%BB%96%E7%89%88%E6%9C%AC%E7%9A%84Python%E7%8E%AF%E5%A2%83Dockerfile%EF%BC%9A

  • CentOS的Dockerfile名为Dockerfile
  • RHEL7的Dockerfile名为Dockerfile.rhel7
  • RHEL8的Dockerfile名为Dockerfile.rhel8
  • Fedora的Dockerfile名为Dockerfile.fedora

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 php-72-centos7 镜像标签

docker pull docker.xuanyuan.run/centos/php-72-centos7:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull centos/php-72-centos7:<标签>

更多 php-72-centos7 镜像推荐

htcondor/build-centos7 logo

htcondor/build-centos7

htcondor
用于在CentOS7上构建HTCondor的镜像,HTCondor是由威斯康星大学麦迪逊分校开发的分布式高吞吐量计算系统,可将大型计算工作负载拆分为作业并通过调度器在工作节点上运行。
10万+ 次下载
4 年前更新
apachepulsar/pulsar-cpp-build-centos7 logo

apachepulsar/pulsar-cpp-build-centos7

apachepulsar
暂无描述
1.4千+ 次下载
4 年前更新
apache/cassandra-centos7-build logo

apache/cassandra-centos7-build

Apache 软件基金会镜像
Apache Cassandra是一个开源分布式NoSQL数据库,提供高可用性、线性可扩展性和容错能力,适用于处理海量结构化数据,支持跨数据中心部署和无单点故障架构。
4.4千+ 次下载
2 年前更新
kubeovn/centos7-compile-dev logo

kubeovn/centos7-compile-dev

kubeovn
暂无描述
797 次下载
1 年前更新
kubeovn/centos7-compile logo

kubeovn/centos7-compile

kubeovn
暂无描述
762 次下载
1 年前更新
eclipse/openj9-jenkins-agent-ppc64le-centos7 logo

eclipse/openj9-jenkins-agent-ppc64le-centos7

eclipse
暂无描述
2.5千+ 次下载
6 年前更新

查看更多 php-72-centos7 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
centos/php-72-centos7
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:13763429
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.