grocy官方明确要求php>=8.1、sqlite>=3.35或mysql>=8.0/postgresql>=12,并启用pdo_sqlite、mbstring、gd等扩展;推荐部署方式仅三种:docker(首选)、群晖nas+docker manager、桌面版appimage/.exe,phpenv非官方支持且易导致路由错误、数据库写入失败及二维码生成异常。

phpEnv 不是 Grocy 的推荐或支持部署方式,官方文档、社区实践和所有稳定部署案例中均未出现 phpEnv。它既不是 PHP 运行环境标准方案(如 XAMPP、Laragon、Docker),也不是 Grocy 所依赖的运行时兼容目标。
如果你在搜索“phpEnv Grocy”时看到相关教程,大概率是混淆了以下三类工具:
- 把
phpenv(Ruby 工具 rbenv 的 PHP 移植版,用于多版本 PHP 切换,不带 Web 服务器或数据库)误写为phpEnv - 把国产集成环境(如 phpStudy、小皮面板、宝塔)错标为
phpEnv - 某些非官方魔改包擅自打包了 Grocy,但未经过测试,容易触发
Setting('FEATURE_FLAG_STOCK', true)类配置失效、composer install权限错误或 SQLite 写入失败
Grocy 要求的最小 PHP 环境是什么?
Grocy 官方明确要求:PHP >= 8.1(2026 年起强制)、SQLite >= 3.35 或 MySQL >= 8.0 / PostgreSQL >= 12,且必须启用 pdo_sqlite、mbstring、gd、zip、curl 扩展。任何环境若无法确认完整满足这些,就不要尝试。
为什么不要用 phpEnv(或类似非标环境)跑 Grocy?
-
phpEnv默认不附带 Web 服务器(Apache/Nginx),需额外配php -S,而 Grocy 的路由依赖.htaccess或等效重写规则,php -S无法正确处理/stock、/chores等前端路由 - SQLite 数据库路径常被硬编码为
data/grocy.db,但phpEnv的工作目录权限模型混乱,极易出现SQLSTATE[HY000]: General error: 14 unable to open database file - 二维码生成依赖
ext-gd和临时文件写入,某些phpEnv变体禁用sys_get_temp_dir()或限制open_basedir,导致services/StockService.php中的条码逻辑静默失败 - 没有自动迁移机制:Grocy 升级时需执行
php console db-migrate,而phpEnv环境下console命令常因 autoloader 路径错误直接报Class 'App\Console\Application' not found
真正能用、有长期维护记录的部署方式
只推荐以下三种,按优先级排序:
-
Docker(首选):用
linuxserver/grocy:latest镜像,volumes映射到宿主机./data,端口映射后开箱即用;所有扩展、数据库、重写规则均已预置,config.php修改后自动热加载 -
群晖 NAS + Docker Manager:无需命令行,在 DSM 图形界面创建堆栈,粘贴官方
docker-compose.yml片段即可;数据落盘在/volume1/docker/grocy,断电不丢库存记录 -
桌面版(Windows/macOS/Linux):下载
grocy-desktop-x.x.x.AppImage(Linux)或.exe(Win),双击启动,自带 SQLite 和 HTTP 服务,适合纯本地使用、不暴露网络、零配置
Grocy 的核心价值在于「开箱即用的库存闭环」——从扫码入库、保质期预警、购物清单生成,到移动端同步。任何试图绕过官方支持路径(Docker / Desktop / 标准 LAMP)的方案,都会在二维码扫描失败、API 密钥不生效、或升级后白屏时,卡在 views/stocksettings.blade.php 加载不到这个最基础的环节。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











