Я хотел бы сканировать мой FTP-сервер с помощью ftp_rawlist с моего веб-сервера.
Это работает, но не всегда.
Мой FTP-сервер размещен на сервере windows 2016 с использованием IIS. Это простая учетная запись FTP (без FTPS и без сертификата).
Мой PHP сервер работает PHP V7.2.30, размещенный на 1 и 1. предел памяти установлен на 128 МБ.
код следующий (я использую AJAX для запроса страницы (метод POST):
display. php
$ftp_server = "xxx.xxx.xxx.xxx";
$ftp_username = "xxxxxxxxxxx";
$ftp_userpass = "xxxxxxxxxxxxxx";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to the FTP server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
$scan = ftp_get_filelist($ftp_conn, '.');
var_dump($scan);
функция. php
function ftp_get_filelist($ftp_conn, $path){
$Win=false;
$contents = ftp_rawlist ($ftp_conn, $path);
$Output = array();
$i = 0;
foreach ($contents as $Current) {
$Split = preg_split('[ ]', $Current, 9, PREG_SPLIT_NO_EMPTY);
if ($Split[0] != 'total') {
$Output[$i]['isdir'] = ($Split[0] {0} === 'd');
$Output[$i]['perms'] = $Split[0];
$Output[$i]['number'] = $Split[1];
$Output[$i]['owner'] = $Split[2];
$Output[$i]['group'] = $Split[3];
$Output[$i]['size'] = $Split[4];
$Output[$i]['month'] = $Split[5];
$Output[$i]['day'] = $Split[6];
$Output[$i]['time'] = $Split[7];
$Output[$i]['full_date'] = '2020-'.$Split[5].'-'.$Split[6].' '.$Split[7];
$Output[$i]['name'] = $Split[8];
$i++;
}
}
return !empty($Output) ? $Output : FALSE;
}
Кажется, все работает (но год, мне еще не удалось это получить, но это еще одна проблема).
Итак, когда я запускаю его, хорошо, у меня есть список файлов и папок. Я обновляю sh хорошо, все еще работаю, я снова обновляю sh, затем это похоже на загрузку, а затем сервер PHP отправляет ошибку:
Ошибка 500 - Внутренняя ошибка сервера
Ошибки, которые случаются 2 или 5 раз, мне очень сложно отлаживать.
Я попытался заглянуть в файл журнала и обнаружил запросы с кодом ошибки 500, но без дополнительной информации:
xxx.xxx.xxx.xxx - - [08/May/2020:06:05:50 +0200] "POST display.php HTTP/1.1" 500 669 www.xxxxxx.com "https://xxxxxx.com/display.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-"
Если у кого-то есть идеи, это будет признательно.
Спасибо