IT altyapılarında en yaygın kullanılan açık kaynaklı varlık (Asset) ve çağrı (Helpdesk) yönetim yazılımlarından biri olan GLPI, 10.0 ve üzeri majör sürümleriyle birlikte güvenlik mimarisinde, dizin yapısında ve veritabanı gereksinimlerinde önemli değişikliklere gitti.
Bu rehberde, Ubuntu/Debian Linux sunucular üzerinde çalışan GLPI mimarisini veri kaybı yaşamadan güvenli bir şekilde en güncel sürüme nasıl yükselteceğinizi ve karşılaşılabilecek olası hataların çözümlerini adım adım ele alıyoruz.
🛑 1. Ön Hazırlık ve Yedekleme (Çok Kritik!)
Yükseltme işlemine başlamadan önce mutlaka tam bir yedek almalısınız.
A. Veritabanı Yedeği
MySQL/MariaDB veritabanınızı mysqldump ile dışa aktarın:
Bash
sudo mysqldump -u root -p glpi > /var/backups/glpi_db_backup_$(date +%F).sql
B. Dosya ve Dizin Yedeği
Mevcut GLPI klasörünü ve özellikle eklentiler/yüklemeler dizinini arşivleyin:
Bash
sudo tar -czvf /var/backups/glpi_files_backup_$(date +%F).tar.gz /var/www/html/glpi
🛠️ 2. GLPI Dizin ve Yetki Yapılandırması
GLPI 10+ sürümleriyle birlikte web kök dizini (DocumentRoot) artık güvenlik gereği doğrudan public/ klasörünü hedeflemelidir.
A. Yeni Sürüm Dosyalarını İndirin ve Çıkarın
Bash
cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/10.0.12/glpi-10.0.12.tgz
tar -xvf glpi-10.0.12.tgz
# Eski GLPI dizininizi yedekleyin, yeni dosyaları taşıyın
sudo mv /var/www/html/glpi /var/www/html/glpi_old
sudo mv glpi /var/www/html/glpi
B. Eski Yapılandırma ve Yüklemeleri Yeni Sürüme Aktarın
Eski kurulumunuzdaki konfigürasyon ve yüklenen dosyaları yeni GLPI dizinine kopyalayın:
Bash
sudo cp -r /var/www/html/glpi_old/config/* /var/www/html/glpi/config/
sudo cp -r /var/www/html/glpi_old/files/* /var/www/html/glpi/files/
sudo cp -r /var/www/html/glpi_old/plugins/* /var/www/html/glpi/plugins/
C. Klasör İzinlerini Düzenleyin
Nginx/Apache sunucusunun dosyalara yazabilmesi için sahipliği www-data olarak güncelleyin:
Bash
sudo chown -R www-data:www-data /var/www/html/glpi
sudo chmod -R 775 /var/www/html/glpi/files
sudo chmod -R 775 /var/www/html/glpi/config
⚙️ 3. CLI Üzerinden Veritabanı Migration
Sürüm yükseltme işlemini web arayüzü yerine CLI (Terminal) üzerinden yapmak, büyük veritabanlarında zaman aşımı (timeout) riskini sıfıra indirir.
Terminalde şu komutu çalıştırarak migration işlemini başlatın:
Bash
cd /var/www/html/glpi
php bin/console db:update
Sistem mevcut veritabanınızı analiz edecek ve tabloları yeni sürüme uygun şekilde güncelleyecektir. İşlem bittiğinde Migration successful mesajını göreceksiniz.
🔍 4. Sürüm Yükseltme Sonrası Yaşanabilecek Olası Sorunlar ve Çözümleri
Majör sürüm geçişlerinden sonra en sık karşılaşılan sorunlar ve hızlı çözüm yöntemleri şunlardır:
❌ 1. “Beklenmeyen Bir Sorun Çıktı” veya CSRF Engeli (Action Not Allowed)
Neden Olur? GLPI 10+ güvenlik protokolü nedeniyle web adresi çakışmalarında veya oturum klasörü izinleri bozulduğunda erişimi engeller.
Çözüm:
- Global ve lokal PHP session klasör izinlerini tazeleyin:Bash
sudo chown -R www-data:www-data /var/lib/php/sessions sudo chown -R www-data:www-data /var/www/html/glpi/files/_sessions - Veritabanındaki base URL ayarını güncelleyin:SQL
USE glpi; UPDATE glpi_configs SET value = 'http://SUNUCU_IP_VEYA_DOMAIN/glpi/public/' WHERE name = 'url_base';
❌ 2. Active Directory / LDAP Kullanıcıları Giriş Yapamıyor
Neden Olur? Yükseltme sonrası PHP-LDAP modülünün pasife düşmesi veya LDAP Login Field parametresinin çakışması.
Çözüm:
- PHP LDAP eklentisini tekrar etkinleştirip web servisini restart edin:Bash
sudo phpenmod ldap sudo systemctl restart apache2 - GLPI Arayüzünde: Kurulum > Kimlik Doğrulama > LDAP Dizinleri > [Sunucunuz] > Kullanıcılar sekmesine gidin.
- Giriş Alanı (Login Field) değerinin
samaccountnameolarak ayarlandığından emin olun. Kullanıcılar oturum açarken etki alanı eki (@domain.local) olmadan sadece kullanıcı adlarını yazmalıdır.
❌ 3. Mükerrer (Duplicate) Kayıt Yüzünden Giriş Yapamama
Neden Olur? Eski sürümden çöp kutusunda (is_deleted = 1) kalan kullanıcılar ile aktif kullanıcıların çakışması.
Çözüm: Veritabanına girerek pasif/silinmiş mükerrer kaydı temizleyin:
SQL
SELECT id, name, is_deleted FROM glpi_users WHERE name = 'kullanici.adi';
DELETE FROM glpi_users WHERE id = SILINECEK_ID;
❌ 4. Varlıklarda (SIM Kart, Bilgisayar vb.) “Durum” Seçeneklerinin Boş Gelmesi
Neden Olur? GLPI 10 ile birlikte “Öğe Durumları” (Item Status) nesne bazlı yetkilendirilmeye başlandı.
Çözüm:
- Yapılandırma > Açılan Listeler > Ortak > Öğe Durumları menüsüne gidin.
- İlgili duruma (örn: Boşta, Pasif, Donduruldu) tıklayın.
- Varlık Türleri sekmesinden hangi donanımlarda (SIM Kartı, Bilgisayar vb.) kullanılacağını işaretleyip kaydedin.
GLPI sürüm yükseltme süreci doğru yedekleme ve dizin izinleri yapılandırmasıyla oldukça pürüzsüz tamamlanabilir. Yükseltme sonrasında public/ dizin yönlendirmelerine ve veritabanı url_base parametrelerine dikkat etmek, yaşanabilecek oturum hatalarının önüne geçecektir.
Kaynak: https://help.glpi-project.org/tutorials/procedures/updating-glpi
