轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
shinsenter/php
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

php Docker 镜像下载 - 轩辕镜像

php 镜像详细信息和使用指南

php 镜像标签列表和版本信息

php 镜像拉取命令和加速下载

php 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

php
shinsenter/php

php 镜像详细信息

php 镜像标签列表

php 镜像使用说明

php 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

简化的PHP Docker镜像,便于轻松定制和扩展设置。
30 收藏0 次下载activeshinsenter镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

php 镜像详细说明

php 使用指南

php 配置说明

php 官方文档

PHP Docker镜像文档

📦 简化的PHP Docker镜像,支持轻松定制和扩展设置。

镜像概述和主要用途

本PHP Docker镜像基于官方PHP Docker镜像构建,支持PHP 5.6至8.5(beta)版本,提供CLI、ZTS、FPM、FPM/Apache2、FPM/Nginx、RoadRunner和FrankenPHP等多种变体,同时提供Debian和Alpine两种基础版本。

核心优势包括:

  • 通过环境变量轻松调整PHP和PHP-FPM配置,无需重建镜像
  • 预安装最新版Composer及Apache2、Nginx、RoadRunner、FrankenPHP等Web服务器
  • 相比官方基础镜像显著减小体积,优化下载速度和资源占用
  • 支持自定义应用目录、用户权限、钩子脚本、定时任务等高级功能

适用场景:快速搭建PHP开发环境、生产环境部署、多版本PHP项目兼容、需要灵活配置PHP参数的场景。

核心功能和特性

多版本与变体支持

  • 覆盖PHP 5.6至8.5(beta)版本
  • 提供多种运行模式:cli、zts、fpm、fpm-nginx、fpm-apache、roadrunner(PHP ≥8.0)、frankenphp(PHP ≥8.2,beta)
  • 支持Debian和Alpine两种基础镜像,满足不同体积和依赖需求

灵活配置

  • 通过PHP_*环境变量直接自定义php.ini和php-fpm.conf参数(如PHP_DISPLAY_ERRORS=1)
  • 支持运行时动态调整PHP配置(需设置ALLOW_RUNTIME_PHP_ENVVARS=1)
  • 自定义应用目录(APP_PATH)和文档根目录(DOCUMENT_ROOT)

扩展管理

  • 预安装常用PHP扩展(apcu、bcmath、gd、redis等)
  • 通过phpaddmod命令一键安装额外扩展(如phpaddmod imagick xdebug),自动处理依赖和配置

高级功能

  • 钩子机制:支持onboot、first-run、migration等多种钩子脚本,定制容器生命周期行为
  • 自动运行脚本:/startup/目录下的脚本会按文件名顺序自动执行
  • 定时任务:通过ENABLE_CRONTAB=1启用crontab服务,支持环境变量定义任务
  • 邮件发送:集成msmtp,通过环境变量配置SMTP服务器实现邮件发送
  • 用户权限定制:通过APP_USER、APP_UID等环境变量自定义容器内用户和组

使用场景和适用范围

场景推荐变体核心优势
PHP命令行工具开发cli、zts轻量、支持多PHP版本
生产环境Web服务fpm-nginx、fpm-apache稳定、预配置Web服务器、支持动态PHP配置
高性能API服务roadrunner、frankenphp基于Go的高性能服务器,适合长连接场景
多版本PHP项目兼容测试全变体覆盖5.6至8.5版本,满足 legacy 项目需求
需要自定义PHP扩展的项目全变体phpaddmod工具简化扩展安装
开发环境快速搭建fpm-nginx、fpm-apache预安装Composer和Web服务器,开箱即用

详细的使用方法和配置说明

镜像变体与标签

镜像标签格式为shinsenter/php:[PHP版本]-[变体],支持以下变体:

变体说明PHP版本要求
cli命令行模式5.6+
zts线程安全模式5.6+
fpmPHP-FPM模式5.6+
fpm-apachePHP-FPM + Apache2服务器5.6+
fpm-nginxPHP-FPM + Nginx服务器5.6+
roadrunner集成RoadRunner服务器(基于Go的高性能应用服务器)8.0+
frankenphp集成FrankenPHP服务器(基于Caddy的PHP运行时,beta版)8.2+

示例标签:

  • shinsenter/php:7.4-cli(PHP 7.4,CLI模式)
  • shinsenter/php:8.1-fpm-nginx(PHP 8.1,FPM+Nginx)
  • shinsenter/php:8.3-roadrunner(PHP 8.3,RoadRunner)
  • shinsenter/php:8.4-frankenphp(PHP 8.4,FrankenPHP)

所有标签可在Docker Hub查看。

快速启动示例

1. CLI模式

# 非交互式运行(查看PHP模块)
docker run --rm shinsenter/php:8.4-cli php -m

# 交互式运行(挂载本地项目)
docker run -it -v ./myproject:/var/www/html shinsenter/php:8.4-cli

2. PHP-FPM模式

