专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

arm64v8/php Docker 镜像 - 轩辕镜像

php
arm64v8/php
PHP脚本语言镜像主要用于Web开发,同时具备通用目的使用能力。
28 收藏0 次下载activearm64v8镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

arm64v8/php 镜像文档

镜像概述

关于PHP

PHP是一种服务器端脚本语言,主要设计用于Web开发,同时也可作为通用编程语言使用。PHP代码可嵌入HTML中,或与多种模板引擎和Web框架配合使用,通常由Web服务器的原生模块或CGI解释器处理。

镜像定位

本镜像为PHP官方镜像的arm64v8架构构建版本,专门用于ARM64架构环境中PHP应用的容器化部署。更多关于多架构镜像的信息,请参见官方镜像文档中的“非amd64架构”部分。

核心功能与特性

  • 多架构支持:官方PHP镜像支持多种架构,本镜像专注于arm64v8架构
  • 多样化变体:提供cli、apache、fpm、alpine等变体,满足不同部署场景需求
  • 扩展安装工具:内置docker-php-ext-configure、docker-php-ext-install、docker-php-ext-enable等脚本,简化PHP扩展安装流程
  • 灵活配置体系:包含php.ini-development和php.ini-production默认配置文件,支持通过$PHP_INI_DIR/conf.d/目录自定义配置
  • 轻量级选项:提供基于Alpine Linux的变体,显著减小镜像体积,适合资源受限环境

使用场景

  • 命令行应用:通过cli变体运行PHP脚本、后台任务或开发工具
  • 独立Web服务:使用apache变体直接部署PHP Web应用,集成Apache服务器
  • 高性能Web部署:fpm变体配合Nginx等反向代理,适用于生产环境的高并发场景
  • 轻量级环境:alpine变体适合对镜像体积和资源占用有严格要求的场景

快速参考

维护与支持
  • 维护者:Docker社区
  • 获取帮助:Docker社区Slack、Server Fault、Unix & Linux、Stack Overflow
镜像信息
  • 支持的标签及Dockerfile链接:完整列表参见GitHub文档(因Hub长度限制已截断)
  • 提交issue:php镜像GitHub仓库
  • 支持的架构:amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x(更多信息)
  • 镜像元数据:repo-info仓库的php目录(包含镜像元数据、传输大小等)
  • 镜像更新:official-images仓库的library/php标签、official-images仓库的library/php文件
  • 文档来源:docs仓库的php目录

使用方法

创建PHP项目的Dockerfile

在PHP项目根目录创建Dockerfile:

dockerfile
FROM arm64v8/php:8.2-cli
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD ["php", "./your-script.php"]

构建并运行镜像:

console
$ docker build -t my-php-app .
$ docker run -it --rm --name my-running-app my-php-app
运行单个PHP脚本

对于简单的单文件项目,可直接使用镜像运行脚本,无需编写Dockerfile:

console
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp arm64v8/php:8.2-cli php your-script.php
安装PHP扩展
检查已安装扩展

首先通过以下命令检查镜像中预安装的扩展,避免重复安装:

console
$ docker run --rm arm64v8/php:8.2-cli php -m
扩展安装工具

镜像提供以下工具简化扩展管理:

  • docker-php-ext-configure:配置扩展编译选项
  • docker-php-ext-install:编译安装PHP核心扩展并自动启用
  • docker-php-ext-enable:手动启用已安装的扩展
  • docker-php-source:提取PHP源代码(用于扩展编译,需在同一镜像层删除以减小体积)
PHP核心扩展安装示例

以安装gd扩展(适用于FPM变体)为例:

dockerfile
FROM arm64v8/php:8.2-fpm
RUN apt-get update && apt-get install -y \
        libfreetype-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd

注意:需手动安装扩展依赖的系统库。若需简化依赖管理,可参考社区工具install-php-extensions。

PECL扩展安装示例

通过pecl install安装PECL扩展,再用docker-php-ext-enable启用:

dockerfile
FROM arm64v8/php:8.2-cli
RUN pecl install redis-5.3.7 \
    && pecl install xdebug-3.2.1 \
    && docker-php-ext-enable redis xdebug

建议指定扩展版本以确保兼容性。PECL扩展需逐个安装(避免安装失败被忽略),但可一次性启用多个。

其他扩展(非核心/非PECL)安装示例

对于未包含在PHP核心或PECL中的扩展,可通过源码编译安装:

dockerfile
FROM arm64v8/php:8.2-cli
RUN curl -fsSL '[扩展源码URL]' -o module-name.tar.gz \
    && mkdir -p /tmp/module-name \
    && sha256sum -c "[校验值]  module-name.tar.gz" \
    && tar -xf module-name.tar.gz -C /tmp/module-name --strip-components=1 \
    && rm module-name.tar.gz \
    && docker-php-ext-configure /tmp/module-name --enable-module-name \
    && docker-php-ext-install /tmp/module-name \
    && rm -r /tmp/module-name
以非特权用户运行
Apache变体
  • 内核版本≥4.11:添加--sysctl net.ipv4.ip_unprivileged_port_start=0,然后使用--user指定用户
  • 任意内核版本:修改Apache配置使用非特权端口(>1024),再通过--user指定用户
FPM变体

直接通过docker run的--user参数指定用户(支持容器内用户名/组或UID/GID):

