Php 从哪个位置调用Cron?

Php 从哪个位置调用Cron?,php,json,file-io,cron,Php,Json,File Io,Cron,我创建了一个简单的PHP脚本,由远程Web服务器上的CRON守护进程执行。每隔几分钟,脚本就会在另一个网站上查找一些JSON数据,并将结果存储在与自身相同的文件夹中的文件中 但是,在浏览器中导航到页面时使用的文件似乎与执行cron时使用的文件不同 换言之:当你走到这里: www.example.com/cronscripts/my_script.php使用文件/home/user\u xxx/domains/example.com/public\u html/cronscripts/datafi

我创建了一个简单的PHP脚本,由远程Web服务器上的CRON守护进程执行。每隔几分钟,脚本就会在另一个网站上查找一些JSON数据,并将结果存储在与自身相同的文件夹中的文件中

但是,在浏览器中导航到页面时使用的文件似乎与执行cron时使用的文件不同

换言之:当你走到这里:

www.example.com/cronscripts/my_script.php
使用文件
/home/user\u xxx/domains/example.com/public\u html/cronscripts/datafile.json

但是,使用以下cron语句调用脚本时:

/usr/local/bin/php/home/user_xxx/domains/example.com/public_html/cronscripts/my_script.php
使用不同位置的文件。这个文件在Linux服务器的/usr/local/bin/php文件夹中吗?如果是这样,我无法手动访问它,因为我只能访问/home/user\u xxx/文件夹


有人能告诉我使用Cronjobs时文件的最终位置吗?

您应该使用服务器上脚本的绝对路径,即/var/www/script.php

试着改用

*/1****php/home/user_xxx/domains/example.com/public_html/cronscripts/my_script.php

只是一个旁注:请始终使用#/bin/env php
(有关更多信息,请参阅)

使用以确保在正确的目录中启动也可能会有所帮助。

这似乎是位置的路径不匹配,您很可能在某个位置使用了相对路径作为
json
文件

我认为你应该把你的工作安排如下,看看是否有效

* * * * * cd /home/user_xxx/domains/example.com/public_html/cronscripts && /usr/local/bin/php my_script.php

如果在脚本中始终使用绝对路径名,则可以避免此问题。您可以使用
realpath(dirname(\uu FILE.\uu)。“/…”
,根据需要替换多个
,以到达项目的“根目录”,然后从那里添加一个路径。@ansh0l,我将在明天再次工作时试用它。别担心,在cron语句中,我使用的是绝对路径。或者这不是你的意思吗?你能复制并粘贴cron的语法吗?
*/1****/usr/local/bin/php/home/user\u xxx/domains/example.com/public\u html/cronscripts/my\u script.php
是我用于cron的语法。