轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
phpfpm

widepath/phpfpm

widepath

airwp的PHP容器,包含phpfpm、caddy-phpnode等组件,用于处理PHP请求、运行Web应用及相关服务,支持开发和生产环境部署。

下载次数: 0状态:社区镜像维护者:widepath仓库类型:镜像最近更新:2 年前
让 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,加速的不只是镜像。
点击查看

airwp Docker镜像文档

镜像概述

airwp Docker镜像包含多个容器组件,用于构建和运行WidePath Web应用生态系统。该镜像提供了完整的应用服务架构,包括Web应用、代理服务、PHP处理节点、后台任务处理、日志收集等核心功能,支持开发环境搭建与生产环境部署。

核心功能和特性

App Containers & Deployments

  • app: WidePath Web应用主容器,处理用户注册、站点创建/删除等核心业务逻辑
  • caddy-proxy: 代理服务,直接转发请求至app和php节点
  • nodesftpd: 多节点SFTP服务器
  • worker: 后台任务处理容器,通过工作队列执行站点创建/删除、备份、密码重置等任务
  • vector: 日志收集工具,将事件数据发送至logtail

Phpnode Containers

  • caddy-phpnode: PHP节点本地HTTP服务器,将请求转发至特定phpfpm实例
  • phpfpm: PHP-FPM守护进程容器,处理PHP请求
  • purger: PHP节点守护进程,将清除请求转发至CDN(因StackPath停用已弃用)
  • smtp-relay: SMTP中继守护进程,管理每个站点的出站邮件配额
  • vector: 日志收集工具,将事件数据发送至logtail

其他组件

  • app-cli: 命令行工具,用于控制Web应用
  • deploy: 开发/生产环境部署工具、脚本和方案
  • purger-plugin: WordPress插件,在站点编辑时向purger发送缓存失效请求

使用场景

  • WidePath Web应用的开发环境搭建
  • 生产环境中PHP节点的部署与管理
  • 多节点SFTP服务部署
  • 后台任务处理与日志收集
  • 站点数据迁移与备份恢复

使用方法和配置说明

在Mac上使用Canonical Multipass搭建Ubuntu开发节点

  1. 安装Multipass:

    bash
    brew install multipass
    
  2. 启动Docker虚拟机:

    bash
    multipass launch docker --name=docker
    multipass exec docker -- sudo bash
    
  3. 配置Docker服务:

    bash
    systemctl edit docker
    

    在编辑器中添加:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
    
  4. 重启Docker并登录:

    bash
    systemctl restart docker
    docker login
    
  5. 拉取镜像并创建网络:

    bash
    docker pull widepath/phpfpm:release-0.0.98
    docker network create widepath_localbackend
    
  6. 安装依赖并启动数据库:

    bash
    apt install s3cmd zip
    docker run -d --name=mysql -e MYSQL_ROOT_PASSWORD=root --network widepath_localbackend -p 3306:3306 mariadb:10.4
    
  7. 启动worker服务:

    bash
    ansible_user=root ansible_pass= MYSQL_ROOT_PASSWORD=root ansible_port=22 WP_UID_FILES=1001 WP_GID_FILES=1001 nodemon
    
  8. 将节点IP添加至Mongo的nodes集合

开发模式配置

  1. 暴露Docker API:

    bash
    docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:2375:2375 bobrik/socat TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock
    
  2. 运行SSH容器模拟PHP节点文件系统:

    bash
    docker run -d -p 2222:22 rastasheep/ubuntu-sshd
    
  3. 安装sshpass以支持密码SSH连接:

    bash
    apt install sshpass
    

生产环境脚本运行方法

  1. 本地端口转发Mongo:

    bash
    kubectl port-forward <mongo-pod> 27017:27017
    
  2. 启动portal-meteor应用:

    bash
    meteor run
    
  3. 在另一个终端启动meteor shell:

    bash
    meteor shell
    
  4. 加载并运行脚本:

    bash
    .load <脚本物理路径>
    

    输出将显示在portal-meteor应用终端

构建DigitalOcean镜像

bash
docker build --platform=linux/amd64 -t <镜像名称>:<版本> .

必须添加--platform=linux/amd64参数

密钥管理

worker-ansible-phpnode.key

  • 生成RSA私钥:
    bash
    ssh-keygen -m PEM -t rsa -f worker-ansible-phpnode.key
    
  • 使用Ansible在所有php节点上安装公钥
  • 在Kubernetes中添加为密钥:
    bash
    kubectl create secret generic worker-ansible-phpnode --from-file=worker-ansible-phpnode.key
    
  • 在worker容器中挂载该密钥

