انتقال سایت را دوست ندارم. نه چون سخت است بلکه چون همیشه یک چیز کوچک یادم میرود که بعد از تغییر DNS خودش را نشان میدهد. بعد از چند بار یک فهرست یادداشت برای خودم درست کردم. اینجا همان را با کمی توضیح میگذارم.
این پنج مورد را از هاست فعلی یادداشت میکنم:
نسخه PHP که سایت الان رویش اجرا میشود
اسم دیتابیس و پیشوند جدولها از فایل wp-config.php
حجم کل فایلها و دیتابیس
کرون جابهایی که در سیپنل تعریف شده
ایمیلهای دامنه اگر روی همان هاست است
مورد اخر را یک بار فراموش کردم. DNS را عوض کردم و ایمیلهای شرکت مشتری دو روز به جایی نمیرسید. هاست جدید وردپرس فقط سایت را میزبانی میکرد و رکوردهای MX باید جداگانه تنظیم میشد.
اگر هاست مقصد از بازیابی فول بکاپ سیپنل پشتیبانی کند سادهترین راه همین است. از بخش Backup در سیپنل یک فول بکاپ میگیرم فایل را دانلود میکنم و در مقصد بارگذاری میکنم.
ولی بیشتر وقتها انتقال دستی را ترجیح میدهم چون کنترل بیشتری میدهد و فایلهای اضافه سالها مانده را جا میگذارم.
فایلها. از مدیر فایل سیپنل محتوای public_html را فشرده میکنم. اگر حجم زیاد است پوشههای کش و بکاپهای قدیمی افزونهها را قبل از فشردهسازی حذف میکنم. معمولا بخش زیادی از حجم همینهاست.
دیتابیس. از phpMyAdmin خروجی SQL میگیرم. برای دیتابیس بزرگ اگر دسترسی ترمینال دارم با mysqldump کار میکنم چون phpMyAdmin گاهی وسط کار قطع میشود.
mysqldump -u USER -p --default-character-set=utf8mb4 DBNAME > site.sql
گزینه utf8mb4 را به خاطر متن فارسی فراموش نمیکنم. یک بار بدون ان همه نوشتهها بعد از انتقال علامت سوال شده بودند.
مقصد. فایلها را بارگذاری و باز میکنم دیتابیس جدید میسازم SQL را وارد میکنم و اطلاعات تازه را در wp-config.php میگذارم.
این مهمترین بخش است. با ویرایش فایل hosts روی کامپیوتر خودم دامنه را به ایپی سرور جدید اشاره میدهم. اینطوری فقط من سایت را از مقصد میبینم و بقیه هنوز سایت قدیمی را میبینند.
چیزهایی که تست میکنم:
ورود به پنل مدیریت
چند نوشته و برگه با تصویر
فرم تماس و ارسال ایمیل
اگر فروشگاه است یک سفارش ازمایشی تا مرحله درگاه
پیوندهای یکتا
اگر ادرس سایت هم تغییر کرده Find و Replace ساده روی فایل SQL خطرناک است. وردپرس بعضی دادهها را سریالشده ذخیره میکند و طول رشته داخل داده نوشته شده. عوض کردن متن بدون اصلاح طول تنظیمات ویجتها و قالب را خراب میکند. برای این کار از wp search-replace در WP-CLI یا ابزارهایی که داده سریالشده را میفهمند استفاده میکنم.
چند روز قبل از انتقال TTL رکوردهای دامنه را پایین میاورم تا تغییر سریعتر منتشر شود. بعد از تغییر هم هاست قدیمی را چند روز نگه میدارم. اگر در این فاصله کسی دیدگاه یا سفارشی روی سایت قدیمی ثبت کرده باشد دستی منتقلش میکنم.
خطای اتصال به دیتابیس به خاطر اشتباه در wp-config.php
خطای ۵۰۰ به خاطر فایل htaccess که دستورهای مخصوص هاست قبلی داشت
تصاویری که بارگذاری نمیشوند چون ادرسها هنوز به دامنه یا مسیر قدیمی اشاره دارند
هشدار Mixed Content بعد از راهاندازی SSL
قبل از عوض کردن DNS همهچیز را با فایل hosts تست کنید و ایمیل دامنه را جدا از هاست وردپرس ببینید. این دو مورد بیشتر از هر چیز دیگری بعد از انتقال دردسر درست کردهاند.
سایتهای کوچک و متوسط مشتریهایم را این روزها روی اکو وردپرس پاستاکلود میبرم چون بکاپ روزانه و SSL و انتخاب نسخه PHP را یکجا دارد و هر سایت پنل جدای خودش را دارد. اگر قصد مهاجرت دارید اول یک سایت ازمایشی منتقل کنید و بعد بقیه را بیاورید.
شما اخرین باری که سایت وردپرس منتقل کردید کجا گیر کردید؟