console
$ docker run -it --rm --user 1000:1000 arm64v8/php:8.2-fpm
PHP配置
默认配置文件

镜像包含两套默认配置:

  • php.ini-development:开发环境配置(默认启用详细错误信息)
  • php.ini-production:生产环境配置(默认禁用调试信息,启用性能优化)

配置文件位于$PHP_INI_DIR(通常为/usr/local/etc/php)。

使用生产环境配置
dockerfile
FROM arm64v8/php:8.2-fpm-alpine
# 切换到生产环境配置
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
自定义配置

通过将配置文件挂载或复制到$PHP_INI_DIR/conf.d/目录来自定义配置:

dockerfile
FROM arm64v8/php:8.2-cli
# 添加自定义配置
COPY custom.ini "$PHP_INI_DIR/conf.d/"

生产环境建议启用OPcache扩展提升性能,参考PHP官方OPcache文档。

镜像变体

arm64v8/php:<version>-cli

用途:命令行脚本、工具或作为基础镜像
特点:

  • 包含PHP CLI工具(/usr/local/bin/php)
  • 唯一包含php-cgi二进制文件(用于PPM等工具)
  • 适合非Web场景的PHP应用
arm64v8/php:<version>-apache

用途:直接部署PHP Web应用
特点:

  • 基于Debian,集成Apache HTTP服务器和mod_php
  • 默认使用mpm_prefork模块
  • 适合需要快速部署的Web场景
基础用法示例

Dockerfile部署:

dockerfile
FROM arm64v8/php:7.2-apache
COPY src/ /var/www/html/

构建并运行:

console
$ docker build -t my-php-app .
$ docker run -d -p 80:80 --name my-running-app my-php-app

直接运行(无Dockerfile):

console
$ docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html arm64v8/php:7.2-apache
自定义DocumentRoot

通过环境变量修改Apache的网站根目录:

dockerfile
FROM arm64v8/php:7.1-apache
ENV APACHE_DOCUMENT_ROOT /path/to/new/root
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
arm64v8/php:<version>-fpm

用途:配合反向代理(如Nginx)的生产环境部署
特点:

  • 包含PHP-FPM(FastCGI Process Manager)
  • 需与反向代理配合使用,不建议直接暴露到公网
  • 适合高并发Web应用场景

安全警告:FastCGI协议不加密,禁止将FPM端口直接暴露到公网,仅在私有容器网络中使用。

arm64v8/php:<version>-alpine

用途:资源受限环境或对镜像体积有严格要求的场景
特点:

  • 基于Alpine Linux,基础镜像体积约5MB
  • 使用musl libc替代glibc,可能存在兼容性限制
  • 默认不包含额外工具(如git、bash),需手动安装

常见问题

安装Debian PHP包时报错“E: Package 'php-XXX' has no installation candidate”

此镜像默认阻止安装Debian的PHP包(避免冲突的PHP安装)。正确解决方法是使用docker-php-ext-install、pecl或phpize安装扩展,而非通过apt-get install php-XXX。

临时解决方法(不推荐,可能导致冲突):

dockerfile
RUN rm /etc/apt/preferences.d/no-debian-php

许可证

镜像中PHP软件的许可证信息参见PHP官方许可证页面。

镜像可能包含其他软件(如基础镜像中的Bash等),其许可证需由用户自行确认合规性。更多自动检测的许可证信息可参见repo-info仓库的php目录。

作为预构建镜像的使用者,您有责任确保对镜像的使用符合所有包含软件的相关许可证。

查看更多 php 相关镜像 →
php logo
php
by library
官方
PHP脚本语言虽最初为Web开发设计,却兼具通用目的用途,作为一种广泛应用的服务器端脚本语言,它能高效处理动态网页生成、数据库交互等Web开发核心任务,同时也可用于编写命令行脚本、开发桌面应用及进行系统管理等非Web领域,凭借其简洁语法与跨平台特性,成为众多开发者在不同场景下的实用工具。
78251B+ pulls
上次更新:5 天前
cimg/php logo
cimg/php
by CircleCI
认证
CircleCI PHP便捷镜像,专为PHP项目在CircleCI平台上的持续集成流程设计,提供预配置环境以简化集成部署。
610M+ pulls
上次更新:25 天前
devwithlando/php logo
devwithlando/php
by Lando Alliance
Lando是一款受专业开发者信赖的本地开发和DevOps工具,可帮助用户摆脱低效开发工具的束缚,节省时间与精力,专注于实际工作。
161M+ pulls
上次更新:1 个月前
serversideup/php logo
serversideup/php
by Server Side Up
适合生产环境的PHP Docker镜像,针对Laravel和WordPress进行了优化。
551M+ pulls
上次更新:18 天前
paketobuildpacks/php logo
paketobuildpacks/php
by Linux Foundation
暂无描述
5M+ pulls
上次更新:11 个月前
shinsenter/php logo
shinsenter/php
by SHIN Company
简化的PHP Docker镜像,便于轻松定制和扩展设置。
32500K+ pulls
上次更新:7 天前

轩辕镜像配置手册

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

登录仓库拉取

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

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

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的头像

oldzhang

运维工程师

Linux服务器

5

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

轩辕镜像
镜像详情
...
arm64v8/php
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429