Переместить каталог резервных копий Zpanel по умолчанию или каталог резервных копий Opendir
Я работаю над сценарием, который будет загружать все резервные копии zpanel в мою учетную запись Amazon S3. Это работает, если я не использую резервные копии zpanel и создаю и загружаю резервные копии, созданные мной с помощью CronJob.
Причина, по которой я не могу загрузить резервную копию zpanel, заключается в том, что я не могу найти способ добраться до каталога "backups" с помощью функции php opendir.
Я знаю абсолютный путь к папке резервных копий, хотя. И, как кажется, этот абсолютный путь не будет работать с opendir()
Я использовал: opendir('var/zpanel/hostdata/my_username/backups/')
И это не сработает. Теперь, если я хочу использовать относительный путь, я тоже не могу туда добраться.
Итак, есть ли способ, которым я могу переместить каталог резервных копий zPanel где-нибудь в папке public_html? Или веб-URL, который может попасть в папку резервных копий? Ajaxplorer может добраться туда, почему я не могу?
Если это невозможно, я буду очень признателен, если кто-нибудь сможет научить меня создавать резервные копии в точности как zPanel (все БД + все, что находится в папке public_html).
Код выглядит так
require_once('S3.php');
// Enter your amazon s3 creadentials
$s3 = new S3('xxxxx', 'xxxxx');
if ($handle = opendir('var/zpanel/hostdata/my_username/backups/')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
//echo "okay";
echo $file; exit;
if ($s3->putObjectFile("backups/$file", "my_basket", "$file", S3::ACL_PUBLIC_READ)) {
echo "<strong>We successfully uploaded your file.<br /></strong>";
//this will delete the file from your server after upload
//if (file_exists($baseurl . '/' . $file)) { unlink ($baseurl . '/' . $file); }
}else{
echo "<strong>Something went wrong while uploading your file... sorry.</strong>";
}
}else{
echo "No file found here ".$root;
}
}
closedir($handle);
}
Заранее большое спасибо!
1 ответ
У вас есть опечатка в вашем коде. Если вы хотите использовать абсолютный путь с opendir
убедитесь, что он начинается с косой черты (/
). Таким образом, правильная версия будет:
opendir('/var/zpanel/hostdata/my_username/backups/')
Если вы все еще не можете заставить это работать, убедитесь, что путь, по которому вы переходите opendir
это действительно каталог, а также проверьте права доступа к этому каталогу, чтобы убедиться, что ваш процесс PHP может читать из него.
Из документа PHP,
Если путь не является допустимым каталогом или каталог не может быть открыт из-за ограничений разрешений или ошибок файловой системы, opendir() возвращает FALSE ...
Кроме того, если вы используете какие - либо ограничения open-basedir в вашем php.ini
или в вашем коде, убедитесь, что путь, по которому вы переходите opendir
не блокируется этими ограничениями.