我的public_html目录中有一个PHP模块(例如mycronjob.php)
如果我从浏览器中执行 mycronjob.php ,它将按预期运行。
例如,命令
getcwd()
给出/ home / myaccount / public_html 所有的fopen命令都会打开public_html中的文件。
但是,如果我执行与cron作业完全相同的模块,则命令 getcwd()给出/ home / myaccount 并且所有fopen命令都打开myaccount中的文件,而不是public_html
Cron工作是:
/usr/local/bin/php -e /home/myaccount/public_html/mycronjob.php
有人知道为什么cron作业 getcwd()和 fopen() 命令不会解析为public_html吗? 我的房东似乎在努力寻找原因。
典型的 fopen()命令为:
$myfile='mydata.htm';
if(($myfile = fopen($myfile,'w')) === FALSE){
echo "Failed to open myfile file for writing!" . "<br />\n";
exit(8);
}
答案 0 :(得分:2)
这是因为执行cron的位置。这很正常,您可以使用 FILE 常量来修复它。
$file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mydata.htm';