You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Lando工具时wp-cli的--extra-php选项出现语法错误求助

解决Lando配置wp-cli --extra-php时的Shell语法错误

问题分析

你遇到的/bin/sh: 1: Syntax error: "(" unexpected错误,根源是YAML对多行Shell命令的解析方式有误。原配置里的heredoc(从<<'PHP'到PHP的代码段)被YAML拆成了独立行,Shell执行时会把define(当成新命令,从而触发语法报错。

解决方案

使用YAML的**块标量(|)**包裹包含heredoc的完整命令,确保整个Shell命令作为一个整体执行。修改后的配置如下:

tooling:
  npm:
    service: node
  wp-install:
    service: appserver
    cmd:
      - |
        wp config create --dbname=wordpress --dbuser=wordpress --dbpass=wordpress --dbhost=database --extra-php <<'PHP'
        define( 'WP_DEBUG', true );
        define( 'WP_DEBUG_LOG', true );
        define( 'ACF_PRO_LICENSE', 'XXX');
        PHP
      - wp core install --url=http://$LANDO_APP.$LANDO_DOMAIN --title=XXX --admin_user=StudioAl --admin_password=XXX --admin_email=kerri@studioal.com
      - wp plugin install gravityformscli --activate
      - wp gf install --XXX --activate
      - wp plugin install "http://connect.advancedcustomfields.com/index.php?p=pro&a=download&k=XXX" --activate

替代方案(单行写法)

如果觉得多行块标量繁琐,也可以把PHP代码合并成单行,直接作为--extra-php的参数:

tooling:
  npm:
    service: node
  wp-install:
    service: appserver
    cmd:
      - wp config create --dbname=wordpress --dbuser=wordpress --dbpass=wordpress --dbhost=database --extra-php "define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('ACF_PRO_LICENSE', 'XXX');"
      - wp core install --url=http://$LANDO_APP.$LANDO_DOMAIN --title=XXX --admin_user=StudioAl --admin_password=XXX --admin_email=kerri@studioal.com
      - wp plugin install gravityformscli --activate
      - wp gf install --XXX --activate
      - wp plugin install "http://connect.advancedcustomfields.com/index.php?p=pro&a=download&k=XXX" --activate

原理说明

  • YAML的|块标量会保留文本的换行和缩进,确保包含heredoc的Shell命令被完整传递给Shell执行,不会被拆分成多个独立命令。
  • 原写法中,YAML把heredoc的每一行都当成数组元素的一部分,Shell执行时会依次执行wp config create ...、define(...)等操作,而define并非Shell命令,因此触发语法错误。

内容的提问来源于stack exchange,提问作者StudioAl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 03:09:51