Penpot与phpenv完全无关,其为基于Node.js、PostgreSQL和Redis的Docker化应用,正确部署只需安装Docker和Docker Compose,克隆官方仓库后通过docker compose up -d启动,无需任何PHP工具链。

phpenv 和 Penpot 完全不相关,不能用 phpenv 安装或配置 Penpot。
phpenv 是 PHP 版本管理工具,只负责切换不同版本的 php 可执行文件;Penpot 是基于 Node.js + PostgreSQL + Redis 的前端密集型 Web 应用,运行在 Docker 容器中,与 PHP 无依赖关系。
你看到的“phpEnv”和“Penpot”同时出现,大概率是混淆了两个独立工具:
-
phpenv:管理php命令本身(如php --version输出什么) - Penpot:需通过
docker compose启动完整服务栈,其后端是 Clojure/Node.js,前端是 TypeScript + React
为什么不能用 phpenv 部署 Penpot?
因为:
立即学习“PHP免费学习笔记(深入)”;
-
phpenv不提供 Web 服务器、数据库或消息队列——而 Penpot 明确要求 PostgreSQL、Redis 和反向代理(如 Traefik 或 Nginx) -
phpenv install只编译安装 PHP 二进制,对penpot-backend或penpot-frontend镜像毫无作用 - Penpot 官方镜像(
penpotapp/penpot-backend等)根本不含 PHP 运行时,也未暴露任何 PHP-FPM 或 Apache 接口
Penpot 正确部署路径(仅需 Docker)
直接跳过所有 PHP 工具链,按官方推荐流程操作:
- 确认已安装
docker和docker compose(2.0+),且用户在docker组内 - 克隆配置仓库:
git clone https://gitcode.com/GitHub_Trending/pe/penpot.git && cd penpot/docker/images - 启动前检查
.env文件是否设置了PENPOT_PUBLIC_URI和数据库密码,避免 500 错误 - 首次运行建议加
--no-start先验证配置:docker compose -p penpot config - 真正启动:
docker compose -p penpot up -d,然后等penpot-backend日志出现Server started on http://0.0.0.0:4000
如果你真在本地跑 PHP 项目又想联调 Penpot
唯一合法交集场景是:你在同一台机器上既用 phpenv 开发 PHP 后端服务,又用 Docker 跑 Penpot 做 UI 原型协作。此时两者完全隔离:
-
phpenv global 8.3.13只影响你终端里敲的php命令 -
docker compose up启动的 Penpot 容器,连宿主机的PATH都看不到,更不会读~/.phpenv - 若需 PHP 项目调用 Penpot API,只需确保网络可达(如
http://host.docker.internal:9001/api/...),与phpenv无关
真正容易被忽略的一点:Penpot 的 penpot-frontend 容器默认监听 0.0.0.0:80,但它的构建产物是纯静态文件,不需要 PHP 解释器——哪怕你把 phpenv 卸载干净,只要 Docker 在跑,Penpot 就能访问。



















