向cron添加php脚本

向cron添加php脚本,php,cron,Php,Cron,在将脚本添加到cron scheduler时,应该为脚本提供什么作为url。脚本位于domain.com/scripts/script.php PS:我使用的是cPanel,这些都不是。 而是从文件系统根目录开始的完整绝对路径。 您可以使用此代码查看该路径 echo __FILE__; 这些都没有。 而是从文件系统根目录开始的完整绝对路径。 您可以使用此代码查看该路径 echo __FILE__; 下面是我运行的一个cron作业的复制/粘贴: 00 7**1,2,3,4,5 /usr/loc

在将脚本添加到cron scheduler时,应该为脚本提供什么作为url。
脚本位于
domain.com/scripts/script.php

PS:我使用的是cPanel,这些都不是。 而是从文件系统根目录开始的完整绝对路径。 您可以使用此代码查看该路径

echo __FILE__;
这些都没有。 而是从文件系统根目录开始的完整绝对路径。 您可以使用此代码查看该路径

echo __FILE__;

下面是我运行的一个cron作业的复制/粘贴:

00 7**1,2,3,4,5 /usr/local/bin/php /home/processing/process.php


您必须使用PHP二进制文件的绝对路径以及脚本本身的绝对路径。

下面是我运行的一个cron作业的复制/粘贴:

00 7**1,2,3,4,5 /usr/local/bin/php /home/processing/process.php

必须使用PHP二进制文件的绝对路径以及脚本本身的绝对路径。

如果添加行

#!/usr/bin/php
到文件的开头(使用'which php'查找实际目录)并将文件mod更改为“executable”,您只需像第二个选择一样调用即可运行它

/public\u html/scripts/script.php

我希望这对你有用。

如果你加上这一行

#!/usr/bin/php
到文件的开头(使用'which php'查找实际目录)并将文件mod更改为“executable”,您只需像第二个选择一样调用即可运行它

/public\u html/scripts/script.php


我希望这对您有用。

在运行脚本之前,我习惯在crontab上的同一行中更改目录
cd/var/www/vhosts/somesite.com/httdocs

我重定向错误输出,以便在发生执行错误时通过电子邮件获得通知

从crontab:

MAILTO=emailnotifications@mail.com
*       *       *       *       *       cd /var/www/vhosts/domain.com/httpdocs/; /usr/bin/php -f testmail.php 2>&1

在运行带有
/usr/bin/php-f./scriptname.php 2>&1
的脚本之前,我习惯于在crontab的同一行中更改目录
cd/var/www/vhosts/somesite.com/httdocs

我重定向错误输出,以便在发生执行错误时通过电子邮件获得通知

从crontab:

MAILTO=emailnotifications@mail.com
*       *       *       *       *       cd /var/www/vhosts/domain.com/httpdocs/; /usr/bin/php -f testmail.php 2>&1

我从来都不需要PHP二进制文件的绝对路径。如果你用#开始你的脚本/usr/local/bin/php,那么您就不需要它了,但通常包含它是一种很好的做法。我从来都不需要php二进制文件的绝对路径。如果您以#开始脚本/usr/local/bin/php,那么您就不需要它了,但通常包含它是一个很好的实践。。。那么路径就不是问题了。我已经给对了。但是cron没有调用脚本。你知道原因是什么吗?@shyam编程与算命或心灵感应略有不同。一个坐在离你的服务器几千英里远的椅子上的人不知道任何原因。调试并找出原因是程序员自己的工作。你“已经给出”的道路是什么/公共_html/one?那一个对我来说是错误的sure@Col.弹片:没有。我使用了完整的路径,即,
/home/..
,它与
echo\uuuu文件的输出相同。脚本中没有错误-我现在使用一个两行脚本进行测试。我想知道在添加cron作业时是否还需要做更多的工作。目前我已经添加了每分钟运行一次的作业(当然是为了测试),命令名为
/home/user/php/home/user/public\u html/scripts/script.php
。我现在将url添加到php二进制文件中,但它现在不起作用,没有它也不行。@shyam文件系统中没有url。希望你指的是一条路。但是你在哪里寻找错误呢?要使错误可见,您必须在php文件中设置
log_errors
error_log
指令,或者使用管道,将脚本输出重定向到某个文件。确保此脚本使用的所有文件名也具有完全绝对值paths@Col.弹片:我尝试手动运行脚本来检查它是否工作,并且我还添加了
log\u errors
error\u log
。就像我说的,脚本现在只是一些行,所以如果它运行,应该有一个输出。但我的假设是它不是由cron运行的。因此,我认为我添加作业的方式可能有问题(我使用cPanel的接口而不是thru命令)。下面是它的样子:
0****/home/domainname/php/home/domainname/public\u html/scripts/script.php
hmmm。。。那么路径就不是问题了。我已经给对了。但是cron没有调用脚本。你知道原因是什么吗?@shyam编程与算命或心灵感应略有不同。一个坐在离你的服务器几千英里远的椅子上的人不知道任何原因。调试并找出原因是程序员自己的工作。你“已经给出”的道路是什么/公共_html/one?那一个对我来说是错误的sure@Col.弹片:没有。我使用了完整的路径,即,
/home/..
,它与
echo\uuuu文件的输出相同。脚本中没有错误-我现在使用一个两行脚本进行测试。我想知道在添加cron作业时是否还需要做更多的工作。目前我已经添加了每分钟运行一次的作业(当然是为了测试),命令名为
/home/user/php/home/user/public\u html/scripts/script.php
。我现在将url添加到php二进制文件中,但它现在不起作用,没有它也不行。@shyam文件系统中没有url。希望你指的是一条路。但是你在哪里寻找错误呢?要使错误可见,您必须在php文件中设置
log_errors
error_log
指令,或者使用管道,将脚本输出重定向到某个文件。确保此脚本使用的所有文件名也具有完全绝对值paths@Col.弹片:我尝试手动运行脚本来检查它是否工作,并且我还添加了
log\u errors
error\u log
。就像我说的,剧本是绝对的