Windows Üzerinde WSL2 + GLPI 11 Kurulumu
Not: Bu yazı tamamen teknik bir kurulum dokümanıdır. Anlatım “neden böyle hissettim” değil, “hangi adım, hangi komut, hangi çıktı”…
Windows Üzerinde WSL2 + GLPI 11 Kurulumu
*Not: Bu yazı tamamen teknik bir kurulum dokümanıdır. Anlatım “neden böyle hissettim” değil, “hangi adım, hangi komut, hangi çıktı”* mantığıyla hazırlanmıştır. Daha önce paylaştığım [Windows Subsystem for Linux (WSL) 2025 İçin En Etkili Geliştirme Ortamı Dual Boot’a Modern Bir Alternatif](https://medium.com/@aliyildizogluu/windows-subsystem-for-linux-wsl-2025-i̇çin-en-etkili-geliştirme-ortamı-dual-boota-modern-bir-8677bb2a22a4)* yazısı bu rehberin ön koşuludur; okunmadan devam edilmemesi önerilir.*
Bu dokümanda, Windows ortamında GLPI’yi doğrudan kurmaya çalışırken yaşanan teknik problemler, bu problemlerin ardından neden WSL2 + Linux mimarisine geçildiği ve GLPI 11’in WSL2 üzerinde en stabil şekilde nasıl kurulduğu ayrıntılı olarak anlatılmaktadır.
1. Windows Üzerinde Doğrudan GLPI Kurulumunda Yaşanan Problemler
GLPI, mimari olarak Linux tabanlı sistemler için tasarlanmış bir PHP uygulamasıdır. Windows üzerinde XAMPP / WAMP gibi paketlerle yapılan kurulum denemelerinde aşağıdaki problemler tekrar eden şekilde gözlemlenmiştir:
- PHP sürüm uyuşmazlıkları (8.1 / 8.2 / 8.3 arasında davranış farkları)
- Apache üzerinde PHP handler (mod_php / php-fpm) çakışmaları
- URL Rewrite kurallarının kararsız çalışması
- GLPI 11 ile gelen
**public/dizin mimarisinin** Windows Apache yapılandırmalarında sorun çıkarması - Servis restart sonrası yapılandırmaların bozulması veya sıfırlanması
Bu problemler sonucunda Windows üzerinde doğrudan kurulumun uzun vadede stabil olmadığı netleşmiştir.
Bu noktada yaklaşım değiştirilmiştir:
GLPI’yi Windows’a zorlamak yerine, Windows üzerinde gerçek bir Linux ortamı çalıştırmak.
Bu ihtiyacı karşılayan çözüm: WSL2 (Windows Subsystem for Linux 2) olmuştur.
2. Mimari Tasarım
Kurulumda kullanılan mimari aşağıdaki gibidir:
Windows 10 / 11
└── WSL2
└── Ubuntu 24.04 LTS
├── Apache 2.4
├── PHP 8.2
├── MariaDB
└── GLPI 11
Bu mimarinin sağladığı başlıca avantajlar:
- Linux prod ortamına birebir yakınlık
- Windows üzerinde çalışmaya devam edebilme
- Aynı yapının fiziksel veya sanal Linux sunucuya doğrudan taşınabilir olması
3. Ön Gereksinimler
3.1 BIOS Sanallaştırma Ayarı
WSL2’nin çalışabilmesi için donanımsal sanallaştırma açık olmalıdır.
- AMD işlemciler: SVM Mode = Enabled
- Intel işlemciler: Intel VT-x = Enabled
Bu adım kurulumun yaklaşık %50’sini oluşturur. Ayar yapıldıktan sonra Windows tarafında doğrulama yapılmalıdır:
systeminfo | find "Virtualization"
Beklenen çıktı:
Virtualization Enabled In Firmware: Yes
3.2 Windows Özellikleri
PowerShell (Yönetici) üzerinden WSL kurulumu:
wsl --install
WSL sürüm kontrolü:
wsl --status
Beklenen:
Default Version: 2
Not: Daha önce WSL kurulmuş ancak sanallaştırma kapalıysa, WSL hata vermeye devam eder. Bu durumda BIOS ayarı düzeltilip tam kapat–aç (cold boot) yapılmalıdır.
4. Ubuntu 24.04 LTS Kurulumu (WSL2)
Ubuntu kurulumu tamamlandıktan sonra terminal açılır.
Sistem güncellemesi:
sudo apt update && sudo apt upgrade -y
Zaman dilimi ayarı:
sudo timedatectl set-timezone Europe/Istanbul
5. Apache ve MariaDB Kurulumu
Bu adımda web sunucusu (Apache) ve veritabanı sunucusu (MariaDB) kurulup çalışır duruma getirilir. Amaç; GLPI kurulumu öncesinde servislerin gerçekten ayakta olduğunu doğrulamaktır.
5.1 Paketlerin Kurulumu
Ubuntu üzerinde Apache ve MariaDB paketlerini kuruyoruz:
sudo apt update
sudo apt install -y apache2 mariadb-server
Kurulum sırasında:
- Apache için ek bir konfigürasyon sorusu gelmez
- MariaDB servisleri otomatik olarak oluşturulur
Kurulum tamamlandıktan sonra paketlerin yüklendiğini doğrulamak için:
apache2 -v
mariadb --version
Beklenen:
- Apache 2.4.x
- MariaDB 10.x veya üzeri
5.2 Servislerin Otomatik Başlatılması (Enable)
WSL her başlatıldığında servislerin otomatik kalkması için enable edilir:
sudo systemctl enable apache2
sudo systemctl enable mariadb
Bu komutlar, servislerin boot sırasında başlatılmasını sağlar.
5.3 Servislerin Manuel Olarak Başlatılması
Kurulumdan sonra servisleri elle başlatıyoruz:
sudo systemctl start apache2
sudo systemctl start mariadb
Servis durumlarını kontrol ediyoruz:
sudo systemctl status apache2 --no-pager
sudo systemctl status mariadb --no-pager
Beklenen durum:
Active: active (running)
Eğer inactive veya failed görülürse:
/var/log/apache2/error.log/var/log/mysql/error.log(veya mariadb.log)
logları kontrol edilmelidir.
5.4 Apache Port ve Dinleme Kontrolü
Apache’nin 80 portunu dinlediğini doğrulamak için:
sudo ss -tulnp | grep apache
veya:
sudo netstat -tulnp | grep :80
Beklenen:
- Apache process’inin 0.0.0.0:80 veya :::80 üzerinde dinlemesi
5.5 Windows Tarayıcıdan Apache Testi (Kritik Kontrol)
WSL2, Windows ile localhost üzerinden NAT ile haberleşir. Bu nedenle Apache testi Windows tarafında yapılmalıdır.
Windows tarayıcıdan:
http://localhost
Beklenen çıktı:
- Apache2 Ubuntu Default Page
Bu sayfa açılıyorsa:
- Apache servisi çalışıyor
- WSL2 ↔ Windows ağ köprüsü sağlıklı
- 80/TCP erişilebilir durumda
Eğer sayfa açılmazsa kontrol adımları:
sudo systemctl status apache2
sudo tail -n 50 /var/log/apache2/error.log
5.6 MariaDB Socket ve Çalışma Kontrolü
MariaDB’nin socket üzerinden erişilebilir olduğunu kontrol etmek için:
sudo mysql
Eğer hata almadan MariaDB shell açılıyorsa servis çalışıyor demektir.
Çıkmak için:
EXIT;
5.7 Bu Adımın Başarılı Sayılması İçin Gerekenler
Bu bölüm başarılı kabul edilir eğer:
- Apache servisi
active (running) - MariaDB servisi
active (running) http://localhostadresinde Apache default sayfası açılıyorsudo mysqlkomutu hatasız çalışıyor
Bu doğrulamalar yapılmadan GLPI kurulumuna geçilmemelidir.
6. PHP 8.2 Kurulumu (GLPI 11 Uyumlu) — Detaylı
Ubuntu 24.04, varsayılan olarak PHP 8.3 ile gelir. Kurulum sırasında php -v çıktısında PHP 8.3.x görülmesi normaldir. Bu rehberde GLPI 11 için bilinçli olarak PHP 8.2 kullanılmaktadır.
Bu seçimin nedeni pratikte şudur:
- GLPI tarafında ana uyumluluk çizgisi PHP 8.2 üzerinde daha öngörülebilir olur.
- Plugin ekosistemi (marketplace) sürüm geçişlerinde daha stabil davranır.
Hedef: “çalıştırmak” değil, stabil çalıştırmak.
6.1 Mevcut PHP Sürümünü Kontrol Et
Önce mevcut durumu gör:
php -v
Eğer çıktı 8.3 ise, 8.2’ye düşürme adımına geç.
6.2 PHP 8.3 Paketlerini Kaldır
Not: Bazı sistemlerde
phpmeta paketi, 8.3 ile birlikte gelir. Bu nedenle 8.3 paketlerini temizlemek önemlidir.
sudo apt purge -y php8.3*
sudo apt autoremove -y
Kontrol:
php -v
- “command not found” görmek normaldir (PHP tamamen kalkmış olabilir).
- Hâlâ 8.3 görüyorsan, sistemde kalan paketleri listele:
dpkg -l | grep php | head
6.3 PHP 8.2 Repository (ondrej/php) Eklemek
Ubuntu 24.04 reposunda 8.2 her zaman hazır gelmeyebilir. Bu nedenle sektör standardı PPA kullanılır.
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
6.4 PHP 8.2 ve GLPI Modüllerini Kur
GLPI’nin tipik olarak ihtiyaç duyduğu modüller:
sudo apt install -y \
php8.2 php8.2-cli php8.2-fpm \
php8.2-mysql php8.2-gd php8.2-intl php8.2-curl php8.2-xml \
php8.2-mbstring php8.2-zip php8.2-bcmath php8.2-ldap
Kurulum sonrası doğrulama:
php -v
php -m | egrep "(curl|gd|intl|mbstring|mysqli|pdo_mysql|xml|zip|ldap)" | sort
6.5 Varsayılan PHP’yi 8.2 Yap
Ubuntu’da birden fazla PHP sürümü varsa php komutu yanlış sürüme gidebilir.
sudo update-alternatives --set php /usr/bin/php8.2
php -v
Beklenen:
PHP 8.2.x
6.6 PHP Runtime Ayarları (GLPI için Minimumlar)
WSL ortamında bile GLPI’de dosya yükleme/CSV import/simge upload gibi operasyonlar olur. Bu yüzden minimum ayarları düzenlemek gerekir.
sudo nano /etc/php/8.2/fpm/php.ini
Önerilen değerler (minimum):
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 300
date.timezone = Europe/Istanbul
Uygula:
sudo systemctl reload php8.2-fpm
7. Apache — PHP Entegrasyonu (Detaylı)
Bu bölümde Apache’nin PHP’yi mod_php yerine php-fpm üzerinden servis etmesi sağlanır.
7.1 Gerekli Modülleri Aç
sudo a2enmod proxy_fcgi setenvif rewrite
Doğrulama:
sudo apachectl -M | egrep "(proxy_fcgi|rewrite)"
7.2 PHP-FPM Konfigürasyonunu Apache’ye Bağla
sudo a2enconf php8.2-fpm
sudo systemctl reload apache2
7.3 Hızlı PHP Testi (Geçici)
Geçici test dosyası oluştur:
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php > /dev/null
Windows tarayıcı:
[http://localhost/info.php](http://localhost/info.php)
Kontrol edilecek alanlar:
- PHP Version: 8.2.x
- Server API: FPM/FastCGI
Test bitince güvenlik için sil:
sudo rm -f /var/www/html/info.php
Bu adımda en sık sorun: Tarayıcıda PHP dosyasının “kod” olarak görünmesi. Bu durumda php-fpm devrede değildir.
8. MariaDB Güvenlik ve GLPI Veritabanı (Detaylı)
Bu bölüm iki parçadır:
- MariaDB’yi temel güvenlik ayarlarıyla sertleştirmek
- GLPI için ayrı DB ve ayrı kullanıcı oluşturmak
8.1 MariaDB Secure Installation
sudo mysql_secure_installation
Önerilen cevaplar (kurumsal minimum):
- unix_socket authentication: Yes
- Change root password: No (root socket ile giriş)
- Remove anonymous users: Yes
- Disallow root login remotely: Yes
- Remove test database: Yes
- Reload privilege tables: Yes
8.2 DB ve Kullanıcı Oluşturma
MariaDB shell aç:
sudo mysql
CREATE DATABASE glpidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'glpiuser'@'localhost' IDENTIFIED BY 'GÜÇLÜ_BİR_ŞİFRE';
GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Bağlantı testi:
mysql -u glpiuser -p -e "SHOW DATABASES;"
Beklenen:
- listede
glpidbgörünür
Sohbette yaşanan yaygın hata: Web login ekranında
glpiuserdenemek.glpiuserbir DB hesabıdır, GLPI paneline giriş hesabı değildir.
9. GLPI 11 Kurulumu
9.1 GLPI İndirme ve Çıkarma
cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/11.0.4/glpi-11.0.4.tgz
tar -xzf glpi-11.0.4.tgz
sudo mv glpi /var/www/html/
Dizin doğrulama:
ls -la /var/www/html/glpi
ls -la /var/www/html/glpi/public
Beklenen:
/var/www/html/glpi/public/index.phpdosyası bulunmalı
Sohbette yaşanan önemli bir problem:
public/.htaccessdosyası bazı paketlerde görünmeyebiliyor. Bu rehberde rewrite kuralı Apache VirtualHost içine alındığı için.htaccesszorunlu değildir.
9.2 Dosya İzinleri
sudo chown -R www-data:www-data /var/www/html/glpi
sudo find /var/www/html/glpi -type d -exec chmod 755 {} \;
sudo find /var/www/html/glpi -type f -exec chmod 644 {} \;
Ek kontrol:
sudo -u www-data test -w /var/www/html/glpi/files && echo "files: writable" || echo "files: NOT writable"
sudo -u www-data test -w /var/www/html/glpi/config && echo "config: writable" || echo "config: NOT writable"
10. Apache VirtualHost (GLPI 11 — public dizin) — Detaylı
GLPI 11’de güvenlik gereği DocumentRoot doğrudan public/ dizini olmalıdır.
Aksi halde:
- “web server misconfigured” uyarısı alınır
- veya “go to install page” tıklamalarında yönlendirme/404 sorunları görülür
10.1 VirtualHost Dosyasını Oluştur
sudo nano /etc/apache2/sites-available/glpi.conf
Aşağıdaki içeriği gir:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html/glpi/public
<Directory /var/www/html/glpi/public>
Require all granted
Options FollowSymLinks
AllowOverride None
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
</Directory>
ErrorLog ${APACHE_LOG_DIR}/glpi_error.log
CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined
</VirtualHost>
10.2 Default Site’ı Kapat ve GLPI’yi Aç
sudo a2dissite 000-default.conf
sudo a2ensite glpi.conf
sudo systemctl reload apache2
Sohbette yaşanan hata örneği:
aensitekomutu yazılırsa “command not found” gelir. Doğru komuta2ensite’tır.
10.3 Log ile Doğrulama
sudo tail -n 50 /var/log/apache2/glpi_error.log
11. GLPI Web Kurulumu (Detaylı)
Tarayıcı:
[http://localhost](http://localhost)
Kurulum sihirbazı içinde:
- Dil seçimi
- Lisans kabul
- Kurulum tipi: Yeni kurulum
- Veritabanı bağlantısı:
- Server:
localhost - User:
glpiuser - Password: belirlenen şifre
- Veritabanı seçimi:
glpidb(existing)
- Telemetry (usage statistics): kurumsal pratikte kapalı tercih edilebilir
Kurulum tamamlandıktan sonra güvenlik için:
sudo rm -rf /var/www/html/glpi/install
12. İlk Giriş ve Güvenlik (Detaylı)
12.1 Varsayılan Hesaplarla İlk Login
GLPI’nin kurulum sonrası varsayılan giriş hesabı:
Login: glpi
Password: glpi
Not:
glpiuserile giriş yapılamaz. Bu kullanıcı yalnızca veritabanı içindir.
Sonuç
Bu rehberdeki adımlar uygulandığında:
- Windows üzerinde stabil çalışan
- Linux prod ortamına birebir yakın
- GLPI 11 ile tam uyumlu
bir Help Desk altyapısı elde edilir.
Bu yapı, ek değişiklik gerektirmeden şirket içi Linux sunuculara taşınabilir niteliktedir.
메타데이터
- post_id
- 7e7ee64bfe69
- slug
- windows-üzerinde-wsl2-glpi-11-kurulumu-7e7ee64bfe69
- url
- https://medium.com/@aliyildizogluu/windows-%C3%BCzerinde-wsl2-glpi-11-kurulumu-7e7ee64bfe69
- canonical_url
- https://medium.com/@aliyildizogluu/windows-%C3%BCzerinde-wsl2-glpi-11-kurulumu-7e7ee64bfe69
- author_url
- https://medium.com/@aliyildizogluu
- status
- ok
- fetched_at
- 2026-06-17 08:20:12