gpt4 book ai didi

PHP shell_exec 页面超时

转载 作者:行者123 更新时间:2023-11-30 00:45:28 28 4
gpt4 key购买 nike

我在服务器上有一个 shell 脚本,我从 php 页面调用它,它是从数据库传输数据的 api 的一部分。

shell 脚本在我的服务器和位于数据库所在的防火墙后面的第三部分服务器之间设置端口绑定(bind)。我已经在两个服务器之间设置了无密码 ssh,当我在终端中运行脚本时,执行时没有问题,我可以刷新我的 php 页面,并且数据从他们的数据库返回。

lsof -n -i:3311 | grep LISTEN | awk '{ print $2 }' | uniq | xargs -r kill -9
ssh -fNg -L 3311:127.0.0.1:3306 user@ipaddress

当服务器丢失/删除绑定(bind)并且我无法再执行 mysql 查询时,php 代码正在尝试重新启动连接

shell_exec("sh start_sever.sh");

但是,脚本需要永远运行并且页面超时。但是,它确实执行 shell 脚本,如果我注释掉 shell_exec 行,则会返回数据。

你能想到

1) 为什么两台服务器之间的绑定(bind)会定期丢失?2) 为什么 shell_exec 命令会杀死页面 - 像 ls -a 这样的简单命令运行良好。3) 像运行 cronjob 来每 x 分钟执行 shell 脚本这样的解决方案是一个更好的主意

谢谢

最佳答案

您是否为运行网络服务器和目标服务器的帐户或您在网络服务器和目标服务器上的自己帐户设置了 ssh 身份验证?

当脚本在这种情况下超时时,可能是因为它们正在等待 STDIN,如果您没有为运行 Web 服务器和目标服务器的帐户设置 key 身份验证,就会出现这种情况。它将等待输入密码并等待,直到发生这种情况或 php 使 shell_exec 超时。

关于PHP shell_exec 页面超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21407576/

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