gpt4 book ai didi

PHP CLI 连接到 WebSerbvice

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:17 25 4
gpt4 key购买 nike

我在从命令行运行 PHP 应用程序时遇到问题。我最近创建了一个新的 Google Cloud Engine CentOS 实例来托管我的 PHP 应用程序。该应用程序在不同的 RHEL 机器上运行良好。

使用类似于...的命令从 PHP 脚本启动应用程序

$command = 'bash -c "exec nohup setsid runPHPScript > /dev/null 2>&1 &"';
exec($command, $output, $returnVar);

runPHPSCript 是一个 Linux 脚本,本质上运行实际的 PHP 命令...

php myScript.php

myScript.php 然后关闭并连接到各种网络服务等...

当我尝试在我的新实例上运行它时(记住这在我的 RHEL 机器上运行良好),我收到以下 SOAP 错误...

(faultcode: HTTP, faultstring: Could not connect to host)

到端点 WSDL 的 SOAP 设置/连接实际上是成功的,但是当我尝试发送请求时,我收到了上面的错误。

我一直在调试这个并阅读了一些内容,可以确认以下内容...

  • GCE 实例上均启用了 HTTP 和 HTTPS。
  • 我已经验证 PHP 和 Apache 都使用相同的 php.ini(更多内容见下文)
  • 我已使用 phpinfo() 和 php -i 检查了这两种配置,并且可以看到数据中的各种 SSL 条目

奇怪的是,如果我在浏览器(它是一个 LAMP 堆栈)中打开 myScript.php,它会很好地连接到 Web 服务,并且我可以看到有效的响应。这让我认为问题是使用了不同的 php.ini 。另外,在命令提示符下,如果我直接运行 myScript.php ,它也可以正常工作......

php 'myScript.php'

也返回有效的响应。

因此,该问题似乎仅在我尝试使用 BASH 启动应用程序时才会出现。有人有什么想法吗?

罗伯特

最佳答案

清理。根据Raidenace的建议,直接运行exec也可以很好地工作......

“只是好奇......为什么你不能直接在你的代码中执行 exec("php myScript.php"); ?”

关于PHP CLI 连接到 WebSerbvice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com