我有一个脚本,它在几个目录中执行一个文件,如下所示:
exec("php-cli $file_path > /dev/null 2>/dev/null &"); //php command-line
这适用于大多数主机,但有些主机不喜欢它并且它不会运行,不会产生任何错误。
对于失败的主机,我使用
exec("php $file_path > /dev/null 2>/dev/null &"); //notice the -cli is gone
哪个工作正常。
$file_path 是正在执行的文件的完整路径 /home/blah/path/blah.php
我怎样才能使这个统一,以便它适用于所有服务器(至少是 unix)
**编辑* *
好吧,我正在这样做,它(很可能)不是正确的方法,但它确实有效。
我不只是使用 php-cli 或 php,而是同时使用两者,所以如果一个失败,另一个会通过。php 作为 cgi 或 cli 运行,其中之一将捕获,并且由于没有输出,因此也不会出现错误。
exec("php-cli $file_path > /dev/null 2>/dev/null &");
exec("php $file_path > /dev/null 2>/dev/null &");
除非您知道更好的解决方案,否则请告诉我。感谢你的帮助。