我有一个相当长的PHP脚本,每当我的互联网连接跳过一秒钟时,浏览器似乎停止了脚本。我不能坐了8个小时让我的脚本运行所以我想我可以通过ssh运行它并在第二天回来并获取我的输出文件。然而,简单地将脚本名称键入ssh似乎不起作用。是否有通过ssh运行php脚本的特殊命令?
答案 0 :(得分:19)
如果您的互联网连接正在退出,那么这也可能是SSH的一个问题,而且,打开SSH窗口并不总是最好的事情(如果您不小心关闭了会发生什么? ssh窗口?)
我建议SSH进入服务器,然后运行一个名为“screen”的程序,即使连接断开,它也会继续运行你在其中运行的任何内容。
要执行此操作,首先将ssh导入服务器,然后键入
screen
这将加载屏幕,按Enter键以绕过欢迎屏幕
现在,运行PHP脚本
php /path/to/your/php/script.php
这将启动PHP运行,
您现在可以根据需要关闭窗口,脚本将继续运行
要返回屏幕会话,请连接到服务器,然后运行命令
screen -raAD
会重新连接到您的会话,就像您一直打开窗口一样。
这实际上非常适合运行长卷程序,甚至运行基于控制台的IRC会话:D
答案 1 :(得分:8)
通常,您应该能够像命令行一样从
运行脚本php myscript.php
通过ssh在远程主机上执行此操作可以像这样完成
ssh phpnewb@myhost.com "php myscript.php"
答案 2 :(得分:5)
除了其他人说的话,你可能也想使用nohup
。
ssh user@host "nohup php script.php"
即使您的 ssh 连接断开,它也会继续运行。如果您愿意,也可以使用screen
代替nohup
。
答案 3 :(得分:2)
尝试
php script.php.
如果这不起作用,则必须找到php可执行文件,然后执行它。
顺便说一句,您可以使用屏幕,因此如果与计算机的连接丢失,脚本仍会运行。
答案 4 :(得分:0)
或者,您只需拨打ignore_user_abort()
,然后在点击页面后关闭浏览器。
答案 5 :(得分:0)
nohup php -q /path-to-script/file.php& 出口
将执行php文件并关闭控制台而不终止该过程。