Article ID: 115292, created on Dec 13, 2013, last review on Dec 13, 2013

  • Applies to:
  • Plesk 11.5 for Linux
  • Plesk 12.0 for Windows
  • Plesk 11.5 for Windows
  • Plesk 10.4 for Windows

问题

如何从计划的任务调用 PHP/Perl/ASP.NET/其它脚本?

回答

通过对应的程序运行脚本

如果脚本可通过解释器(例如,PHP 或 Perl)执行而不需要在 HTTP 请求中定义的参数,可创建调用脚本解释器(把进入脚本的路径作为一个选项)的计划任务:

/usr/bin/perl /var/www/vhosts/domain.test/cgi-bin/crontasks/cron.pl

在 Windows 上:

    可执行文件路径"C:\Program Files (x86)\Parallels\Plesk\Additional\Perl\bin\perl.exe"
    Arguments:"C:\Inetpub\vhosts\domain.test\cgi-bin\crontasks\cron.pl"

设置 HTTP 请求调用脚本

调用脚本的其它方式是创建将执行所需脚本的 HTTP 请求的任务:

/usr/bin/wget -qq -O /dev/null http://domain.test/script.php

或者

/usr/bin/curl -sL http://domain.test/script.php >/dev/null

在 Windows 上,可以通过 PowerShell 创建 HTTP 请求:

    可执行文件路径C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    Arguments:-c "(new-object system.net.webclient).downloadstring('http://domain.test/script.aspx')"

重要提示

  1. 进入工具的路径应为绝对路径,例如,/usr/bin/wget 而不是 wget
  2. 如果设置域名通过 chrooted shell (on Linux) 允许 shell 访问,那么在 cronjobs 中定义的命令将在虚拟主机目录中设置的 chrooted 环境中查询。此类环境包含最少的工具和语言解释器数量 (Perl/PHP),但是不包括网络工具。因此,命令将运行失败。要避免这种情况出现,您需要使用该 KB 文章中的说明在全局服务器范围中为所有用户设置服务器执行计划任务:#115889

请参见

欲了解如何计划任务,请参阅 计划任务Plesk 管理员指南)。

56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 0a53c5a9ca65a74d37ef5c5eaeb55d7f bd7fc88cf1b01f097749ae6f87272128 85a92ca67f2200d36506862eaa6ed6b8 c796c01d6951fa24ed54c7f1111667c6 ff5a00b8ead2e480367b019417a04207 46a8e394d6fa13134808921036a34da8 01bc4c8cf5b7f01f815a7ada004154a2 ed7be2b984f9c27de1d2dc349dc19c6d a766cea0c28e23e978fa78ef81918ab8

Email subscription for changes to this article