繁体   English   中英

通过Linux上的.php通过.sh运行节点文件

[英]Running a node file, via a .sh from .php on linux

我正在尝试从php运行节点文件。 以下作品...

从运行.sh的终端运行节点,从运行php的.sh终端运行节点文件,写入文本文件(因此php成功触发了.sh)

但是,当我运行.sh文件时,从php运行节点文件失败。 我尝试使用等待30(该过程大约需要10秒钟)来确保它在完成之前没有退出。 我是否需要设置任何特殊权限才能使php-> .sh->节点正常工作? 完成大量搜索后找不到任何东西。

重要的是要了解文件和执行链是如何完成的,以了解为什么它不起作用(假定)。

假设下面有一个非常普通的设置...

初始化Apache后,它就有一个所有者,在这种情况下,我们将称www-data 现在,Apache将以www-data用户身份执行并侦听端口80。 这意味着它从现在开始处理的所有请求都将以www-data用户身份执行。

因此,当您访问http://example.com/my-page.php时 ,Apache将收到此请求。 然后它将出去,并根据VirtualHost指令中的DocumentRoot在文件系统中找到与my-page.php关联的文件。 完成此操作后,已附加到.php文件的PHP解释器将对该文件进行自顶向下的解释。

一旦进入您的bash脚本, www-data仍然是所有者。 现在,在这种情况下, bash script已作为www-data执行,我敢打赌, www-data (或您的Apache用户)不在sudoers列表中(理应如此)。

为了解决此问题,您应该确保在实例配置上可以在没有sudo权限的情况下调用node实例。 如果这只是本地主机的事情,而外界不会遇到麻烦,我想说将www-data (或您的Apache用户)添加到sudoers列表中并不是一件坏事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM