2011-04-06 44 views
3

我想在另一台专用服务器上设置一个完全在PLESK 9下工作的cronjob,但无法在PLESK 10下的新专用服务器上运行它。我只是无法弄清楚原因。为什么我的cron任务在命令行中工作,但不在PLESK中?

一些信息:我已经运行PHP作为Apache模块和:

whereis PHP说:PHP:USR /斌/ PHP

而且

usr/bin/php -q/var/pathtocronjob

完美地在命令行中工作。 然而,当我在 “计划任务” 设置此Plesk中它只是说

- :在/ usr/bin中/ PHP:没有这样的文件或目录

我搜索过任何可以帮助我的东西,但只是找不到任何帮助。 任何人都知道为什么这不工作,当然...如何解决这个问题?

+0

尝试仅仅PHP的,而不是完整的路径,可能的Plesk有它的内部映射... – powtac 2011-04-06 13:24:51

回答

2

可能是cron任务的某种chrooted shell?请看Admin guide

+0

根据我的主人,是“与权限有关“。我不能在这里做一些事情,但至少这是一个方向。任何建议在哪里看? – Glooh 2011-04-08 07:20:36

2

您将无法访问比在Plesk上签名的主机/用户更低的级别。这是为了防止用户去那里var/www/vhosts/domein.tld文件夹。这是一个内置的安全功能,因此用户无法使用exploit命令搞乱服务器,只是留在他们自己的沙箱中。

使用短'PHP'代替'USR /斌/ PHP'

例如magento的重新索引命令

 0 */3 * * * php -q httpdocs/shell/indexer.php reindexall

PS: 很多平常的ssh不会命令在crontab命令字段中工作!

3

请确保包含第一个斜杠/

,就应该替换:

usr/bin/php -q /var/pathtocronjob 

/usr/bin/php -q /var/pathtocronjob 
+0

如果这不起作用,就像我的情况一样,那么php的路径并不好。所以你需要做的就是调用'哪个php',这个命令会告诉你正确的路径。 – 2013-05-25 07:04:03

相关问题