docker run -v ./myproject:/var/www/html -p 9000:9000 shinsenter/php:8.4-fpm

3. FPM+Nginx/Apache

# FPM+Nginx(映射80/443端口)
docker run -v ./myproject:/var/www/html -p 80:80 -p 443:443 shinsenter/php:8.4-fpm-nginx

# FPM+Apache
docker run -v ./myproject:/var/www/html -p 80:80 -p 443:443 shinsenter/php:8.4-fpm-apache

4. 使用docker-compose

version: '3'
services:
  web:
    image: shinsenter/php:8.4-fpm-nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./myproject:/var/www/html
    environment:
      PHP_DISPLAY_ERRORS: "1"          # 显示错误信息
      PHP_POST_MAX_SIZE: "100M"        # 最大POST大小
      PHP_UPLOAD_MAX_FILESIZE: "100M"  # 最大上传文件大小
      APP_PATH: "/var/www/html"        # 应用目录(默认)
      DOCUMENT_ROOT: "public"          # 文档根目录(相对于APP_PATH)

自定义PHP配置(环境变量)

通过PHP_*环境变量自定义php.ini或php-fpm.conf参数,命名规则为:PHP_ + 配置项的常量名(原配置项中的点/横杠替换为下划线,大写)。

常用环境变量示例

环境变量说明对应PHP配置项
PHP_DISPLAY_ERRORS=1开发环境显示错误display_errors = 1
PHP_POST_MAX_SIZE=100M最大POST数据大小post_max_size = 100M
PHP_UPLOAD_MAX_FILESIZE=100M最大上传文件大小upload_max_filesize = 100M
PHP_SESSION_COOKIE_HTTPONLY=1会话Cookie启用HttpOnly标志session.cookie_httponly = 1
PHP_MEMORY_LIMIT=512MPHP内存限制memory_limit = 512M

使用示例

命令行:

docker run \
  -v ./myproject:/var/www/html \
  -e PHP_DISPLAY_ERRORS='1' \
  -e PHP_POST_MAX_SIZE='100M' \
  shinsenter/php:8.4-fpm-nginx

运行时动态调整配置: 默认PHP_*变量仅在容器启动时生效,若需在容器内运行命令时动态调整,需设置ALLOW_RUNTIME_PHP_ENVVARS=1:

docker run -e ALLOW_RUNTIME_PHP_ENVVARS=1 shinsenter/php:8.4-cli
# 容器内执行:PHP_DISPLAY_ERRORS=1 php -i | grep display_errors

应用目录与文档根目录

  • 默认应用目录:/var/www/html,可通过APP_PATH环境变量自定义。
  • 文档根目录:相对于APP_PATH的子目录(默认空,即APP_PATH本身),可通过DOCUMENT_ROOT自定义。

示例:

# 将应用目录设置为/app,文档根目录为/app/public
docker run \
  -v ./myproject:/app \
  -e APP_PATH=/app \
  -e DOCUMENT_ROOT=public \
  -p 80:80 \
  shinsenter/php:8.4-fpm-nginx

添加PHP扩展

使用phpaddmod命令一键安装PHP扩展,自动处理依赖、编译和配置。该命令是mlocati/docker-php-extension-installer的封装,支持大部分主流扩展。

Dockerfile示例

FROM shinsenter/php:8.4-fpm-nginx

# 安装imagick、swoole、xdebug扩展
RUN phpaddmod imagick swoole xdebug

# 复制项目代码(指定用户权限)
ADD --chown=$APP_USER:$APP_GROUP ./myproject/ /var/www/html/

支持的扩展列表参考:mlocati/docker-php-extension-installer文档

自定义容器用户与组

通过环境变量自定义容器内运行应用的用户和组,避免权限问题。

环境变量说明默认值
APP_USER用户名www-data
APP_GROUP组名www-data
APP_UID用户UID容器内默认UID
APP_GID组GID容器内默认GID

示例:

# docker-compose.yml
services:
  web:
    image: shinsenter/php:8.4-fpm-nginx
    environment:
      APP_USER: "myapp"    # 自定义用户名
      APP_UID: "5000"      # 自定义UID(与宿主机用户匹配可避免权限问题)

钩子(Hooks)

钩子脚本用于在容器生命周期的特定阶段执行自定义逻辑,支持以下钩子:

钩子名称触发时机典型用途
onboot容器启动或重启时发送启动通知
first-run容器首次启动时(仅一次)初始化数据库
rebooted容器重启时检查崩溃日志
migration应用启动前执行数据库迁移
onreadymigration后,应用准备就绪时预热缓存
onliveWeb服务器启动后(若包含Web服务器)触发外部webhook

使用方法

在APP_PATH目录下创建hooks文件夹,添加与钩子名称同名的可执行脚本(或子目录中的脚本):

/var/www/html/
└── hooks/
    ├── first-run        # 首次启动执行
    ├── migration        # 迁移脚本
    └── onlive/          # onlive钩子的多个脚本
        ├── 01-webhook
        └── 02-notify

