专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

centos/php-73-centos7 Docker 镜像 - 轩辕镜像

php-73-centos7
centos/php-73-centos7
用于构建和运行PHP 7.3应用程序的Source-to-Image(S2I)基础镜像,支持RHEL、CentOS和Fedora基础,包含npm工具,可通过podman或docker运行。
8 收藏0 次下载
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

PHP 7.3容器镜像

此容器镜像包含PHP 7.3,作为PHP 7.3应用程序的Source-to-Image(S2I)基础镜像。用户可选择基于RHEL、CentOS或Fedora的构建器镜像:RHEL UBI镜像可在Red Hat Container Catalog获取,CentOS镜像在Quay.io,Fedora镜像在Fedora Registry。生成的镜像可使用podman或docker运行(本文档示例中podman命令可替换为docker,参数相同)。

描述

PHP 7.3容器镜像是构建和运行各类PHP 7.3应用程序及框架的基础平台。PHP是一种嵌入HTML的脚本语言,便于开发人员编写动态生成的网页,内置多种数据库集成,简化数据库驱动网页的开发,常作为CGI脚本的替代方案。

此容器镜像包含npm工具,用户可用于安装Web应用的JavaScript模块。但不保证镜像中包含特定版本的npm或nodejs,这些版本可能随时变更,nodejs仅为支持npm运行而包含。

在OpenShift中使用

假设使用ubi8/php-73镜像(在OpenShift中通过php:73镜像流标签可用),以下示例构建简单的cakephp-sample-app应用:

oc new-app php:7.3~[***]

访问应用:

$ oc get pods
$ oc exec <pod> -- curl 127.0.0.1:8080

直接访问应用:

$ curl 127.0.0.1:8080
Source-to-Image框架与脚本

此镜像支持OpenShift的Source-to-Image(S2I)策略。S2I是一种框架,可将应用源码作为输入,通过构建器镜像(如本PHP镜像)生成运行应用的新镜像。

为支持S2I,镜像包含以下关键脚本:

  • /usr/libexec/s2i/assemble:用于生成包含应用 artifacts 的新镜像,将应用源码放置到镜像内适当目录,利用PHP应用开发的常见模式。
  • /usr/libexec/s2i/run:作为生成镜像的默认命令,启动启用PHP支持的httpd服务。
使用Dockerfile构建应用

相比S2I策略,Dockerfile提供更灵活的PHP应用镜像构建方式,适用于S2I不够灵活或在OpenShift外构建的场景。步骤如下:

1. 拉取基础构建器镜像
podman pull ubi8/php-73

示例使用UBI镜像ubi8/php-73,其可根据UBI最终用户许可协议(EULA)自由分发使用,详见UBI FAQ。

2. 拉取应用代码

以cakephp-ex示例应用为例,可克隆仓库进行实验:

git clone [***] app-src
3. 在容器内准备应用

通常包括:放置源码、安装依赖、设置默认命令。可通过两种方式实现:

3.1. 自定义设置

创建如下Dockerfile:

FROM ubi8/php-73

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

# 安装依赖
RUN TEMPFILE=$(mktemp) && \
    curl -o "$TEMPFILE" "[***]" && \
    php <"$TEMPFILE" && \
    ./composer.phar install --no-interaction --no-ansi --optimize-autoloader

# 运行脚本配置PHP应用并启动httpd
CMD /usr/libexec/s2i/run

3.2. 使用S2I脚本

创建如下Dockerfile:

FROM ubi8/php-73

# 添加源码至S2I脚本预期目录并设置权限
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. 构建新镜像
podman build -t cakephp-app .
5. 运行应用镜像
podman run -d cakephp-app
Source-to-Image的环境变量

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

PHP.ini相关变量

以下变量对应php.ini中的属性:

  • ERROR_REPORTING:指定PHP处理的错误、警告和通知类型,默认:E_ALL & ~E_NOTICE
  • DISPLAY_ERRORS:控制PHP是否输出错误信息,默认:ON
  • DISPLAY_STARTUP_ERRORS:控制启动阶段错误是否输出,默认:OFF
  • TRACK_ERRORS:是否将最后错误信息存储在$php_errormsg,默认:OFF
  • HTML_ERRORS:是否将错误链接到文档,默认:ON
  • INCLUDE_PATH:PHP源码文件路径,EL7默认:.:/opt/app-root/src:/opt/rh/rh-php73/root/usr/share/pear;EL8/Fedora默认:.:/opt/app-root/src:/usr/share/pear
  • PHP_MEMORY_LIMIT:内存限制,默认:128M
  • SESSION_NAME:会话名称,默认:PHPSESSID
  • SESSION_HANDLER:会话保存方式,默认:files
  • SESSION_PATH:会话数据文件位置,默认:/tmp/sessions
  • SESSION_COOKIE_DOMAIN:会话Cookie有效域,默认:空
  • SESSION_COOKIE_HTTPONLY:是否添加httpOnly标志,默认:0
  • SESSION_COOKIE_SECURE:是否仅通过安全连接发送Cookie,默认:Off
  • SHORT_OPEN_TAG:是否识别标签,默认:OFF
  • DOCUMENTROOT:应用文档根目录,默认:/
