【问题标题】:Woocommerce webhook debugging on nginx in a docker containerWoocommerce webhook 在 docker 容器中的 nginx 上调试
【发布时间】:2017-02-28 08:30:35
【问题描述】:

我刚刚将一个 woocommerce 商店从一个普通的共享主机转移到一个带有 docker 容器和 docker-compose 的设置。实际上它是在 nginx 上运行的,到目前为止它运行良好。唯一停止工作的是 webhook。

如果我进入 webhooks 设置并配置例如订购完整的挂钩并保存此设置 URL 被调用没有任何问题,我可以从 webhook 保存中看到测试调用。但是当我真正完成一个订单时(是的,我也尝试过很多其他的钩子)什么都没有发生。我已将调试和错误日志记录为 true,但我仍然看不到任何错误。服务器错误日志中也没有错误。

我是否需要一些特殊的设置或服务才能让 webhook 与 nginx 一起正常工作?如果 debug true 和 error log all 没有错误,您是否有一个快速的想法,我可以如何在这里调试此问题?或者也许有关于文件权限的任何问题? (已经正确设置了644和755)

规格:

  • Wordpress 4.6.1
  • Woocommerce 2.6.4
  • nginx 1.11.4
  • PHP 7.0.11
  • cUrl 7.38.0,OpenSSL/1.0.1t
  • MySql 5.7.15
  • Docker 1.12.1
  • Docker Compose 1.8.0

【问题讨论】:

    标签: wordpress nginx docker woocommerce docker-compose


    【解决方案1】:

    您的 Nginx 配置的 try_files 部分是否从 index.php? 剥离查询字符串?购物车需要查询字符串。

    如果你有这样的一行:

    location / {
      try_files $uri $uri/ /index.php;
    }
    

    试试:

    location / {
      try_files $uri $uri/ /index.php?$args;
    }
    

    这样修改后重启 Nginx。

    而且,要转储所有操作和过滤器,请查看 https://gist.github.com/studiograsshopper/1273784

    使用这是主题的functions.php 文件。

    add_action( 'all', create_function( '', 'var_dump( current_filter() );' ) );
    

    【讨论】:

    • 感谢您的快速回复。是的,我已经这样做了,在我的配置文件中是第二个例子。有没有办法调试这些烦人的 webhook?
    • 添加了一个功能试试,虽然我自己没用过。
    • 再次感谢@markratledge。我对 xDebug 进行了更深入的研究,现在我离解决方案越来越近了。主要问题在于这个函数 wp_schedule_single_event( time(), 'woocommerce_deliver_webhook_async', array( $this->id, $arg ) );它尝试安排 webhook 交付,但从未交付它。我实际上不太清楚为什么它没有触发交付功能。如果我直接在那里调用它(所以 $this->deliver( $arg );)它完美地工作并且它使 webhook 调用像它应该的那样。这可能是那里的 CRON 和 nginx 的问题吗?
    • 不知道;我会查看developer.wordpress.org/reference/functions/… 并确保您在函数中有必要的参数以便它运行,然后查看 cron 问题是否仍然存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多