其他密钥

  • app节点生成私钥并在php节点授权,供sftpd容器SSH连接php节点
  • computation节点生成私钥并在php节点授权,供worker容器通过Ansible执行备份等操作
  • 将SSH密钥复制到堡垒机~/.ssh/id_rsa

密钥配置文件

  • ./deploy/kube/secret-nodesftpd-phpnodes.yml: nodesftpd与php节点通信密钥
  • ./deploy/kube/secret-worker-ansible-phpnodes.yml: worker与php节点通信密钥

复制regcred密钥到kube-logging命名空间

bash
kubectl get secret regcred --namespace=default -o yaml | grep -v '^\s*namespace:\s' | kubectl apply --namespace=kube-logging -f -

Mongo数据库操作

备份

bash
mongodump --db=dbname --gzip --archive=wp.gz

恢复

bash
mongorestore --gzip --archive=wp.gz

DigitalOcean节点管理

基础设置

  • 手动创建堡垒机并安装SSH私钥到~/.ssh/id_rsa
  • 设置环境变量:
    bash
    export DO_API_TOKEN=<你的API令牌>
    
  • 创建必要标签:
    bash
    doctl compute tag create phpnode
    
  • 使用静态inventory启动基础实例:
    bash
    ansible-playbook -i launch-inventory launch.yml
    

新增PHP节点

  1. 设置API令牌:

    bash
    export DO_AUTH_TOKEN=abc123
    
  2. 进入Ansible目录:

    bash
    cd ./deploy/ansible
    
  3. 在./deploy/ansible/phpnode-provision/launch-inventory-php添加新节点

  4. 创建节点:

    bash
    ansible-playbook -i phpnode-provision/launch-inventory-php phpnode-provision/launch-php.yml
    
  5. 部署所需包和配置:

    bash
    ansible-playbook phpnode-provision/droplet-basics.yml --limit "phpXX"
    ansible-playbook phpnode-provision/docker.yml --limit "phpXX"
    ansible-playbook phpnode-provision/php.yml --limit "phpXX"
    ansible-playbook phpnode-provision/php-packages-outside-docker.yml --limit "phpXX"
    ansible-playbook phpnode-provision/python.yml --limit "phpXX"
    ansible-playbook phpnode-provision/reinstall-docker-sdk.yml --limit "phpXX"
    ansible-playbook phpnode-provision/block-storage.yml --limit "phpXX"
    
  6. 安装密钥到新节点:

    bash
    ssh-keygen -y -f worker-ansible-phpnode.key > worker-ansible-phpnode.pub
    ansible-playbook phpnode-provision/keys.yml --limit "phpXX"
    
  7. 创建phpnode服务:

    bash
    ansible-playbook phpnode-service/caddy-phpnode.yml --limit "phpXX"
    ansible-playbook phpnode-service/vector/vector-phpnode.yml --limit "phpXX"
    ansible-playbook phpnode-service/mysql.yml --limit "phpXX"
    ansible-playbook phpnode-service/purger.yml --limit "phpXX"
    ansible-playbook phpnode-service/smtp-relay.yml --limit "phpXX"
    
  8. 在app中添加节点:

    bash
    node app-cli/app-cli node add phpXX <private_ip> "websitesca" "docker-standalone"
    
  9. 在Cloudflare添加DNS记录:

    A phpXX.tor1.airwp.com >> public_ip
    

