Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
Bir hosting hesabını bir sunucudan diğerine taşımak, aynı panel olsa da farklı paneller arasında da olsa dikkatli planlanması gereken bir iştir. Amaç, sitenin ve e-postanın kesintisiz ve veri kaybı olmadan yeni sunucuya geçmesidir. Bu rehberde panelden bağımsız bir sunucudan sunucuya geçiş planı hazırlayacağız.
Rehber hosting ve sunucu yöneticileri içindir. Panelin kendi taşıma/aktarma aracı varsa (cPanel, Plesk ve DirectAdmin'in hepsinde bir tür aktarma özelliği bulunur) çoğu durumda önce onu kullanmak en güvenlisidir; ayrıntılar için üretici belgesine bakın. Farklı paneller arasında geçişte veya kısmi taşımada aşağıdaki manuel yaklaşım işe yarar. Tahmini süre: hazırlık için 1-2 saat, geçiş gününde 1-3 saat.
Gereksinimler
- Eski ve yeni sunucuda SSH erişimi ve sudo yetkisi
- Yeni sunucuda aynı veya uyumlu PHP, veritabanı ve web sunucusu sürümleri
- Alan adının DNS yönetimine erişim
- Taşınacak verinin boyutu kadar boş alan ve geçici bant genişliği
- Taşıma öncesinde alınmış tam bir yedek
Adım adım hesap taşıma
1. Envanter çıkarın
Neyi taşıyacağınızı yazılı hale getirin: alan adları ve alt alan adları, web kök dizinleri, veritabanları ve kullanıcıları, e-posta hesapları ve yönlendirmeleri, cron görevleri, SSL sertifikaları, DNS kayıtları (özellikle MX ve TXT/SPF/DKIM), FTP/SFTP hesapları ve PHP ayarları. Eksik bırakılan şey genellikle geçişten sonra fark edilir.
sudo du -sh /var/www/* 2>/dev/null
sudo mysql -e 'SHOW DATABASES;'
sudo crontab -l -u KULLANICI
dig +short MX example.com
dig +short TXT example.comDizin yolları panele göre değişir; kullanıcının ana dizinini panel belgesinden doğrulayın.
2. Önce yedek alın, ardından TTL değerini düşürün
Geçişten en az bir gün önce, taşınacak alan adlarının DNS kayıtlarında TTL değerini 300 saniye gibi düşük bir değere çekin. Böylece DNS değiştirdiğinizde dünya yeni adrese hızlıca geçer. Eski TTL değeri kadar beklemek gerekir; yüksek TTL ile başlamışsanız bu beklemeyi planlayın.
dig example.com A +noall +answerÇıktıdaki sayı kalan TTL değeridir. Taşıma öncesi bir tam yedek alın ve doğruluğunu kontrol edin.
3. Yeni sunucuda altyapıyı hazırlayın
Yeni sunucuda hesabı ve alan adını oluşturun, PHP sürümünü ve gerekli eklentileri eşleyin, veritabanı ve kullanıcıyı yaratın. Eski sunucudaki ayarlarla (memory_limit, upload_max_filesize, max_execution_time) uyumu kontrol edin. Panel değiştiriyorsanız bu ayarların panele özgü karşılıklarını yeni panelin belgesinden bulun.
php -v
php -m | sort | head -n 60Eski ve yeni sunucuda çıktıları karşılaştırın; eksik PHP eklentileri geçişten sonra beyaz sayfa hatalarına neden olur.
4. Dosyaları rsync ile ilk kez eşitleyin
rsync, iznini, sahipliğini ve bağlantılarını koruyarak yalnızca değişen dosyaları aktarır. İlk eşitleme canlı site çalışırken yapılabilir. Komutu yeni sunucudan çalıştırıp eski sunucudan çekebilir veya tersini yapabilirsiniz. Kaynağın sonundaki eğik çizgiye dikkat edin.
sudo rsync -aHAX --numeric-ids --info=progress2 -e ssh kullanici@eski.example.com:/var/www/site/ /var/www/site/Hedef dizin sahipliğini ve izinlerini yeni panelin kullanıcı ve grubuna göre düzeltin. Uzak kullanıcı root değilse tüm dosyaları okuyamaz; eski sunucuda sudo yetkisi varsa --rsync-path='sudo rsync' ekleyin. --delete seçeneği hedefte kaynakta olmayan dosyaları siler; yalnızca önce --dry-run ile denedikten sonra kullanın.
5. Veritabanlarını aktarın
Veritabanını eski sunucuda dökün, SSH üzerinden doğrudan yeni sunucuya aktarıp içe alın. Döküm dosyası yalnızca sahibinin okuyabileceği şekilde oluşturulmalı ve iş bitince silinmelidir. Hedef veritabanı 3. adımda oluşturulmuş olmalıdır.
# Eski sunucuda
sudo mysqldump --single-transaction --routines siteveritabani | gzip | ssh kullanici@yeni.example.com 'umask 077; cat > ~/siteveritabani.sql.gz'
# Yeni sunucuda
gunzip -c ~/siteveritabani.sql.gz | sudo mysql siteveritabani
shred -u ~/siteveritabani.sql.gzVeritabanı oluşturma ve kullanıcı yetkilendirme komutları ile uygulamanın yapılandırma dosyasındaki bağlantı bilgisini yeni değerlere göre güncelleyin.
6. Yeni sunucuyu DNS değiştirmeden test edin
Alan adı hâlâ eski sunucuyu gösterirken yeni sunucuyu test etmek için istek adresini yeni IP'ye zorlayın. Bu, gerçek ziyaretçiyi etkilemeden sitenizi doğrulamanın en güvenli yoludur.
curl -I --resolve example.com:443:198.51.100.20 https://example.com/
curl -s --resolve example.com:80:198.51.100.20 http://example.com/ | head -n 20Örnekteki 198.51.100.20 yeni sunucunun IP'si ile değiştirilmelidir. HTTPS testinde sertifika henüz yeni sunucuda yoksa uyarı alabilirsiniz; bu aşamada içeriğin gelmesi önemlidir. Tarayıcıdan test için yerel hosts dosyasını geçici olarak kullanabilirsiniz.
7. Geçiş anı: son eşitleme ve DNS değişikliği
Sessiz bir saat seçin. Dinamik içerik (sipariş, yorum, yükleme) alan sitelerde kısa bir bakım kipine geçip son bir rsync ve veritabanı dökümü alın, ardından DNS kayıtlarını yeni IP'ye çevirin. E-posta varsa MX kayıtlarını ve posta kutularının içeriğini de aynı pencerede taşıyın.
sudo rsync -aHAX --numeric-ids -e ssh kullanici@eski.example.com:/var/www/site/ /var/www/site/
dig +short A example.com @8.8.8.88. Geçişten sonra izleyin ve eski sunucuyu hemen kapatmayın
DNS yayılımı sürerken bazı ziyaretçiler hâlâ eski sunucuya gidebilir. Eski sunucuyu en az bir hafta açık bırakın, günlüklerdeki istekleri izleyin ve yeni verinin eski sunucuya yazılmadığından emin olun. SSL sertifikalarını yeni sunucuda yeniden alın (panelin otomatik SSL özelliği DNS yeni sunucuyu gösterdikten sonra çalışır). Sorun çıkarsa eski IP'ye dönmek bir geri dönüş planıdır.
Doğrulama
Yeni düzeni dışarıdan doğrulayın: DNS yeni IP'yi dönmeli, site sorunsuz açılmalı ve e-posta alınıp gönderilebilmelidir.
dig +short A example.com
dig +short MX example.com
curl -sI https://example.com | head -n 1
sudo tail -n 20 /var/log/nginx/access.logBeklenen sonuç: A kaydının yeni IP olması, HTTP yanıtının 200 veya beklenen yönlendirme kodunu vermesi ve erişim günlüğünde yeni isteklerin görünmesi. Web sunucusu günlük yolu sunucunuza (Apache için /var/log/apache2 veya /var/log/httpd) göre değişir. Ayrıca bir test e-postası gönderip alın, forma veri girip yazıldığını teyit edin.
Sık karşılaşılan sorunlar
- Site bir süre eski içeriği gösteriyor: DNS önbelleği veya yüksek TTL; beklemek dışında yapılacak az şey vardır, bu yüzden TTL düşürmek önceden yapılmalıdır.
- Beyaz sayfa veya 500 hatası: PHP sürümü ya da eklentisi uyumsuz olabilir; yeni sunucunun PHP hata günlüğüne bakın.
- Veritabanı bağlantı hatası: yapılandırmadaki sunucu adı, kullanıcı ve parola yeni sunucuyla eşleşmiyor; kullanıcının yetkilerini kontrol edin.
- E-postalar kayboldu: MX kayıtları ve posta kutusu içeriği eşitlenmemiş olabilir; SPF/DKIM kayıtlarını yeni IP için güncelleyin.
- Dosya izinleri bozuk: rsync sahiplik bilgisini hedefte farklı kullanıcıyla koruyamaz; yeni kullanıcıya göre
chown -Ruygulayın.
Güvenlik ve bakım notları
- Taşıma sırasında kullanılan geçici döküm ve yedek dosyalarını iş bitince güvenli biçimde silin.
- Yeni sunucuda güvenlik duvarı, yedekleme ve güncellemeleri geçişten önce hazır edin; yeni sunucuya güvensiz başlamayın.
- Parolaları ve anahtarları taşıma sonrası yenilemeyi değerlendirin; eski sunucuda uzun süre açık kalan kimlik bilgileri risk taşır.
- Eski sunucuyu kapatmadan önce son bir tam yedek alıp saklayın.
- Geçiş planını ve geri dönüş adımlarını yazın; zamanlama ve sorumluları belirleyin.
- Taşıma sonrası iki hafta boyunca hata günlüklerini ve izleme uyarılarını yakından takip edin.
Sık sorulan sorular
Panelin kendi taşıma aracını mı yoksa rsync'i mi kullanmalıyım?
Aynı panel türleri arasında panelin aktarma aracı e-posta, DNS ve veritabanını tek adımda taşıdığı için daha güvenlidir. Farklı paneller arasında veya kısmi taşımada rsync ve veritabanı dökümü gibi manuel yöntem daha esnektir. Hangisini seçerseniz seçin önce bir deneme geçişi yapın.
Geçiş sırasında kesinti olur mu?
Doğru hazırlıkla kesinti dakikalar düzeyinde tutulabilir. TTL'i önceden düşürmek, yeni sunucuyu hosts testiyle doğrulamak ve son eşitlemeyi kısa bir bakım penceresinde yapmak kesintiyi en aza indirir.
Eski sunucuyu ne zaman kapatabilirim?
DNS değişikliğinden sonra en az bir hafta, e-posta kullanıyorsanız daha uzun süre bekleyin. Eski sunucuya gelen istek kalmadığını günlüklerden doğrulayın ve kapatmadan önce son bir yedek alın.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- Kontrol panelinde brute force koruması (panel araçları, Fail2ban, güvenlik duvarı)Panel girişine, SSH ve e-postaya yönelik kaba kuvvet saldırılarını panelin yerleşik araçları, Fail2ban ve güvenlik duvarı kısıtlamalarıyla katmanlı biçimde nasıl durduracağınızı öğrenin.
- Kontrol panelinde SSL otomatik yenileme sorunları ve çözümleriPanelin otomatik SSL yenilemesi neden başarısız olur? DNS, 80. port, yönlendirme, CAA kaydı ve proxy kaynaklı sorunları komutlarla teşhis edip çözmeyi anlatan sistematik rehber.
- Kontrol panelinde yedekleme ve geri yükleme stratejisi (panelden bağımsız yaklaşım)cPanel, Plesk ve DirectAdmin için ortak bir yedekleme stratejisi: 3-2-1 kuralı, veritabanı dökümü, sunucu dışı depolama, restic ile sürümlü yedek ve düzenli geri yükleme testi.
- Kontrol paneli güncelleme ve yedekleme planıHosting kontrol paneli ve sunucu için güncelleme takvimi ile 3-2-1 yedekleme planı oluşturun; otomatik yedek betiği, saklama süresi ve geri yükleme testi dahil.