انتقال فایل بین 2 هاست بدون دانلود و آپلود + با استفاده از PHP

آیا میخواهید فایلهای حجیم را سریع به هاست جدید منتقل کنید؟
انتقال فایل بین دو هاست زمانی که حجم فایل بالا باشد (مثلاً بستههای نصبی داپلیکیتور)، میتواند بسیار زمانبر و هزینهبر باشد. در چنین شرایطی، دانلود فایل روی سیستم شخصی و آپلود مجدد آن اصلاً راهکار منطقی و مناسبی نیست. در این آموزش تخصصی از وبینیو، روشهای انتقال فایل مستقیم (سرور به سرور) را بررسی میکنیم. حتی ترفندی را به شما آموزش میدهیم که بدون متصل بودن دامنه به هاست جدید، عملیات انتقال را در کمتر از چند دقیقه انجام دهید!
۱. انتقال فایل بین دو هاست با استفاده از کد PHP
در این روش از تابع copy() در زبان PHP استفاده میشود. دقت داشته باشید که برای اجرای این کد، نسخه PHP هاست باید بالاتر از 5 باشد و برای دسترسی راحت به فایل، دامنه شما باید به هاست جدید متصل باشد.
مرحله اول: ایجاد فایل در هاست جدید
- وارد هاست جدید شوید و در پوشهای که قصد دارید فایل در آن ذخیره شود (معمولاً
public_html)، یک فایل PHP جدید ایجاد کنید. - نام فایل را
copy.phpبگذارید تا مشخص باشد که این فایل مسئول انتقال است. - روی فایل
copy.phpراستکلیک کرده و گزینه Edit را انتخاب نمایید. - کد زیر را کپی کرده و درون آن قرار دهید:
<?php
// برای جلوگیری از قطع شدن عملیات در فایلهای حجیم
set_time_limit(0);
// پارامتر اول مسیر فایل مبدا و پارامتر دوم نام فایل جدید است
if(copy('https://www.old-site.com/file.zip', 'new-file.zip')) {
echo "انتقال با موفقیت انجام شد!";
} else {
echo "خطا در انتقال!";
}
?>
مرحله دوم: اجرای فایل
کافی است مرورگر خود را باز کنید و آدرس فایلی که ساختید را فراخوانی کنید. (مثلاً https://yourdomain.com/copy.php). مرورگر در حالت لودینگ میماند تا انتقال به پایان برسد. به هیچ وجه صفحه را نبندید تا پیام موفقیتآمیز بودن آن نمایش داده شود.
۲. انتقال مستقیم با Cron Job (راهکار زمان قطع بودن دامنه!)
گاهی اوقات شما هاست جدیدی خریدهاید اما دامنه هنوز به آن متصل نیست یا DNSها تغییر نکردهاند. همچنین در برخی هاستینگها (مثل نت افراز) دسترسی مستقیم به ترمینال (SSH) مسدود است. در این شرایط، بهترین، پایدارترین و سریعترین راهکار استفاده از ابزار کرون جاب (Cron Jobs) است.
- وارد پنل هاست خود (سی پنل یا دایرکت ادمین) شوید و به بخش Cron Jobs (کرون جابها) بروید.
- یک کرون جاب جدید ایجاد کنید و زمان اجرای آن را روی هر ۱ دقیقه (قرار دادن ستاره * در تمامی فیلدها) تنظیم کنید.
- در کادر Command (دستور)، باید از دستور
wgetاستفاده کنید. کد زیر یک نمونه استاندارد است:
/usr/bin/wget -q -O /home/username/domains/yourdomain.com/public_html/backup.zip https://old-site.com/backup.zip
راهنمای کد بالا: به جای username نام کاربری ورود به هاست جدید خود، و به جای yourdomain.com نام دامنهای که به عنوان دامنه اصلی در هاست ثبت کردهاید را بنویسید. آدرس اینترنتی انتهای کد نیز لینک دانلود فایل در سرور قدیم شما است.
پس از ذخیره کردن این دستور در کرون جاب، فقط ۱ دقیقه صبر کنید تا فرآیند دانلود شروع شود. سپس بلافاصله آن کرون جاب را از لیست حذف کنید! نگران نباشید، دانلود قطع نمیشود، بلکه حذف کردن آن باعث میشود سرور در دقیقه بعدی مجدداً فایل را از صفر دانلود نکند و باعث خرابی فایل زیپ شما نشود. پس از چند دقیقه به File Manager بروید، خواهید دید فایل دانلود شده است.
۳. ترفند طلایی برای حرفهایها: گول زدن سیستم با فایل Hosts
اگر طراح سایت، برنامهنویس یا سئوکار هستید، یک ترفند فوقالعاده برای زمانی که میخواهید بستههای نصبی (مثل Duplicator) را پیش از ست شدن DNSها روی سرور جدید نصب کنید وجود دارد. شما میتوانید به ویندوز خود دستور دهید که دامنه را موقتاً از روی IP هاست جدید بخواند:
- نرمافزار Notepad را در ویندوز به صورت Run as administrator باز کنید.
- از طریق منوی File و Open، فایل
hostsرا در مسیرC:\Windows\System32\drivers\etcباز کنید. - در خط آخر، IP هاست جدید (مثبت ۸۹.۴۲.۴۴.۹۴) و سپس با یک فاصله نام دامنه سایتتان را بنویسید و فایل را ذخیره کنید. (مثال:
89.42.44.94 yourdomain.ir)
کار تمام است! حالا اگر آدرس سایت یا فایلهای نصب (مثل installer.php) را در مرورگر تایپ کنید، مستقیماً از هاست جدید باز میشوند و میتوانید سایت خود را نصب کنید. فراموش نکنید پس از اتمام کار، این خط را از فایل پاک کنید تا سیستم به حالت عادی برگردد.
جمعبندی نهایی
با استفاده از این سه روش حرفهای، میتوانید فایلهای حجیم و گیگابایتی را بین دو هاست بدون نیاز به دانلود روی سیستم خود جابهجا کنید. این کار نه تنها زمان انتقال را به چند ثانیه یا دقیقه کاهش میدهد، بلکه هزینههای ترافیک اینترنت شما را نیز به صفر میرساند.
در صورتی که در اجرای مراحل بالا در دایرکت ادمین یا سی پنل با مشکلی مواجه شدید، میتوانید از طریق چت آنلاین سایت وبینیو یا دایرکت اینستاگرام، سوالات خود را بپرسید تا سریعاً راهنمایی دریافت کنید.







