【问题标题】:Unix `at` command via PHP通过 PHP 的 Unix `at` 命令
【发布时间】:2013-03-25 23:18:55
【问题描述】:

这是我创建新的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 工作?

【问题讨论】:

    标签: php ubuntu ssh at-job


    【解决方案1】:

    仅供参考,您必须确保允许您从 PHP 脚本执行系统命令。

    很多服务器都禁用了这个功能。

    但是,如果您想重新打开它,我相信您可以在 php.ini 文件中这样做,您必须将 safe_mode 关闭。

    当允许将用户提供的数据传递给此函数时,请使用 escapeshellarg() 或 escapeshellcmd() 以确保用户无法欺骗系统执行任意命令。

    如果使用此函数启动程序,为了使其继续在后台运行,必须将程序的输出重定向到文件或另一个输出流。否则会导致 PHP 挂起,直到程序执行结束。

    注意:启用安全模式后,您只能执行 safe_mode_exec_dir 中的文件。出于实际原因,目前不允许在可执行文件的路径中包含 .. 组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2011-11-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      相关资源
      最近更新 更多