这是我创建新at
工作的代码...
system('echo \'php -f /path/to/my/php/file.php\' | at 1700');
我认为这很简单,只会工作但唉,没有任何反应!
当我通过ssh运行echo \'php -f /path/to/my/php/file.php\' | at 1700
时,一切都按预期工作。
这是权限问题吗?即PHP不允许创建新的at
个职位吗?
答案 0 :(得分:1)
仅供参考,您必须确保允许您从PHP脚本执行系统命令。
许多服务器都禁用了此功能。
但是,如果你想重新打开它,我相信你可以在php.ini文件中这样做,你必须将safe_mode变为关闭。
当允许将用户提供的数据传递给此函数时,请使用escapeshellarg()或escapeshellcmd()以确保用户不会欺骗系统执行任意命令。
如果使用此功能启动程序,为了使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到程序执行结束。
注意:启用安全模式后,您只能执行safe_mode_exec_dir中的文件。出于实际原因,目前不允许在可执行文件的路径中包含..组件。