【发布时间】:2012-07-24 23:16:50
【问题描述】:
Cron 无法正常工作。我使用以下命令在 /etc/cron.d 中创建了一个文件
$ touch /etc/cron.d/php-crons
$ chown www-data /etc/cron.d/php-crons
我收到类似 (*system*php-crons) WRONG FILE OWNER (/etc/cron.d/php-crons) 的错误 所以我将文件所有者更改为 root
$ chown root /etc/cron.d/php-crons
即使 cron 不工作。 我的php文件(cron.php)如下
$fp = fopen('/etc/cron.d/php-crons', 'a');
fwrite($fp, '10 * * * * root usr/bin/php PATH TO SCRIPT/email.php'.PHP_EOL);
fclose($fp);
当我打开 /etc/cron.d/php-crons 时,我可以看到作业。
10 * * * * root usr/bin/php /var/www/PATH TO SCRIPT/email.php
在 email.php 中我包含了
#!/usr/bin/php
mail ("examplemail@gmail.com", "Cron Successful Public HTML!", "Hello World from cron.php!");
如果我将 (/etc/cron.d/php-crons) 文件所有者更改为 root 然后在浏览器中运行 cron.php ,那么我无法在 /etc/cron.d/php-crons 中写入任何内容并收到如下警告。
警告:fopen(/etc/cron.d/php-crons):打开流失败:第 2 行 /var/www/cron.php 中的权限被拒绝警告:fwrite() 期望参数 1 是资源,在第 3 行的 /var/www/cron.php 中给出的布尔值警告:fclose() 期望参数 1 是资源,在第 4 行的 /var/www/cron.php 中给出的布尔值。 请有人指导我!
【问题讨论】:
-
要调试您的 PHP 代码(产生这些错误),我们需要查看您的 PHP 代码。
-
另外,您可能从不希望拥有一个可由 root 执行的
www-data用户可写的脚本。