حل بسيط جدا في كثير من الحالات ، لمشكلة خطيرة جدا. في السيناريو حيث يتعين علينا نقل موقع على شبكة الإنترنت ، وعدد ملفاته بضعة آلاف ، ومزود خدمة استضافة الويب لا يوفر لنا نظام النسخ الاحتياطي مع الأرشفة أو أي طريقة أخرى مماثلة للسماح لنا هذا، نقل بروتوكول نقل الملفات وهو الحل الذي كنا تستغرق وقتا طويلا جدا.
سيساعدنا سيناريو PHP الذي تم تحميله على الخادم الذي يستضيف الموقع على القيام بذلك شكل القطران أرشفة جميع الملفات في مجلد.
كيف يمكنني أرشفة الملفات والمجلدات على خادم ويب باستخدام برنامج PHP النصي؟
انسخ البرنامج النصي أدناه وضعه في ملف .php على الخادم. مثال: يحتوي arhiva.php على البرنامج النصي أدناه:
<?php
try {
//make sure the script has enough time to run (300 seconds = 5 minutes)
ini_set('max_execution_time', '300');
ini_set('set_time_limit', '0');
$target = isset($_GET["targetname"]) ? $_GET["targetname"] : 'archive.tar'; //default to archive.tar
$dir = isset($_GET["dir"]) ? $_GET["dir"] : './.'; //defaults to all in current dir
//setup phar
$phar = new PharData($target);
$phar->buildFromDirectory(dirname(__FILE__) . '/'.$dir);
echo 'Compressing all files done, check your server for the file ' .$target;
} catch (Exception $e) {
// handle errors
echo 'An error has occured, details:';
echo $e->getMessage();
}
?>
حذر! يجب تحميل البرنامج النصي إلى المجلد حيث نريد أرشفة المجلد والملفات التي تحتوي عليه. على سبيل المثال ، إذا أردنا أرشفة جميع محتويات مجلد wp-content ، فإن al WordPress، سيتم تحميل الملف الذي أطلقناه على arhiva.php إلى / wp-content /.
يتم إنشاء الأرشيف من خلال الوصول إلى ملف arhiva.php في المتصفح. url: http: ..web_name.tld / wp-content / archive.php ، وفي نهاية العملية على الخادم سيكون ملف archive.tar.
إذا كان لديك حجم كبير من الملفات ، قم بتغيير قيمة "timeout" لوقت التنفيذ. يمكنك القيام بذلك من php.ini أو htaccess.