【问题标题】:Connecting to Remote PHP interpreter from bash从 bash 连接到远程 PHP 解释器
【发布时间】:2018-03-02 21:32:48
【问题描述】:

我不确定这是否可行。

我的情况是:

我有一个带有 4 个容器的 docker 设置:

  1. PHP-FPM
  2. 数据库
  3. Nginx
  4. 一些批处理器

我了解 NGINX 使用 unix 套接字与 PHP 容器集成。没有图片中的(4),设置同样完美。

我想要完成的是,从 (4) 我想在 PHP-FPM(1) 容器上执行一些 php 脚本。在开始在这里发布这个问题之前,我搜索了是否可以为此目的使用来自 bash 的远程 PHP 解释器。但是大部分文章都是关于 PHPStorm 的。例如,使用远程解释器运行简单 php 脚本的基本示例就可以了。

我可以使用 bash 或其他一些脚本来完成 PHPStorm 的这一特殊功能吗?但这必须来自命令行。

对此的任何意见或反馈将不胜感激。

谢谢。

【问题讨论】:

  • 嗯,通常ssh 是连接远程系统并执行某些命令的首选工具。当然可以这样执行一些 php 命令。
  • @arkascha 是的,你是对的。那将是一项更简单的任务。但是,如果您查看通过 PHP Storm 连接到远程 php 解释器的步骤,它们依赖于“docker.sock”。我的好奇心是我是否可以通过自定义脚本实现这一点。我可以将 docker.sock 从主机挂载到来宾容器(4)。但我不确定这是否会帮助我。
  • 您正在寻找的可能是不是在容器 http 服务器内的本地 fcgi 环境中操作 php 引擎,您也可以直接从在 if 之外,您以这种方式设置 fcgi 环境。这样您就可以将它侦听的套接字公开到(容器的)外部,并从您的 IDE 或 cli 实用程序连接到该端口。可能,但有点异国情调

标签: php docker unix-socket


【解决方案1】:

目前还不清楚您要在这里实现什么。

您已经有了通过网络服务器远程执行 PHP 的方法。

在没有 ssh 访问的情况下实现 Unix 服务器(可能是 Linux,因为我们正在谈论 Docker - 你应该提到过)是非常不寻常的 - 在这种情况下,它是微不足道的......

 ssh remoteuser@yourserver "/usr/bin/php /path/to/yourscript.php"

但假设由于某种原因您没有 ssh 访问权限....

我只能猜测您想从命令行执行脚本以将其与网络服务器进程分离为long running script(尽管这对 nginx 来说应该不是问题)或以不同的权限运行它 - sudo does that。 sudo 也可以作为different SELinux user 运行。

【讨论】:

  • 很抱歉问题中的文字不清楚或令人困惑。假设 container(4) 是一个作业处理器或 cron 作业处理器。我试图将它与 php 容器分离。可能有 PHP 作业以及一些数据库作业或一些代码备份作业等。我试图做的是使用容器中的 PHP 解释器定期执行一些代码 (1)。这也是 PHP Storm 所做的,对吧?但是,我猜他们在那里依赖 docker.sock。我不确定是否还清楚。
猜你喜欢
  • 1970-01-01
  • 2015-02-17
  • 2015-10-13
  • 2016-07-19
  • 2015-01-22
  • 1970-01-01
  • 2013-03-06
  • 2015-05-14
  • 2016-09-25
相关资源
最近更新 更多