我创建了一个cron脚本,它从本地获取文件并将文件保存到Amazon S3。当我从命令行或通过浏览器执行文件时,它完全正常。但是当它在crontab下时,它无法将文件保存到亚马逊s3。
$phpThumb = new phpThumb();
$phpThumb->setSourceFilename($img);
$phpThumb->setParameter('config_output_format', 'jpeg');
$phpThumb->setParameter('config_allow_src_above_docroot', true);
$phpThumb->setParameter('w', 640);
$phpThumb->setParameter('h', 480);
$phpThumb->setParameter('q', 50);
$phpThumb->setParameter('zc', 1);
$phpThumb->setParameter('config_cache_disable_warning', true);
$phpThumb->setParameter('config_imagemagick_path', null);
$phpThumb->setParameter('config_prefer_imagemagick', false);
$extension = pathinfo($img,PATHINFO_EXTENSION);
if(empty($extension))
$extension = 'jpg';
$fileExternal = pathinfo($img);
$destination = 'Uploads/phpthumb/'.uniqid().$fileExternal['filename'].".".$extension;
if ($phpThumb->GenerateThumbnail()) {
$phpThumb->RenderToFile('../'.$destination); // works over here in cron script
$s3->putObjectFile($destination, 'prod_images/offers', basename($destination), S3::ACL_PUBLIC_READ);
代码工作漂亮的文件如果我直接执行它。但是通过cron,它在putObjectFile Line上失败了。
cron条目
*/45 * * * * php /var/www/direct/runparser.php >> /var/log/apache2/runparser.txt /dev/null
此外,runparser.txt
中没有任何内容