Güncelleme

DLE güncellemesi iki aşamalıdır: önce yeni dosyalar yüklenir, sonra yönetim panelindeki güncelleme aracı veritabanını adım adım yeni sürüme taşır.

✕
Önce yedek. Her zaman. Güncelleme veritabanı şemasını değiştirir. Hem dosyaları hem veritabanını yedeklemeden başlamayın. Bir şey ters giderse geri dönüş yolunuz yalnızca bu yedektir.

Güncelleme nasıl çalışır?

DLE, hedef sürümü VERSIONID sabitinde tutar (örneğin 21.0). Veritabanındaki mevcut sürüm ise $config['version_id'] değeridir. Aracın mantığı şudur:

// Hedef sürüme ulaşıldıysa bitir
if( $config['version_id'] == VERSIONID ) {
    echo "{\"status\": \"ok\", \"version\":\"{$config['version_id']}\"}";
    // …
}

// Aksi hâlde, MEVCUT sürümün yükseltme betiğini çalıştır
if( file_exists( ENGINE_DIR . "/inc/upgrade/" . totranslit($config['version_id']) . ".php" ) ) {
    include ( ENGINE_DIR . "/inc/upgrade/" . totranslit($config['version_id']) . ".php" );
}

Her betiğin sonunda sürüm bir sonrakine ilerletilir:

// engine/inc/upgrade/14.3.php
$config['version_id'] = '15.0';

// engine/inc/upgrade/15.0.php
$config['version_id'] = '15.1';
// … ve böyle devam eder
★
Adım adım ilerler — ve bu iyi bir şey Güncelleme, sürümü atlamaz. Araç her çağrıda tek bir adım ilerler ve tüm adımlar sırayla çalışır. DLE 21.0 paketinde engine/inc/upgrade/ altında 52 yükseltme betiği bulunur (en eskisi 7.0.php). Yani eski bir kurulumu güncellemek uzun sürebilir ama hiçbir ara sürüm atlanmaz.

Hangi betiklerin beklendiği, klasör taranarak ve sürüm numaraları karşılaştırılarak belirlenir:

$files = glob( ENGINE_DIR . "/inc/upgrade/*.php");
// yalnızca mevcut sürümden yeni olanlar seçilir:
if(intval($version) AND version_compare( $version, $config['version_id'] , '>=') ) { … }
sort($versions, SORT_NUMERIC);

Kim güncelleyebilir?

Güncelleme aracı engine/inc/upgrade.php dosyasıdır ve yalnızca ana yönetici grubuna (grup 1) açıktır:

if($member_id['user_group'] != 1){ msg("error", $lang['addnews_denied'], $lang['db_denied']); }

// Uzun sürebileceği için zaman sınırı kaldırılır
@ini_set('max_execution_time', 0);
@set_time_limit(0);

Güncelleme adımları

  1. Yedek alın Veritabanını ve dosyaları. Paneldeki yedekleme aracını veya hosting yedeğini kullanabilirsiniz.
  2. Bakım moduna alın Güncelleme sürerken siteyi ziyaretçilere kapatın (Siteyi geçici kapatma).
  3. Yeni dosyaları yükleyin Yeni sürümün dosyalarını sunucuya yükleyip üzerine yazın.
  4. Güncelleme aracını çalıştırın Yönetim panelindeki güncelleme bölümünü açın ve süreci başlatın. Araç adım adım ilerler ve her adımda durum bildirir.
  5. Eklentileri denetleyin Eklentiler → Hataları göster. Çekirdek dosyalar değiştiği için bazı çapalar artık tutmayabilir.
  6. Önbelleği temizleyin ve bakım modunu kapatın Sistem önbelleğini boşaltın, siteyi yeniden açın ve temel sayfaları test edin.

Güncelleme ve eklentiler

Bu bölüm, DLE güncellemesinin eklentilerle ilişkisini anlatır — sık yaşanan bir sorun alanıdır.

KonuNe olur?
Eklenti dosyaları Korunur. Yeni sürüm dosyalarını "üzerine yaz" yöntemiyle yüklediğinizde engine/modules/… içindeki kendi modülleriniz yerinde kalır.
Yamalı kopyalar Yeniden üretilir. DLE, yeni çekirdek dosyalarına yamaları yeniden uygular.
Çapalar Bozulabilir. Çekirdek dosyada hedef satır değiştiyse yama uygulanamaz ve eklenti sessizce devre dışı kalır.
Kendi DB tabloları Etkilenmez; DLE yalnızca kendi tablolarını günceller.
!
Güncelleme sonrası ilk iş Eklentiler → Hataları göster ekranını açın. "Dosya yolu + çapa metni" biçiminde kayıtlar varsa, o eklentilerin çapalarını yeni DLE sürümüne göre güncellemeniz gerekir. Eklentinin kendisi güncelleme destekliyorsa (geliştiricisi yeni sürüm yayınladıysa) yenisini kurmak genelde en hızlı çözümdür.

Sık karşılaşılan güncelleme sorunları

BelirtiSebep / çözüm
"Bu sürüm için güncelleme dosyası yok" Mevcut $config['version_id'] için engine/inc/upgrade/ altında betik yok. Genellikle dosyalar eksik yüklenmiştir veya sürüm değeri bozulmuştur.
Güncelleme yarıda kalıyor Sunucu zaman aşımı veya bellek sınırı. Araç yeniden çalıştırıldığında kaldığı adımdan devam eder (her adım sürümü ilerletir).
Site boş görünüyor Dosyalar eksik/karışık yüklenmiş olabilir. Yeni sürümün tamamını yeniden yükleyin.
Bir eklenti çalışmıyor Çapa tutmuyor. Hataları göster ekranından hangi dosya olduğunu görün.
Eklenti sistemi kilitli PLUGINS_READ_ONLY sabiti true yapılmış olabilir. engine/classes/plugins.class.php başından kontrol edin.

Daha temiz kurulum tercih edenler için

Bazı yöneticiler "üzerine yaz" yerine şunu yapar: yeni sürümü temiz bir dizine kurar, engine/data/ (config + dbconfig), uploads/ ve kendi tema/modül dosyalarını taşır, ardından güncelleme aracını çalıştırır. Bu yöntem "yetim" dosya bırakmaz ama daha fazla adım gerektirir ve hata yapmaya daha açıktır.

Sırada: DLE Hakkında.