节点迁移

  1. 定义源节点和目标节点:

    bash
    src=phpX1
    dst=phpX2
    
  2. 导出数据库:

    bash
    candidates=$(echo "show databases" | mysql -u root -p -h $src | grep -Ev "^(Database|mysql|performance_schema|information_schema)$")
    mysqldump --databases $candidates -u root -p -h $src > all.sql
    
  3. 导出权限:

    bash
    MYSQL_CONN="-uroot -p -h $src"
    mysql ${MYSQL_CONN} --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql ${MYSQL_CONN} --skip-column-names -A | sed 's/$/;/g' > grants.sql
    
  4. 编辑grants.sql移除无关内容

  5. 导入数据库和权限到目标节点:

    bash
    mysql -u root -p -h $dst < all.sql
    mysql -u root -p -h $dst < grants.sql
    
  6. 同步站点文件:

    bash
    rsync -chavzP --stats $src:/mnt/airwp/sites/ ./sites
    rmdir sites/_trash
    rsync -chavzP --stats ./sites/* $dst:/mnt/airwp/sites
    
  7. 更新站点节点信息:

    bash
    app-cli site list --nodename=$src | jq "[.[].siteStub]" > ~/Desktop/nodes/$src.json
    cat ~/Desktop/nodes/$src.json | python deploy/script/node-change-all.js $dst
    
  8. 权限修复:

    bash
    chown -R wp:wp *
    find . -type f -exec chmod 644 {} \;
    find . -type d -exec chmod 755 {} \;
    find . -regex '.*.archive.zip' -exec rm {} \;
    

Ansible配置

  1. 创建配置文件:

    • ~/.ansible/airwp.cfg (从./deploy/ansible.cfg.sample复制)
    • ~/.ansible/airwp-ssh.cfg (从./deploy/ssh.cfg.sample复制)
  2. 设置环境变量:

    bash
    export ANSIBLE_CONFIG=~/.ansible/airwp.cfg
    
  3. 确保inventory可用(需设置DO_API_TOKEN环境变量)

NODESFTPD配置

密钥生成与认证

生成适用于ssh2模块的密钥:

bash
ssh-keygen -m PEM -t rsa -f /path/to/wp_key

将生成私钥(/path/to/wp_key)和公钥(/path/to/wp_key.pub)

  • 生产环境: 在app节点生成密钥并在php节点授权
  • 开发环境: 授权main节点密钥到php1节点

常用操作

wpcli命令

  • 添加Formidable Pro API密钥:

    bash
    wp option add frmpro-credentials 'a:1:{s:7:\"license\";s:23:\"BDN68-YZF5W-GZHKY-YOJJL\";}'
    
  • 添加Akismet API密钥:

    bash
    wp option add wordpress_api_key 92f0f8e7bee3
    
  • 重置角色并设置管理员:

    bash
    wp role reset --all
    wp user set-role websitesca administrator
    wp user update websitesca --nickname=websitesca
    
  • 卸载默认插件和主题:

    bash
    sudo -u \#$WP_UID_FILES wp plugin uninstall hello
    sudo -u \#$WP_UID_FILES wp theme uninstall twentyfifteen twentysixteen
    

容器内存使用查询

bash
kubectl exec -it app-d86fcdd6c-lwp9d cat /sys/fs/cgroup/memory/memory.usage_in_bytes

清理挂起的备份

bash
# 列出所有挂起的备份
db.sites.find({backups:{$elemMatch:{'status.pending':true}}}).map(x=>x.siteStub)

# 删除所有挂起的备份
db.sites.update({}, {$pull:{backups:{'status.pending':true}}}, {multi:true})

直接访问源服务器

  • 使用httpie:

    bash
    http --headers https://phpX.origin-tor1.widepath.app Host:<sitestub>.widepath.app X-OriginalHost:<hostname> X-SiteStub:<sitestub> --verify=no
    
  • 使用curl:

    bash
    curl -I [***] -H "X-OriginalHost: <host>" -H "X-SiteStub: <sitestub>" -H "Host: <sitestub>.widepath.app" -k
    

镜像拉取方式

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

轩辕镜像加速拉取命令点我查看更多 phpfpm 镜像标签

docker pull docker.xuanyuan.run/widepath/phpfpm:<标签>

使用方法:

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

DockerHub 原生拉取命令

docker pull widepath/phpfpm:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid 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访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
widepath/phpfpm
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
商务合作:点击复制邮箱
用户协议·隐私政策·©2024-2026 源码跳动
用户协议·隐私政策©2024-2026 杭州源码跳动科技有限公司商务合作:点击复制邮箱

更多 phpfpm 镜像推荐

mailcow/phpfpm logo

mailcow/phpfpm

mailcow
mailcow是基于Docker的开源邮件服务器套件,集成SMTP/IMAP/POP3/Webmail等完整功能,支持反垃圾邮件与加密,适用于快速部署安全可靠的邮件服务。
5 次收藏1000万+ 次下载
1 年前更新
rbwb/phpfpm logo

rbwb/phpfpm

rbwb
暂无描述
10万+ 次下载
6 年前更新
10up/phpfpm logo

10up/phpfpm

10up
该镜像为WP Local Docker提供PHP-FPM运行环境,支持WordPress本地开发与测试,助力快速搭建一致的开发环境。
1万+ 次下载
5 年前更新
adhocore/phpfpm logo

adhocore/phpfpm

adhocore
基于Alpine的轻量级Docker PHP FPM镜像,下载大小约150MB,包含PHP8.0/7.4及78+常用扩展,预装Composer v1和v2,适合生产环境和开发使用。
9 次收藏10万+ 次下载
1 年前更新
iwfwebsolutions/phpfpm logo

iwfwebsolutions/phpfpm

iwfwebsolutions
Web Solutions基础PHP-FPM镜像,包含最常用模块及高级启动脚本和工具,适用于构建自定义PHP Docker环境。
10万+ 次下载
23 天前更新
coderslabpl/phpfpm logo

coderslabpl/phpfpm

coderslabpl
暂无描述
5万+ 次下载
5 年前更新

查看更多 phpfpm 相关镜像