آموزش انتقال سایت به سرور جدید
در این مقاله میخوانید
انتقال سایت به سرور جدید اگرچه فرایندی رایج است، اما در صورت انجام نادرست میتواند منجر به از بین رفتن دادهها، ایجاد downtime و حتی افت رتبه سئو شود. به همین دلیل نحوه انتقال اهمیت بسیار بالایی دارد و باید با دقت و بر اساس مراحل استاندارد انجام شود. در این مقاله از بخش آموزش سرور در وبلاگ پارسپک بهصورت کامل و کاربردی روشها و نکات لازم برای انتقال سایت به سرور جدید را بررسی میکنیم تا بتوانید بدون از دست رفتن داده و با حداقل قطعی، سایت خود را جابهجا کنید.
دلیل تغییر سرور سایت چیست؟
تغییر سرور میتواند به دلایل مختلفی انجام شود. معمولا کسبوکارها برای بهبود عملکرد، کاهش هزینه یا مسائل مدیریتی تصمیم به جابهجایی میگیرند. در ادامه به برخی از مهمترین علل میپردازیم:
- نیاز به منابع سختافزاری بالاتر (CPU، RAM، I/O)
- افزایش سرعت و بهبود شبکه یا نزدیکی جغرافیایی به کاربران
- کاهش هزینهها یا تغییر به پلن اقتصادیتر
- ارتقا سطح امنیتی یا استفاده از دیتاسنتر بهتر
- تغییر کنترل پنل یا مدیریت (مثلاً از اشتراکی به سرور اختصاصی یا از WHM/cPanel به DirectAdmin) و یا ارتقای سیستم عامل
- نیاز به نسخههای جدیدتر PHP/MySQL یا ماژولهای خاص
- مسائل مربوط به پشتیبانی یا قرارداد با ارائهدهنده فعلی
برای مطالعه بیشتر مقاله مربوط به سرور را بخوانید:
پیشنیازهای انتقال سایت به سرور جدید
قبل از شروع عملیات انتقال باید موارد زیر را آماده و بررسی کنید تا ریسک از دست رفتن داده یا قطعی کاهش یابد:
- تهیه بکاپ کامل از فایلها، پایگاه داده و تنظیمات ایمیل.
- دسترسی SSH به هر دو سرور در صورت امکان (بدون دسترسی SSH هم انتقال با روش های جایگزین، امکان پذیر است) و کاربر با دسترسی مناسب.
- اطلاعات اتصال FTP/SFTP و دسترسی به کنترل پنل (cPanel/DirectAdmin/WHM یا پنل میزبان).
- لیست دامنهها، سابدامنهها، رکوردهای DNS و تنظیمات SSL.
- نسخههای فعلی PHP، MySQL/MariaDB، وبسرور (Apache/Nginx/LiteSpeed) و ماژولهای مورد نیاز.
- فضای کافی روی سرور جدید برای کپی کامل دادهها.
- اگر ایمیلها روی سرور هستند، برنامهای برای مهاجرت میلباکسها (IMAP backup یا انتقال via rsync/imapcopy).
- زمانبندی و اطلاعرسانی به کاربران در صورت نیاز به پنجره نگهداری.
سایر ابزارهای لازم:
- Rsync
- mysqldump
- Scp
- ssh
- phpMyAdmin (اختیاری)
- WP-CLI (برای وردپرس)
آموزش انتقال سایت به سرور دیگر
در این بخش روشهای رایج انتقال را پوشش میدهیم. این روشها به سه دسته عمده تقسیم میشوند:
- انتقال با کنترل پنل (cPanel/WHM، DirectAdmin)
- انتقال دستی با SSH/rsync
- انتقال از طریق FTP یا ابزارهای خودکار
در ادامه هر روش مرحله به مرحله بیان شده است.
انتقال با cPanel/WHM (مناسب سرورهای دارای WHM)
۱. در سرور مقصد WHM را باز کنید و به بخش “Transfer Tool” بروید.

