Saytni bir hostingdan boshqasiga ko'chirish birinchi qarashda oddiy ko'rinadi: fayllarni ko'chirasiz, bazani import qilasiz va domenni yangi serverga yo'naltirasiz. Amalda esa eng ko'p muammolar mayda narsalardan chiqadi: unutilgan cron vazifasi, boshqa PHP versiyasi, eski serverda qolib ketgan pochta qutilari yoki DNS o'zgarishi tarqalayotgan paytda yo'qolgan buyurtmalar. Quyidagi tartib ko'chirishni bosqichma-bosqich, sayt ishlab turgan holda va qaytish yo'lini saqlagan holda bajarishga yordam beradi.
1. Eski hostingda nima borligini ro'yxatga oling
Ko'chirishni boshlashdan oldin eski hostingdagi hamma narsani yozib chiqing. Faqat sayt fayllari va bazasi emas, balki ularning atrofidagi sozlamalar ham ko'chirilishi kerak, aks holda yangi serverda sayt ochilsa ham, uning bir qismi jim ishlamay qoladi. Quyidagi ro'yxat odatda barcha holatlarni qamrab oladi:
- Saytlar va subdomenlar ro'yxati, har birining papkasi.
- Ma'lumotlar bazalari, ularning nomi, foydalanuvchisi va kodirovkasi.
- PHP versiyasi va kerakli kengaytmalar (masalan,
intl,gd,imagick),memory_limitvaupload_max_filesizeqiymatlari. - Cron vazifalari va ularning ishga tushish vaqti.
- Pochta qutilari, yo'naltirishlar (forward) va avtojavoblar.
- Domenning barcha DNS yozuvlari: A, CNAME, MX, TXT (SPF, DKIM, sayt tasdiqlash yozuvlari).
Ayniqsa DNS yozuvlarini to'liq nusxalab qo'yish muhim. Google Search Console yoki pochta xizmatlari uchun qo'shilgan TXT yozuvlar unutilsa, ko'chirishdan keyin sayt tasdiqlash yoki xatlar yetkazilishi buzilishi mumkin.
2. TTL qiymatini oldindan kamaytiring
DNS yozuvlarining TTL qiymati boshqa serverlar ularni qancha vaqt keshda saqlashini belgilaydi. Agar TTL bir sutka bo'lsa, IP manzilni o'zgartirganingizdan keyin ba'zi foydalanuvchilar uzoq vaqt eski serverga kirishda davom etadi. Shuning uchun ko'chirishdan kamida bir-ikki kun oldin A yozuvining TTL qiymatini 300 soniyagacha tushiring. Agar domen sayt.uz kabinetida bo'lsa, DNS yozuvlari va ularning TTL qiymatlari shu yerdagi domen DNS bo'limidan boshqariladi.
dig +noall +answer example.uz A
# example.uz. 300 IN A 203.0.113.20
3. Fayllarni ko'chiring
Ikkala serverda ham SSH bo'lsa, eng tez va ishonchli yo'l rsync yoki arxiv yaratishdir. rsync qayta ishga tushirilganda faqat o'zgargan fayllarni yuboradi, shuning uchun uni avval bir marta, keyin esa DNS almashtirish oldidan yana bir marta ishlatish qulay. SSH bo'lmasa, eski panelning fayl menejeridan arxiv yaratib, yangi panelga yuklash mumkin.
# eski serverda arxiv
tar -czf site.tar.gz -C ~/www example.uz
# yoki to'g'ridan-to'g'ri yangi serverga
rsync -avz --progress ~/www/example.uz/ user@203.0.113.20:~/www/example.uz/
4. Ma'lumotlar bazasini ko'chiring
Bazani mysqldump bilan eksport qilishda kodirovkani aniq ko'rsatish o'zbek va rus matnlari buzilib qolmasligi uchun muhim. --single-transaction parametri InnoDB jadvallarini saytni to'xtatmasdan bir lahzadagi holatda saqlaydi. Yangi serverda bo'sh baza va foydalanuvchi yaratiladi, keyin dump import qilinadi. Katta bazalarni phpMyAdmin orqali yuklashda vaqt yoki hajm chekloviga duch kelish mumkin, shuning uchun imkon bo'lsa konsoldan foydalaning.
mysqldump --single-transaction --default-character-set=utf8mb4 \
-u eski_user -p eski_baza > baza.sql
mysql --default-character-set=utf8mb4 -u yangi_user -p yangi_baza < baza.sql
Import tugagach, sayt sozlamalar faylidagi baza nomi, foydalanuvchi va parolni yangilang: WordPress'da bu wp-config.php, Laravel'da .env. Agar domen o'zgarmasa, bazadagi manzillarni almashtirish shart emas.
5. DNS'ni o'zgartirmasdan oldin sinab ko'ring
Ko'chirishning eng foydali qadami yangi serverdagi saytni domen hali eski serverga qarab turganida tekshirishdir. Buning uchun o'z kompyuteringizdagi hosts fayliga domen va yangi server IP manzilini yozasiz. Shunda faqat sizning brauzeringiz yangi serverga kiradi, qolgan barcha foydalanuvchilar esa eski saytda ishlashda davom etadi.
# Windows: C:\Windows\System32\drivers\etc\hosts
# Linux/macOS: /etc/hosts
203.0.113.20 example.uz www.example.uz
Shu holatda asosiy sahifalarni, admin panelga kirishni, qidiruvni, formalarni va rasm yuklashni sinab ko'ring. Sertifikat hali chiqmagani uchun brauzer HTTPS haqida ogohlantirishi mumkin, bu normal holat. Tekshiruvdan keyin hosts faylidagi qatorni o'chirishni unutmang.
6. Kontentni muzlatib, DNS'ni almashtiring
Agar saytda buyurtmalar, izohlar yoki ro'yxatdan o'tishlar bo'lsa, almashtirish paytida eski bazaga yozilgan ma'lumotlar yangisiga tushmay qoladi. Shuning uchun trafik kam bo'lgan vaqtni tanlang, eski saytni qisqa muddatga texnik ishlar rejimiga o'tkazing, bazani oxirgi marta eksport-import qiling va rsync ni yana bir bor ishga tushiring. Shundan keyin A yozuvini yangi IP'ga o'zgartirasiz yoki, agar yangi hosting o'z NS serverlarini bersa, domen NS'larini almashtirasiz. NS almashtirishda yangi DNS zonada barcha eski yozuvlar, ayniqsa MX va TXT, oldindan tayyor turishi shart.
7. Pochta va SSL
Pochta ko'pincha eng ko'p e'tibordan chetda qoladigan qism. Agar xatlar ham hosting bilan birga ko'chsa, yangi serverda o'sha nomdagi qutilar oldindan yaratiladi va eski xatlar imapsync kabi vosita bilan IMAP orqali ko'chiriladi. MX yozuvi almashtirilgandan keyin ham bir necha soat eski serverga xat kelishi mumkin, shuning uchun ko'chirishni bir marta takrorlash foydali. SSL sertifikati esa domen yangi serverga qaragach chiqariladi: Let's Encrypt domen haqiqatan shu serverga yo'naltirilganini tekshiradi.
imapsync --host1 mail.eski-hosting.example --user1 info@example.uz --password1 '***' \
--host2 mail.example.uz --user2 info@example.uz --password2 '***'
Misol: Farg'onadagi mebel do'koni
Farg'onadagi mebel do'konining WordPress va WooCommerce'dagi sayti sekin ishlaydigan xorijiy hostingdan O'zbekistondagi serverga ko'chirildi. Dasturchi avval TTL'ni 300 soniyaga tushirdi, juma kuni fayllar va bazani ko'chirib, hosts fayli orqali katalog, savatcha va to'lov sahifasini tekshirdi. Yakshanba tongida u do'konni yarim soatga texnik ishlar rejimiga o'tkazdi, bazani so'nggi marta ko'chirdi va A yozuvini almashtirdi. Eski hosting yana bir hafta saqlandi va shu vaqt ichida unga kelgan oxirgi xatlar ham yangi qutilarga ko'chirildi.
Ko'chirishdan keyingi tekshiruv
dig example.uz Avadig example.uz MXyangi qiymatlarni ko'rsatayotganini tekshiring.- HTTPS sertifikati chiqqani va
httpdanhttpsga yo'naltirish ishlayotganini ko'ring. - Cron vazifalari yangi serverda qayta yaratilgan va ishga tushayotganiga ishonch hosil qiling.
- Sayt formasidan test xat yuborib, u yetib kelishini va spamga tushmasligini tekshiring.
- Eski hostingni darhol o'chirmang: kamida bir necha kun zaxira sifatida saqlang.