PHP CLI 连接到 WebSerbvice

标签 php linux bash web-services soap

我在从命令行运行 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/

相关文章:

php - Linux C GCC 被另一个进程中断

linux - 获取 JAVA_HOME 的两个值

Bash - 使用临时文件夹中的文件

java - 是否存在通过 jar、manifest... 明确设置 --add-exports、--add-opens 指令的方法,以避免在命令行上传递它们?

linux - Shell 从当前字母中减去一个字母

php - Swift 上传多张图片到 PHP 服务器

javascript - 在表单下使用 .html() 动态插入隐藏文本字段未通过

php - 3 计算字段中唯一值的实例

linux - nohup 进程显示在 ps 中但不在 top 中

linux - 在 unzip 命令中使用带有 "*"的路径