我有一个脚本,可以从外部服务器下载图像并将其保存在网站根目录下的文件夹中。该脚本文件也位于网站的根目录中。
图像文件夹:/ public_html / images /
脚本:/public_html/script.php
当我手动运行文件(example.com/script.php)时,所有下载的图像文件都会正确保存在该文件夹中。但是,当cron作业执行该文件时,所有图像将以0字节的大小保存。
在cron作业运行之前,我试图清空文件夹。我已将权限更改为777。脚本手动运行且cron看起来相同时的日志文件。
cron作业是在cronel crontab中设置的。
请帮助我弄清楚发生了什么事情。
$dir = "/home/example/public_html/images/";
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
unlink($dir.DIRECTORY_SEPARATOR.$item);
}
$ftp_server = 'www2.housescape.org.uk';
$ftp_conn = ftp_connect($ftp_server);
$ftp_user = 'user';
$ftp_pass = 'password';
ftp_set_option($ftp_conn, FTP_TIMEOUT_SEC, 3600);
if(ftp_login($ftp_conn, $ftp_user, $ftp_pass)){
ftp_pasv($ftp_conn, true);
$images = ftp_nlist($ftp_conn, '/images/');
$c = 0;
foreach($images as $image){
$c = $c + 1;
echo "ftp://user:password@www2.housescape.org.uk:21".$image." / ";
$urltoget="ftp://user:password@www2.housescape.org.uk:21".$image;
echo $thefile=basename($image);
echo "<br>";
$content = file_get_contents("ftp://user:password@www2.housescape.org.uk:21".$image);
file_put_contents("/home/example/public_html/images/".$thefile, $content);
}
if ($count1>0) { echo "No File Change"; }
ftp_close($ftp_conn);
}
else{
echo 'Failed Login!';
}
答案 0 :(得分:0)
这只是帮助查找错误的建议,而不是答案:
您是否检查了CRON PHP环境是否启用了allow_url_fopen?
<?php
if (!ini_get('allow_url_fopen')) {
die("'allow_url_fopen' is not enabled in the php.ini");
}