phpenv 无法运行 mealie,因其仅为 windows 下 php 版本管理工具,不支持 python、uvicorn、docker 等必需依赖,且缺乏服务管理与反向代理能力。

phpEnv 本身不支持直接安装 Mealie —— 它不是 PHP 运行环境,而是 Windows 下的 PHP 版本管理工具(类似 pyenv),不能替代 Web 服务器或数据库服务。 想跑 Mealie,你得用 Docker 或 Linux 环境;强行在 phpEnv 上“搭”只会卡在 sqlite 权限、Python 依赖、uvicorn 启动失败这些地方。
为什么 phpEnv 跑不了 Mealie
Mealie 是 Python 写的全栈应用(FastAPI + Vue),核心依赖是:Python 3.9+、uvicorn、sqlite 或 PostgreSQL、前端构建工具。phpEnv 只管切换 php.exe 版本,对 python.exe、pip、docker 都无感知,也无对应服务管理能力。
- 你执行
mealie migrate会报错:找不到python命令,或ModuleNotFoundError: No module named 'fastapi' - 即使手动装好 Python,
uvicorn默认监听127.0.0.1:9000,但 phpEnv 没有反向代理配置入口,浏览器访问不到 -
sqlite数据库文件写入常因路径权限失败 —— phpEnv 的根目录通常被 Windows 用户策略锁定,而 Mealie 需要rw权限写app.db
真正能跑 Mealie 的轻量方案(Windows 推荐)
放弃 phpEnv,改用官方支持路径。以下步骤实测可在 Win10/11 上 15 分钟内完成:
- 装
Docker Desktop for Windows(开启 WSL2 后端),不用配环境变量 - 新建空文件夹,放入
docker-compose.yml,内容为官方最小配置(含image: ghcr.io/mealie-recipes/mealie:latest) - 终端进该目录,运行
docker-compose up -d,自动拉镜像、建容器、初始化sqlite - 浏览器打开
http://localhost:9000,首次加载稍慢(前端资源解压中),别关终端
注意:docker-compose.yml 中必须显式挂载卷,例如 - ./data:/app/data,否则容器重启后数据全丢。
如果坚持用 PHP 技术栈做食谱系统
那就别碰 Mealie。可选真实兼容 phpEnv 的方案:
- 基于
ThinkPHP的家庭食谱系统(如知识库中f03b6版本):它用MySQL+Vue前端,phpEnv 切到PHP 7.4就能跑,index.php入口直通 - 纯 PHP + SQLite 的极简菜谱页:自己写
list.php读recipes.db,用SQLite3扩展(phpEnv 可一键启用),无需 Composer 或路由 - 避坑提示:
mysqli和pdo_sqlite必须同时开启 —— 很多 phpEnv 预编译包默认只开前者,导致 SQLite 报driver not found
Mealie 的设计目标就是脱离 PHP 生态,硬往 phpEnv 上塞,等于把电动车电池拆下来给燃油车用 —— 接口不匹配,能量不转化,最后只剩报错日志。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