۲. آدرس IP و اطلاعات روت (root) یا کاربر با دسترسی SSH سرور مبدا را وارد کنید.
۳. لیست اکانتها را انتخاب کنید و گزینههای انتقال (preserve owners, copy quotas) را تنظیم کنید.
۴. انتقال را شروع کنید و لاگها را برای خطاها بررسی کنید.
۵. پس از انتقال، سرویسها را (Apache/Nginx, PHP-FPM, MySQL) ریاستارت کنید و سایتها را تست کنید.
این روش برای مهاجرت کامل اکانتها و ایمیلها مناسب است و کمترین خطای انسانی را دارد، در صورتی که دسترسی به WHM ندارید از طریق بخش Backup در cPanel نیز میتوانید بکاپ استاندارد cPanel خود را آپلود کنید تا ریستور شود.

انتقال با DirectAdmin
۱. در DirectAdmin از ابزار “Admin Backup/Transfer” استفاده کنید.

۲. بکاپ وبسایت دایرکت ادمین خود را بر روی سرور دانلود کنید، سپس مسیر آن را در بخش Path وارد کنید (عنوان بکاپ با فرمت user.admin.username.tar.gz باشد).
۳. در مرحله بعد آی پی که میخواهید اساین شود را انتخاب کنید.
۴. در نهایت، بکاپ را انتخاب کرده و بر روی ریستور بزنید. در صورت ریستور موفق پیام آن در بخش Messages دایرکت ادمین خواهد آمد و در غیر اینصورت میتوانید خطای آن را بررسی کنید.
انتقال دستی با SSH/rsync
این انتقال برای کنترل کامل و جلوگیری از downtime طولانی بسیار مناسب است. در ادامه مراحل آن را بررسی میکنیم:
۱. روی سرور مبدا فایلها را فشرده کنید:
tar -czf sitefiles.tar.gz /path/to/site
۲. دیتابیس را خروجی بگیرید:
mysqldump -u user -p database_name > db_backup.sql
۳. فایلها و دیتابیس را با scp یا rsync به سرور مقصد منتقل کنید:
rsync -avz --progress /path/to/site/ user@newserver:/var/www/site/
یا
scp sitefiles.tar.gz user@newserver:/tmp/
۴. در سرور مقصد فایل را استخراج کنید و مالکیت فایلها را تنظیم کنید:
tar -xzf sitefiles.tar.gz -C /var/www/site/ و chown -R www-data:www-data /var/www/site/
۵. دیتابیس را بازگردانی کنید:
mysql -u user -p -e "CREATE DATABASE database_name; CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass'; GRANT ALL ON database_name.* TO 'user'@'localhost';" mysql -u user -p database_name < db_backup.sql
۶. تنظیمات کانفیگ (مثلاً فایلهای config.php یا wp-config.php) را بروزرسانی کنید تا اتصال پایگاه داده و مسیرها درست باشند.
۷. سرویسهای وب را راهاندازی مجدد کنید:
systemctl restart apache2
یا
systemctl restart nginx php-fpm
۸. فایل hosts سیستم لوکال خود را برای تست دامنه روی IP جدید تنظیم کنید تا قبل از تغییر DNS بررسی کنید.
هاست پارسپک، ضامن رشد کسبوکار شما
هاستهای پارسپک مثل یک زیرساخت محکم برای کسبوکارتان عمل میکنند؛ بدون آنکه قطعیهای مکرر و یا کندی ناگهانی را تجربه کنید. با این انتخاب درست آینده کسبوکارتان را تضمین کنید.
انتقال با FTP/SFTP
این روش از انتقال برای سایتهای ساده یا زمانی که SSH ممکن نیست، بهترین انتخاب است. در ادامه مراحل انجام آن را توضیح میدهیم:
- از سرویسدهنده FTP استفاده کنید و همه فایلها را دانلود کنید.
- دیتابیس را با phpMyAdmin یا ابزار کنترل پنل export کنید.
- در سرور جدید از طریق FTP همه فایلها را آپلود کنید.
- دیتابیس را import کنید و تنظیمات کانفیگ را بهروز کنید.
نکته:
این روش کندتر و مستعد خطاست؛ برای سایتهای بزرگ یا حساس توصیه نمیشود.
نحوه انتقال سایت وردپرس به سرور جدید
برای وردپرس دو روش رایج وجود دارد: استفاده از افزونه و روش دستی. در ادامه هر دو را توضیح میدهیم.
روش افزونهای (Duplicator, All-in-One WP Migration)
۱. افزونه Duplicator یا All-in-One WP Migration را روی سایت مبدا نصب و فعال کنید.
۲. یک پکیج/بکاپ ایجاد کنید که شامل فایلها و دیتابیس باشد.

