İLE %100 UYUMLU: Güvenli E-Posta Hosting Hizmetimizi 1 AY ÜCRETSİZ Deneyin! HEMEN OLUŞTURUN
Bir web sitesinin uzun süre sorunsuz çalışması kadar, herhangi bir problem yaşandığında hızlı şekilde geri yüklenebilmesi de önemlidir. Sunucu arızası, yanlışlıkla silinen dosyalar, hatalı güncelleme, veritabanı bozulması, yazılım hataları veya güvenlik problemleri sonucunda web sitesindeki veriler zarar görebilir. Bu gibi durumlarda düzenli alınmış bir site yedeği, kaybolan verilerin geri getirilmesini sağlayan en önemli araçlardan biridir.
Ancak site yedeği almak yalnızca web sitesinin dosyalarını bilgisayara indirmek anlamına gelmez. Özellikle WordPress gibi veritabanı kullanan sistemlerde dosyalar ve veritabanı birlikte yedeklenmelidir. Çünkü sitenin görünümü, eklentileri ve medya dosyaları dosya sisteminde bulunurken yazılar, sayfalar, kullanıcılar, ayarlar ve birçok dinamik veri veritabanında tutulur. WordPress’in resmi dokümantasyonu da tam bir site geri dönüşü için hem dosyaların hem de veritabanının yedeklenmesi gerektiğini belirtiyor.
Peki site yedeği nasıl alınır? Dosya yedeği ile veritabanı yedeği arasındaki fark nedir? Tam site yedeği nasıl oluşturulur ve yedekler nerede saklanmalıdır?
Bu rehberde web sitesi ve özellikle WordPress siteler için yedekleme sürecini adım adım ele alıyoruz.
İçindekiler
Site yedeği, bir web sitesinin belirli bir zamandaki dosyalarının ve verilerinin daha sonra yeniden kullanılmak üzere kopyalanmasıdır.
Basit bir ifadeyle yedek, sitenin çalışır durumdaki bir kopyasını oluşturur.
Bir web sitesinde genellikle iki temel veri grubu bulunur:
Tam bir site yedeğinde bu iki bölümün de bulunması gerekir.
Örneğin bir WordPress sitesinde tema dosyaları, eklentiler, görseller ve WordPress çekirdek dosyaları dosya sisteminde bulunurken yazılar, sayfalar, kullanıcı bilgileri, yorumlar ve çeşitli ayarlar veritabanında tutulur.
Bu nedenle yalnızca public_html klasörünü indirmek veya yalnızca MySQL veritabanını dışa aktarmak her zaman tam site yedeği anlamına gelmez.
public_html
Web siteleri statik yapılar değildir. Dosyalar değişir, veritabanına yeni kayıtlar eklenir, eklentiler güncellenir, kullanıcılar içerik oluşturur ve sunucu üzerinde çeşitli işlemler gerçekleştirilir.
Bu değişikliklerden herhangi biri sırasında beklenmeyen bir problem ortaya çıkabilir.
Örneğin:
Düzenli yedekleme, bu senaryolarda sıfırdan site oluşturmak yerine bilinen bir çalışma noktasına geri dönmeyi mümkün kılar.
WordPress’in resmi dokümantasyonu da düzenli veritabanı yedeklerini ve yükseltmelerden önce yedek alınmasını özellikle tavsiye ediyor.
Tam bir web sitesi dosya yedeğinde yalnızca ana sayfanın dosyaları değil, sitenin çalışması için gerekli bütün dosya ve klasörler bulunmalıdır.
WordPress açısından bunlar arasında:
wp-content
.htaccess
wp-config.php
yer alabilir.
Özellikle wp-content klasörü önemlidir. Çünkü sitenin yüklediği medya dosyalarının yanında kullanılan temalar ve eklentiler de burada bulunabilir.
WordPress’in resmi dokümantasyonuna göre WordPress dosya yedeğinde tüm WordPress dizini ve alt dizinleri dikkate alınmalı, özellikle wp-content ve wp-config.php gibi önemli dosyalara dikkat edilmelidir.
Veritabanı yedeği, sitenin kullandığı MySQL veya MariaDB veritabanındaki bilgilerin dışa aktarılmasıdır.
WordPress sitelerde veritabanı içerisinde çok sayıda dinamik bilgi bulunabilir.
Bunlara örnek olarak:
verilebilir.
Veritabanı genellikle .sql dosyası olarak dışa aktarılabilir. Daha büyük veritabanlarında bu dosya .gz veya benzeri sıkıştırılmış formatlarla saklanabilir. WordPress’in resmi dokümantasyonu da veritabanı yedeğinin dosya yedeğinden ayrı olduğunu ve tam site yedeği için ikisinin birlikte alınması gerektiğini açıkça belirtiyor.
.sql
.gz
Bu iki yedek türü birbirinin alternatifi değildir.
Örneğin yalnızca WordPress dosyalarını yedeklerseniz görselleriniz ve eklentileriniz korunabilir ancak veritabanındaki yazılarınız ve ayarlarınız yedekte bulunmayabilir.
Tersine yalnızca veritabanını yedeklerseniz yazılarınız korunabilir ancak tema dosyaları, eklentiler ve yüklenen medya dosyaları eksik kalabilir.
Bu nedenle tam site yedeği = dosya yedeği + veritabanı yedeği şeklinde düşünmek gerekir.
WordPress sitesinin yedeğini manuel veya otomatik yöntemlerle almak mümkündür.
Manuel yedekleme için genel olarak iki işlem yapılır:
WordPress’in resmi eğitim kaynaklarında da dosyaların SFTP gibi güvenli bir aktarım yöntemiyle alınması ve veritabanının phpMyAdmin üzerinden dışa aktarılması gösterilmektedir.
Öncelikle WordPress kurulumunun bulunduğu dizin belirlenir.
Çoğu hosting ortamında bu dizin public_html olabilir. Ancak kullanılan sunucu ve yapılandırmaya göre farklı bir klasör de kullanılabilir.
Dosyalar:
gibi yöntemlerle yedeklenebilir.
Güvenlik açısından dosyaları uzak sunucudan aktarırken SFTP gibi şifreli bağlantı yöntemlerinin tercih edilmesi daha doğru bir yaklaşımdır. WordPress’in resmi eğitim materyalinde de FTP yerine kimlik bilgilerini şifreli şekilde taşıyan SFTP’nin tercih edilmesi öneriliyor.
Dosyaları aldıktan sonra bunları örneğin ZIP veya TAR arşivi haline getirerek saklamak mümkün olabilir.
İkinci aşamada WordPress’in kullandığı veritabanı dışa aktarılmalıdır.
Veritabanı adı, kullanıcı adı ve diğer bağlantı bilgileri WordPress yapılandırmasındaki wp-config.php dosyasında bulunabilir.
Ardından phpMyAdmin gibi bir araç üzerinden ilgili veritabanı seçilerek Export / Dışa Aktar işlemi gerçekleştirilebilir.
Küçük veritabanlarında doğrudan SQL dosyası oluşturmak yeterli olabilir. Büyük veritabanlarında ise sıkıştırılmış çıktı kullanmak depolama alanından tasarruf sağlayabilir. WordPress’in resmi dokümantasyonu büyük veritabanlarında sıkıştırma seçeneklerinin kullanılabileceğini ve gerektiğinde mysqldump gibi araçlarla komut satırından yedek alınabileceğini belirtiyor.
mysqldump
cPanel kullanılan hosting ortamlarında yedekleme için birden fazla yöntem bulunabilir.
Dosyalar dosya yöneticisi veya SSH üzerinden arşivlenebilir. Veritabanı ise cPanel üzerinden erişilen phpMyAdmin veya ilgili veritabanı araçları kullanılarak dışa aktarılabilir.
Burada önemli bir ayrım vardır: Bir hosting panelindeki “tam yedek” özelliğinin ne şekilde oluşturulduğu ve nasıl geri yüklenebildiği kullanılan hosting altyapısına göre değişebilir.
Bu nedenle yalnızca yedek dosyasının oluşturulmuş olması yeterli görülmemelidir. Yedeğin gerçekten geri yüklenebilir olduğunun kontrol edilmesi gerekir.
WordPress’in resmi dokümantasyonu da dosya ve veritabanının birlikte bir “backup set” olarak değerlendirilmesini öneriyor.
Veritabanı yedeği için en yaygın yöntemlerden biri phpMyAdmin kullanmaktır.
Genel süreç şu şekildedir:
wp-config.php içerisindeki DB_NAME değerinden WordPress’in hangi veritabanını kullandığını kontrol edin.
DB_NAME
Hosting paneliniz üzerinden phpMyAdmin’e erişin.
WordPress’in kullandığı veritabanını seçin.
Veritabanı içerisindeki Export seçeneğine girin.
Verilerin SQL komutları halinde dışa aktarılması sağlanır.
Oluşturulan .sql veya sıkıştırılmış SQL dosyasını güvenli bir yerde saklayın.
WordPress’in resmi dokümantasyonu phpMyAdmin üzerinden hem hızlı hem de özel yapılandırmalı dışa aktarma seçeneklerinin kullanılabileceğini açıklıyor.
Yedekleme sıklığı her web sitesi için aynı olmak zorunda değildir.
Bir haber sitesi, e-ticaret sitesi veya kullanıcıların sürekli içerik oluşturduğu bir platform ile ayda birkaç kez güncellenen kişisel bir web sitesinin ihtiyaçları farklıdır.
Gün içerisinde çok sayıda değişiklik yapılıyorsa günlük veya daha sık yedekleme düşünülebilir.
İçerik değişiklikleri daha seyrekse günlük veya haftalık yedekleme yeterli olabilir.
Sipariş, müşteri ve ödeme gibi sürekli değişen veriler nedeniyle çok daha sık yedekleme gerekebilir.
Burada önemli olan yalnızca “kaç günde bir yedek alındığı” değildir. Son yedeğin ne kadar eski olduğu ve o yedekten geri dönüş yapılabildiği de önemlidir.
WordPress çekirdeği, tema veya eklenti güncellemeleri genellikle rutin işlemlerdir. Ancak farklı yazılım bileşenleri arasında uyumsuzluk meydana gelebilir.
Örneğin bir eklentinin yeni sürümü mevcut PHP sürümüyle veya kullanılan temayla uyumlu olmayabilir.
Bu nedenle büyük değişikliklerden önce yedek almak oldukça önemlidir.
Özellikle:
öncesinde güncel bir yedeğin bulunması geri dönüş imkanını artırır.
WordPress’in resmi eğitim materyali de çekirdek, eklenti veya tema güncellemelerinden önce yedek alınmasını öneriyor.
Yedeklerin yalnızca web sitesinin bulunduğu sunucuda tutulması riskli olabilir.
Örneğin sunucudaki disk tamamen arızalanırsa hem canlı site hem de aynı diskteki yedekler kaybedilebilir.
Daha güvenli bir yaklaşım, yedekleri farklı ortamlarda tutmaktır.
Bunlar:
gibi farklı seçenekler olabilir.
CISA ve diğer siber güvenlik otoritelerinin önerileri de birden fazla yedek kopyasının farklı ve mümkün olduğunca ayrıştırılmış ortamlarda tutulmasına, ayrıca çevrimdışı yedeklerin korunmasına dikkat çekiyor.
Yedekleme konusunda sık kullanılan yaklaşımlardan biri 3-2-1 yedekleme kuralıdır.
Temel mantığı:
şeklindedir.
Örneğin bir web sitesinin canlı verisi sunucuda bulunurken bir yedek farklı bir depolama sisteminde, başka bir yedek ise ayrı bir fiziksel veya bulut ortamında tutulabilir.
Bu yaklaşım, tek bir arıza noktasının tüm kopyaları aynı anda etkilemesi riskini azaltır.
CISA tarafından yayımlanan siber güvenlik tavsiyelerinde de birden fazla kopyanın fiziksel olarak ayrıştırılmış veya güvenli konumlarda tutulması ve çevrimdışı yedeklerin korunması öneriliyor.
Bir yedek dosyasının var olması, tek başına başarılı bir yedekleme yapıldığı anlamına gelmez.
Asıl soru şudur:
Bu yedekten site gerçekten geri getirilebilir mi?
Örneğin bir SQL dosyası oluşturulmuş olabilir ancak dosya bozuksa veya gerekli tablolar eksikse geri yükleme sırasında problem yaşanabilir.
Benzer şekilde dosya arşivi eksik oluşturulmuşsa veritabanı başarıyla geri yüklense bile site çalışmayabilir.
Bu nedenle belirli aralıklarla test ortamında:
Yedekleme stratejisinin önemli bir parçası da geri dönüş sürecinin gerçekten çalıştığını doğrulamaktır.
Site yedekleri genellikle çok miktarda hassas bilgi içerebilir.
Özellikle wp-config.php gibi dosyalarda veritabanı bağlantı bilgileri bulunabilir.
Bu nedenle yedeklerin herkesin erişebileceği bir web dizinine bırakılması doğru değildir.
Yedekleme dosyaları:
WordPress’in güvenlik dokümantasyonu da yedeklerin bütünlüğünün korunmasının önemli olduğunu ve şifreleme, bağımsız bütünlük kayıtları veya salt okunur depolama gibi yöntemlerin güveni artırabileceğini belirtiyor.
Her yedeği sonsuza kadar saklamak pratik olmayabilir.
Örneğin her gün 10 GB büyüklüğünde yedek alan bir sitenin bir yıl boyunca tüm günlük yedeklerini saklaması çok yüksek depolama ihtiyacı oluşturabilir.
Bu nedenle bir yedekleme saklama politikası oluşturulabilir.
gibi bir yapı oluşturulabilir.
Ancak burada sitenin önemine ve veri değişim hızına göre farklı politikalar uygulanabilir.
Özellikle güvenlik ihlallerinde en son yedeğin de zararlı değişiklikleri içerebileceği unutulmamalıdır. Bu nedenle yalnızca tek bir güncel yedeğe güvenmek yerine farklı tarihlere ait yedekleri saklamak daha sağlıklı bir stratejidir.
Manuel yedekleme üzerinde daha fazla kontrol sağlar ancak düzenli olarak hatırlanması gerekir.
Otomatik yedekleme ise belirlenen programa göre işlemi gerçekleştirerek insan kaynaklı unutma riskini azaltabilir.
WordPress ekosisteminde otomatik yedekleme için çeşitli araçlar ve eklentiler bulunur. WordPress’in resmi dokümantasyonu da zamanlanmış otomatik yedekleme çözümlerinin kullanılabileceğini belirtiyor.
En sağlıklı yaklaşım çoğu site için yalnızca tek bir yönteme güvenmek yerine yedeklerin gerçekten oluşturulduğunu, saklandığını ve geri yüklenebildiğini düzenli olarak kontrol etmektir.
Kesinlikle.
Bir web sitesini farklı bir sunucuya veya farklı bir hosting ortamına taşımadan önce güncel bir dosya ve veritabanı yedeğinin bulunması gerekir.
WordPress’in resmi taşıma dokümantasyonu da yeni sunucuya geçiş öncesinde WordPress dizininin, görsellerin, eklentilerin ve diğer dosyaların yanı sıra veritabanının da yedeklenmesini öneriyor.
Taşıma sırasında:
Güncel bir yedek, taşıma sırasında ortaya çıkabilecek sorunlarda geri dönüş noktası sağlar.
Site yedeği almadan önce aşağıdaki kontrol listesi kullanılabilir:
Site yedeği, web sitesinin belirli bir zamandaki dosyalarının ve verilerinin daha sonra geri yüklenebilmesi amacıyla oluşturulan kopyasıdır.
Her zaman değil. Dosya yedeği ile veritabanı yedeği ayrı işlemlerdir. Tam site yedeği için her ikisinin de alınması gerekir.
WordPress tam yedeği, WordPress dosyaları ile veritabanının birlikte yedeklenmesidir.
Hayır. WordPress’in kullandığı veritabanı ayrı bir sistemde tutulduğu için yalnızca web dosyalarını yedeklemek tam yedek anlamına gelmez.
WordPress veritabanı genellikle MySQL veya MariaDB üzerinde bulunur ve WordPress dosya dizininin içerisinde normal bir dosya olarak yer almaz.
Sitenin ne kadar sık değiştiğine göre belirlenmelidir. Çok sık veri üreten sitelerde günlük veya daha sık yedekleme gerekirken daha az değişen sitelerde daha seyrek programlar uygulanabilir.
Tek başına güvenilir bir strateji değildir. Sunucuya erişilememesi veya fiziksel bir problem yaşanması durumunda aynı yerde bulunan yedeklere de erişilemeyebilir. Farklı bir ortamda ek kopya bulundurmak daha güvenlidir.
İyi bir site yedeği, yalnızca bir klasörün bilgisayara kopyalanmasından ibaret değildir. Özellikle WordPress sitelerde tam bir geri dönüş için hem dosyaların hem de veritabanının birlikte korunması gerekir.
Dosya yedeği WordPress çekirdeğini, temaları, eklentileri, görselleri ve diğer dosyaları korurken veritabanı yedeği sitenin içeriklerini, kullanıcılarını, ayarlarını ve diğer dinamik verilerini korur.
Bu nedenle güvenilir bir yedekleme yaklaşımında şu dört nokta temel alınmalıdır:
Dosyaları yedekle + veritabanını yedekle + farklı ortamda sakla + geri yüklemeyi test et.
Bunlara ek olarak yedeklerin farklı tarihlerdeki sürümlerini korumak, kritik yedekleri ana sistemden ayırmak ve düzenli olarak yedeklerin gerçekten oluşturulduğunu kontrol etmek veri kaybı riskini önemli ölçüde azaltabilir.
Bir web sitesinin yedekleme sistemi ancak ihtiyaç duyulduğunda başarıyla geri dönebiliyorsa gerçekten işe yarar. Bu nedenle yedekleme sürecinin son adımı dosyanın oluşturulması değil, geri yüklenebilir olduğunun doğrulanmasıdır.