MacOS下ddev get drud/ddev-platformsh生成环境变量失败及变量缺失问题
解决方案
一、修复base64参数兼容问题(MacOS环境)
MacOS自带的base64工具不支持-w参数,这是post-install动作失败的直接原因,可通过以下两种方式解决:
方案1:修改脚本为Mac兼容格式
找到项目根目录下platformsh/目录中的generate_*.sh脚本,将其中的BASE64_ENCODE=base64 -w 0替换为:
BASE64_ENCODE="base64 -b 0"
(-b 0是Mac base64取消换行的参数,等效于GNU base64的-w 0)
方案2:安装GNU版本base64(推荐)
通过Homebrew安装coreutils工具链,获得GNU标准的base64:
brew install coreutils
安装完成后,将脚本中的BASE64_ENCODE=base64 -w 0替换为:
BASE64_ENCODE="gbase64 -w 0"
二、修复环境变量缺失问题
解决base64问题后,需重新生成或手动配置Platform.sh所需环境变量:
方法1:重新执行环境变量生成脚本
根据项目依赖,运行对应的生成脚本:
ddev exec bash /var/www/html/platformsh/generate_db_relationship.sh # 按需执行其他generate_elasticsearch_relationship.sh、generate_redis_relationship.sh等脚本
方法2:手动配置DDEV环境变量
编辑项目根目录下的.ddev/config.yaml,添加核心Platform.sh环境变量示例:
environment: PLATFORM_APP_DIR: "/app" PLATFORM_RELATIONSHIPS: '{"database":[{"host":"db","port":3306,"database":"db","username":"db","password":"db"}]}' PLATFORM_PROJECT: "你的项目ID" PLATFORM_BRANCH: "main"
根据实际需求补充其他变量后,重启DDEV:
ddev restart
完成以上操作后,再次执行ddev drush cr即可解决变量缺失错误。
内容的提问来源于stack exchange,提问作者scaffolding
相关产品推荐
相关产品推荐

