linux的crond不能正常工作

我有一个用于创build缩略图的cronjob。 文件夹/var/www/html/work/具有权限744 (我认为744比777更安全)

的crontab

 * * * * * /usr/bin/php /var/www/html/work/images.php 

PHP脚本

 $newstore = dirname(__FILE__) . '/images/.$data->name.'jpg'; $width = (int)($data->width); $height = (int)($data->height); $desired_width = round((300*$width)/$height); $desired_height = 300; $virtual_image = imagecreatetruecolor($desired_width, $desired_height); imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height); imagejpeg($virtual_image,$newstore); 

编辑

在浏览器部分。 我已经login到phpmyadmin ,所以当我尝试localhost/work/images.php ,它运作良好。 , and works in in PuTTY SSH , and works in / usr / bin / php /var/www/html/work/images.php in工作。

但在crond工作失败。 我已经重新启动cron service crond restart所有的东西[确定],然后尝试/etc/cron.allow ,返回-bash: /etc/cron.allow: No such file or directory,运行/etc/cron.deny ,返回-bash: /etc/cron.deny: Permission denied

BTY: vi /var/log/httpd/error_log没有错误提示。

哪里有问题? crond setting ? 或folder permission

哦,上帝,停止调整基本的系统二进制文件。 这不会有好结果。

如果你能够以root身份从命令行运行你的脚本,但是它在cron中失败,那么最可能的问题是:

1)一个权限问题(特别是一个基本的权限问题,而不是系统范围的问题,这就是你试图用你的chmod语句修复的问题)。

2)PATH问题。

对于#1,你看了/ var / www / html / images目录的所有权和权限吗? 此目录的所有权和权限是否允许运行cron的用户修改文件?

其实,你怎么用cron来运行用户呢? 你在/etc/cron.d目录下有吗? 如果将cronjob文件放在/etc/cron.d中,则格式会稍有不同,因为必须将执行cron的用户放在date/时间字段和命令之间。

对于#2,我认为这是不太可能的,因为你指定的可执行文件(/ usr / bin / php)的绝对path名,你的脚本不包括任何额外的库。

改变你的cron作业

 * * * * * /usr/bin/php /var/www/html/work/images.php &>/tmp/job.log 

这将在/tmp/job.log捕获脚本中的任何输出。 运气好的话,你将得到所需要的信息来弄清楚发生了什么。

看一下/var/log/cron ,看看里面是否有相关的消息。