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.
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
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ı
- Yedek alın Veritabanını ve dosyaları. Paneldeki yedekleme aracını veya hosting yedeğini kullanabilirsiniz.
- Bakım moduna alın Güncelleme sürerken siteyi ziyaretçilere kapatın (Siteyi geçici kapatma).
- Yeni dosyaları yükleyin Yeni sürümün dosyalarını sunucuya yükleyip üzerine yazın.
- 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.
- Eklentileri denetleyin Eklentiler → Hataları göster. Çekirdek dosyalar değiştiği için bazı çapalar artık tutmayabilir.
- Ö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.
| Konu | Ne 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. |
Sık karşılaşılan güncelleme sorunları
| Belirti | Sebep / çö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.