۳. فایل بسته و فایل installer.php را دانلود کنید.

۴. در سرور مقصد یک دیتابیس خالی بسازید و فایلهای بسته و installer.php را آپلود کنید.
۵. مرورگر را باز کرده و https://your-new-domain/installer.php را اجرا کنید و مراحل نصب را طی کنید (اطلاعات دیتابیس، تغییر آدرسها و بررسیها).

۶. پس از تکمیل، افزونه لینکهای قدیمی را بهروز میکند و سایت روی هاست جدید راه میافتد.
نکته:
برای سایتهای حجیم ممکن است محدودیت آپلود در PHP وجود داشته باشد؛ در این حالت از روش دستی یا FTP استفاده کنید.
روش دستی برای وردپرس
۱. فایلها را (کل پوشه وبسایت به ویژه پوشه wp-content و فایل wp-config.php) با rsync/FTP منتقل کنید.
۲. دیتابیس را با mysqldump export و یا از طریق phpmyadmin خروجی (export) گرفته و در مقصد import کنید.
۳. فایل wp-config.php را ویرایش کنید تا اطلاعات دیتابیس جدید وارد شود و کلیدهای امنیتی بررسی شوند.
۴. اگر آدرس دامنه تغییر کرده با تنظیم مقادیر زیر در فایل wp-config.php:
define( 'WP_HOME', 'https://new-domain.com' ); define( 'WP_SITEURL', 'https://new-domain.com' );
آدرس جدید را تنظیم کنید و سپس صفحه لاگین وردپرس را چند مرتبه رفرش کنید.
۵. مشابه بخش آموزش دستی، پرمیشنها و مالکیت فایلها را تنظیم کنید و سرویسها را ریاستارت کنید.
۶. SSL را نصب کنید (Let’s Encrypt یا گواهی دیگر) و اطمینان حاصل کنید که HTTPS اجبار شده است.
توصیه میکنیم که برای دریافت اطلاعات بیشتر در این زمینه مقاله زیر را بخوانید:
مشکلات رایج در انتقال سایت و راهحلها
در طول انتقال ممکن است با خطاهای متداول روبهرو شوید. در اینجا مشکلات و راهحلهای سریع آورده شده است.
- خطای دیتابیس (Cannot connect to database): بررسی کنید اطلاعات اتصال (host, username, password, database) درست باشند و سرویس MySQL در حال اجرا باشد.
- قطعی سایت پس از تغییر DNS: ممکن است TTL پایین نیامده باشد یا کش DNS روی کلاینت/ISP وجود داشته باشد؛ از TTL پایین (مثلاً 300 ثانیه) قبل از انتقال استفاده کنید و از dig/nslookup برای بررسی propagation بهره ببرید. از دامنه ping بگیرید تا مطمئن شوید در سیستم شما دامنه به IP صحیح هاست یا سرور میزبان جدید وبسایت شما اشاره میکند.
- ناسازگاری نسخه PHP/MySQL: قبل از انتقال نسخههای PHP و افزونهها را بررسی کنید و در صورت نیاز نسخه PHP را روی سرور جدید نصب یا چند نسخه را نصب کنید (با PHP-FPM).
- خطاهای Permission و مالکیت فایلها: پرمیشنها را بررسی کنید (chown -R www-data:www-data یا کاربر مناسب) و از chmod صحیح (مثلاً پوشهها 755 و فایلها 644) استفاده کنید.
- مسیرهای مطلق (absolute paths) در کانفیگ یا قالب: مسیرها را بهروز کنید یا از مسیرهای نسبی استفاده کنید.
- عدم ارسال یا دریافت ایمیل: اگر سرویس ایمیل در سرور است، MX records و تنظیمات Postfix/Dovecot/Exim را پیکربندی کنید؛ برای جلوگیری از مشکلات تحویل ایمیل از سرویسهای SMTP خارجی (مانند SendGrid, Mailgun) استفاده کنید.
- خطاهای htaccess یا rewrite: فایل .htaccess را بررسی کنید؛ اگر از Nginx استفاده میکنید، قوانین rewrite را به فرمت Nginx تبدیل کنید.
- کندی بعد از انتقال: بررسی کنید منابع سرور، I/O دیسک، تنظیمات PHP-FPM و کش (OPcache, Redis, Varnish) را فعال و بهینه کنید.
نکات امنیتی هنگام انتقال سرور
حین انتقال باید حداکثر دقت برای حفظ محرمانگی و یکپارچگی دادهها انجام شود. در ادامه این بخش، این نکات امنیتی را بررسی میکنیم:
۱. از اتصالات امن استفاده کنید: انتقال دیتابیس/فایلها بهتر است از طریق SSH/SFTP/rsync-over-SSH انجام شود.
۲. بکاپ قبل از هر کاری: حداقل یک بکاپ کامل خارج از سرور (offsite) داشته باشید. یعنی بکاپ خارج از سرور اصلی.
۳. مدیریت دسترسیها: دسترسی روت را محدود کنید و از کلیدهای SSH بهجای پسورد استفاده کنید.
۴. محافظت از فایل installer یا فایلهای موقت: پس از استفاده افزونهها یا installerها، بلافاصله فایلهای نصب را حذف کنید.
۵. بررسی SSL/HTTPS: گواهی SSL را نصب و HTTP را به HTTPS ریدایرکت کنید.
۶. بررسی لاگها بعد از انتقال: خطاها یا تلاشهای نفوذ را از طریق لاگهای وب و سیستمی مانیتور کنید.
۷. بهروزرسانی نرمافزارها: پس از انتقال، تمام CMS، پلاگینها و بستهها را برای رفع آسیبپذیریها آپدیت کنید.
خرید سرور از پارسپک
با سرورهای پارسپک کنترل همه چیز را در دست بگیرید. با خرید این سرور سرعت، قدرت و امنیت را تجربه کنید. پارسپک با ارائه خدماتی چون پشتیبانی ۲۴ ساعته، بهترین انتخاب برای شما است.
جمعبندی
انتقال سایت به سرور جدید فرایندی چندمرحلهای است که با آمادهسازی مناسب، انتخاب روش درست و رعایت نکات امنیتی میتوان آن را بدون دردسر انجام داد. مهمترین مراحل عبارتاند از: تهیه بکاپ کامل، بررسی سازگاری نسخهها، انتقال فایلها و دیتابیس با ابزار مناسب، تست روی IP جدید یا از طریق hosts قبل از تغییر DNS، و نظارت پس از انتقال. برنامهریزی و تست پیش از انجام عملیات نهایی، بزرگترین کمک برای کاهش قطعی و مشکلات است.
سوالات متداول
چطور میتوانم بدون قطعی (downtime) سایت را منتقل کنم؟
از روش staged migration استفاده کنید؛ ابتدا سایت را روی سرور جدید آماده کنید، از TTL پایین برای رکورد DNS استفاده کنید (مثلاً 300 ثانیه) و پس از نهاییسازی، رکورد A را به IP جدید تغییر دهید؛ همچنین برای مدت کوتاهی از load balancer یا reverse proxy بهره ببرید تا درخواستها به هر دو سرور هدایت شوند تا switchover بدون قطعی انجام شود.
آیا انتقال ایمیلها به سرور جدید پیچیده است؟
بسته به حجم و پیکربندی، ایمیلها معمولاً پیچیدهتر از فایلها هستند؛ بهتر است از ابزارهای IMAP sync (مانند imapsync) برای همگامسازی میلباکسها استفاده کنید یا اگر از سرویسدهنده ایمیل جداگانه استفاده میکنید، رکوردهای MX را بهدرستی تنظیم کنید و DKIM/SPF/DMARC را پیکربندی نمایید.
اگر بعد از انتقال سایت، افزونه یا قالبی خطا داد چه کنم؟
نسخه PHP و ماژولهای مورد نیاز را مقایسه و در صورت نیاز نسخه PHP را تغییر دهید یا ماژولهای لازم را نصب کنید؛ لاگهای PHP و وبسرور را بررسی، کشها را پاک کنید و در صورت لزوم از نسخه پشتیبان قبل از انتقال بازگردانی کنید.