使用PHP从PHP脚本调度一次性事件不起作用

时间:2014-02-12 16:08:30

标签: php schedule

我需要使用PHP来安排任务,以便以后在本地计算机上执行。我正在避免使用cron,因为我不需要随着时间的推移重复这项任务。

我试过

$msg="at 10am today
date > /path/path/date.txt
\x04";
shell_exec($msg); // Nope

$msg="at 10am today
date > /path/path/date.txt
".chr(4);
shell_exec($msg); // Nope

$msg=<<<EOT
at 10am today
date > /path/path/date.txt
EOT;
shell_exec($msg); // Nope

shell_exec('echo "date > /some/path/date.txt" | at 10am today');

在终端中使用 php 执行脚本时,最后一行是有效的,但在我的Web浏览器(http://localhost/script.php)中转到脚本时则不行。我也试过了system但没有成功。顺便说一句,echo shell_exec('ls /')没有问题,所以我不认为这是一个许可问题?有没有人有什么想法?


背景信息:这样做的动机是我正在构建一个基于Web的界面,用于指定计算密集型模拟作业并将其提交给远程计算机。我的PHP脚本从用户输入生成R和Matlab脚本,我可以从PHP SSH到这些机器就好了。我无法安排这些脚本在以后执行,与SSH会话无关。

1 个答案:

答案 0 :(得分:1)

正如您所建议的那样,探测器是用户执行脚本的。我认为经典的www-data不能在命令

中使用

以普通用户身份添加专用用户(adduser phpschedule); 然后将在apache中执行php的用户从经典的www-data更改为phpschedule