apache/openserverless-runtime-phpApache OpenWhisk PHP Runtime 镜像由 Apache OpenServerless(孵化中)项目提供,是专为 Apache OpenWhisk 无服务器平台设计的 PHP 运行时环境。该镜像用于在 OpenWhisk 平台上执行 PHP 函数(Action),提供 PHP 代码的运行时支持、资源隔离及与 OpenWhisk 系统的集成能力,是构建基于 PHP 的无服务器应用的核心组件。
php7.4、php8.1 等)json、curl、mbstring 等),满足基础开发需求通过 Docker Hub 或 Apache OpenServerless 官方仓库拉取镜像(具体地址需参考项目发布渠道):
bashdocker pull apache/openwhisk-runtime-php:<tag> # 例如: apache/openwhisk-runtime-php:7.4
OpenWhisk 管理员需将该镜像注册为平台支持的运行时,通过修改 OpenWhisk 控制器配置(如 config.yaml)添加 PHP 运行时:
yamlruntimes: php: image: apache/openwhisk-runtime-php:7.4 default: true kinds: - kind: php:7.4
开发者通过 OpenWhisk CLI (wsk) 部署 PHP 函数,示例如下:
创建 PHP 函数文件(如 index.php):
php<?php function main(array $args) : array { $name = $args['name'] ?? 'World'; return ['message' => "Hello, $name!"]; } ?>
部署为 OpenWhisk Action:
bashwsk action create php-hello index.php --kind php:7.4
触发函数执行:
bashwsk action invoke php-hello -p name "OpenWhisk" --result
输出示例:
json{ "message": "Hello, OpenWhisk!" }
运行时会自动注入 OpenWhisk 系统环境变量,供 PHP 函数使用,主要包括:
| 环境变量名 | 说明 |
|---|---|
__OW_ACTION_NAME | 当前函数名称 |
__OW_NAMESPACE | 函数所属命名空间 |
__OW_ACTION_VERSION | 函数版本(若启用版本控制) |
__OW_ACTIVATION_ID | 当前激活(执行实例)ID |
__OW_DEADLINE | 函数执行超时时间戳(Unix 时间,毫秒) |
如需修改 PHP 运行时配置(如 php.ini 参数),可通过以下方式:
Dockerfile 添加或修改 php.ini:
dockerfileFROM apache/openwhisk-runtime-php:7.4 COPY custom-php.ini /usr/local/etc/php/conf.d/
php.ini 文件覆盖默认配置(需平台支持持久化存储挂载)。通过 OpenWhisk Action 部署参数指定函数资源限制,如内存、超时时间:
bashwsk action create php-hello index.php --kind php:7.4 --memory 256 --timeout 3000
--memory:内存限制(MB,默认 256)--timeout:超时时间(毫秒,默认 60000)直接通过 Docker 运行镜像,模拟 OpenWhisk 运行时环境(用于调试):
bashdocker run -it --rm \ -e "__OW_ACTION_NAME=test-action" \ -e "__OW_NAMESPACE=default" \ -v $(pwd)/index.php:/action/exec \ apache/openwhisk-runtime-php:7.4
说明:本地测试需手动模拟 OpenWhisk 输入输出格式,实际生产环境需通过 OpenWhisk 平台调度。
在 OpenWhisk 集群中,可通过 Docker Compose 配置运行时服务(仅供参考,具体需结合 OpenWhisk 集群部署文档):
yamlversion: '3' services: php-runtime: image: apache/openwhisk-runtime-php:7.4 restart: always networks: - openwhisk-network environment: - "PORT=8080" - "OW_RUNTIME_HTTP_PORT=8080" networks: openwhisk-network: external: true
7.4),避免 latest 标签导致版本变更风险main(array $args): array,输入输出为 JSON 可序列化数组


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务