opcache.ini相关变量

以下变量对应opcache.ini中的属性:

  • OPCACHE_MEMORY_CONSUMPTION:OPcache共享内存大小(MB),默认:128
  • OPCACHE_REVALIDATE_FREQ:脚本更新检查间隔(秒),0为每次请求检查,默认:2
  • OPCACHE_MAX_FILES:OPcache哈希表最大脚本数(200-***),默认:4000
覆盖配置目录
  • PHPRC:设置php.ini文件路径
  • PHP_INI_SCAN_DIR:扫描额外ini配置文件的路径
Apache MPM设置

可覆盖Apache MPM prefork设置优化性能,容器会根据Cgroup限制自动调整,也可手动指定:

  • HTTPD_START_SERVERS:启动时创建的子进程数,默认:8
  • HTTPD_MAX_REQUEST_WORKERS:最大并发请求数(httpd 2.3.13前为MaxClients),默认:256(根据公式TOTAL_MEMORY / 15MB自动调整,15MB为单个httpd进程平均大小)
Composer相关变量
  • COMPOSER_MIRROR:自定义Composer仓库镜像URL,仅影响composer.json中的包
  • COMPOSER_INSTALLER:覆盖Composer安装器默认URL([***]
  • COMPOSER_ARGS:添加composer install命令额外参数(如--no-dev)
源仓库布局

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

  • composer.json:列出需通过composer安装的依赖,格式见文档
  • .htaccess:若应用文档根目录嵌套在/opt/app-root/src下,可提供自定义Apache配置文件,位于源码根目录,用于覆盖Apache行为和处理请求
热部署

要实时生效源码变更,需运行镜像时通过-e传递环境变量OPCACHE_REVALIDATE_FREQ=0:

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

修改运行中容器的源码,使用Podman exec命令:

podman exec -it <CONTAINER_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)
./应用源码
参见

Dockerfile及其他源码见[***]Dockerfile,RHEL7对应Dockerfile.rhel7,RHEL8对应Dockerfile.rhel8,Fedora对应Dockerfile.fedora)。

安全影响

-p 8080:8080会将容器端口8080映射到主机相同端口,需注意端口暴露的安全风险。

查看更多 php-73-centos7 相关镜像 →
apache/cassandra-centos7-build logo
apache/cassandra-centos7-build
Apache Cassandra是一个开源分布式NoSQL数据库,提供高可用性、线性可扩展性和容错能力,适用于处理海量结构化数据,支持跨数据中心部署和无单点故障架构。
4.3K pulls
上次更新:未知
eclipse/openj9-jenkins-agent-ppc64le-centos7 logo
eclipse/openj9-jenkins-agent-ppc64le-centos7
暂无描述
2.2K pulls
上次更新:未知
centos/php-56-centos7 logo
centos/php-56-centos7
用于构建和运行PHP 5.6应用程序的S2I基础镜像,支持RHEL和CentOS版本,可通过Docker运行,提供PHP环境配置、依赖管理及Apache集成,简化动态网页开发和部署流程。
3410M+ pulls
上次更新:未知
centos/mysql-57-centos7 logo
centos/mysql-57-centos7
MySQL 5.7 SQL数据库服务器容器镜像,适用于OpenShift和一般用途,支持RHEL、CentOS和Fedora基础镜像,提供环境变量配置、数据持久化及扩展功能。
9410M+ pulls
上次更新:未知
centos/ruby-25-centos7 logo
centos/ruby-25-centos7
用于构建和运行Ruby 2.5应用程序的平台,支持RHEL、CentOS和Fedora基础镜像,集成S2I框架和npm工具,可通过OpenShift或Dockerfile灵活部署。
310M+ pulls
上次更新:未知
centos/nginx-112-centos7 logo
centos/nginx-112-centos7
用于运行nginx 1.12或构建基于nginx的应用程序的平台
1610M+ pulls
上次更新:未知

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

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

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

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

用户头像

oldzhang

运维工程师

Linux服务器

5

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

轩辕镜像
镜像详情
...
centos/php-73-centos7
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
咨询镜像拉取问题请 提交工单,官方技术交流群:1072982923
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.