← Back to list

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ı”…

Ali Yıldızoğlu · 2026-01-18 00:24 · 0 claps · 6.2 min read
#wsl-2 #linux #glpi #sysadmin #itsm
Open on Medium ↗
Wiki topics: 🔓 · Open Source

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://localhost adresinde Apache default sayfası açılıyor
  • sudo mysql komutu 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 php meta 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ı:

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:

  1. MariaDB’yi temel güvenlik ayarlarıyla sertleştirmek
  2. 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 glpidb görünür

Sohbette yaşanan yaygın hata: Web login ekranında glpiuser denemek. glpiuser bir 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.php dosyası bulunmalı

Sohbette yaşanan önemli bir problem: public/.htaccess dosyası bazı paketlerde görünmeyebiliyor. Bu rehberde rewrite kuralı Apache VirtualHost içine alındığı için .htaccess zorunlu 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: aensite komutu yazılırsa “command not found” gelir. Doğru komut a2ensite’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ı:

Kurulum sihirbazı içinde:

  1. Dil seçimi
  2. Lisans kabul
  3. Kurulum tipi: Yeni kurulum
  4. Veritabanı bağlantısı:
  • Server: localhost
  • User: glpiuser
  • Password: belirlenen şifre
  1. Veritabanı seçimi:
  • glpidb (existing)
  1. 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: glpiuser ile 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