提示:设置DEBUG=1可查看钩子执行日志。

自动运行脚本(Autorun Scripts)

/startup/目录下的shell脚本会在容器启动时按文件名顺序自动执行,用于初始化项目(如数据库迁移、依赖安装等)。

使用示例

Dockerfile中添加脚本:

FROM shinsenter/php:8.4-cli

# 添加自动运行脚本(确保可执行权限)
ADD ./scripts/00-migration /startup/00-migration
RUN chmod +x /startup/00-migration

禁用自动运行: 设置环境变量DISABLE_AUTORUN_SCRIPTS=1。

定时任务(Cron Jobs)

启用crontab服务需设置ENABLE_CRONTAB=1,任务定义可通过以下方式添加:

  1. 挂载或复制任务文件到CRONTAB_DIR(默认/etc/crontab.d)
  2. 通过CRONTAB_SETTINGS环境变量直接定义(适合docker-compose)

环境变量配置

环境变量说明默认值
ENABLE_CRONTAB=1启用crontab服务未设置(禁用)
CRONTAB_DIR任务文件目录/etc/crontab.d
CRONTAB_HOME任务执行的HOME目录$APP_PATH
CRONTAB_SETTINGS直接定义任务(换行分隔多个任务)未设置
CRONTAB_TZ任务时区$TZ(默认UTC)

使用示例

docker-compose.yml:

services:
  web:
    image: shinsenter/php:8.4-fpm-nginx
    environment:
      ENABLE_CRONTAB: "1"
      CRONTAB_TZ: "Asia/Shanghai"
      CRONTAB_SETTINGS: |
        * * * * * echo "每分钟执行" >> /var/log/cron.log
        0 0 * * * php /var/www/html/artisan backup  # 每日凌晨执行备份

自定义Supervisor命令

通过SUPERVISOR_PHP_COMMAND环境变量自定义容器启动命令,替代默认Web服务器或FPM进程。

示例:

# 使用PHP内置Web服务器运行项目
docker run \
  -e SUPERVISOR_PHP_COMMAND='php -S 0.0.0.0:80 index.php' \
  shinsenter/php:8.4

邮件发送配置

镜像使用msmtp替代sendmail,支持通过SMTP发送邮件。若使用PHP mail()函数,需配置以下环境变量:

环境变量说明示例值
SMTP_HOSTSMTP服务器地址smtp.gmail.com
SMTP_PORTSMTP端口587
SMTP_USERSMTP认证用户名***
SMTP_PASSWORDSMTP认证密码password
SMTP_FROM发件人邮箱***
SMTP_AUTH=on启用SMTP认证on
SMTP_TLS=on启用TLS加密on

开发环境示例(使用Mailpit容器作为SMTP服务器):

version: '3'
services:
  web:
    image: shinsenter/php:8.4-fpm-nginx
    environment:
      SMTP_HOST: mailpit
      SMTP_PORT: 1025
  mailpit:
    image: axllent/mailpit
    ports:
      - "8025:8025"  # Web管理界面

调试模式

设置DEBUG=1启用详细日志输出,便于排查配置或启动问题:

docker run -e DEBUG=1 shinsenter/php:8.4-fpm-nginx

其他系统设置

环境变量默认值说明
TZUTC容器时区(如Asia/Shanghai)
INITIAL_PROJECT未设置若应用目录为空,自动创建Composer项目(如laravel/laravel)或拉取Git仓库
COMPOSER_OPTIMIZE_AUTOLOADER=1未设置Composer安装时启用--optimize-autoloader,优化生产环境性能
查看更多 php 相关镜像 →
php logo
php
by library
官方
PHP脚本语言虽最初为Web开发设计,却兼具通用目的用途,作为一种广泛应用的服务器端脚本语言,它能高效处理动态网页生成、数据库交互等Web开发核心任务,同时也可用于编写命令行脚本、开发桌面应用及进行系统管理等非Web领域,凭借其简洁语法与跨平台特性,成为众多开发者在不同场景下的实用工具。
78071B+ pulls
上次更新:3 小时前
cimg/php logo
cimg/php
by CircleCI
认证
CircleCI PHP便捷镜像,专为PHP项目在CircleCI平台上的持续集成流程设计,提供预配置环境以简化集成部署。
510M+ pulls
上次更新:30 天前
serversideup/php logo
serversideup/php
by Server Side Up
适合生产环境的PHP Docker镜像,针对Laravel和WordPress进行了优化。
511M+ pulls
上次更新:3 天前
paketobuildpacks/php logo
paketobuildpacks/php
by Linux Foundation
暂无描述
5M+ pulls
上次更新:9 个月前

常见问题

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

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

轩辕镜像免费版与专业版有分别支持哪些镜像?

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

流量耗尽错误提示

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

410 错误问题

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

manifest unknown 错误

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

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

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

查看全部问题→

轩辕镜像下载加速使用手册

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

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.