docs: update implementation plan for multi-PHP support

This commit is contained in:
Ümit Tunç
2026-03-28 07:04:58 +03:00
parent ae0f61e364
commit 7e4581d7a4
+9 -2
View File
@@ -9,12 +9,17 @@ Bu plan, Windows platformunda Laragon veya XAMPP benzeri, ancak Electron ile mod
- [ ] **Nginx Entegrasyonu**: Web sunucusu olarak Nginx kullanarak performanslı bir yapı sunulması.
- [ ] **Material UI (MUI)**: Tüm arayüz sisteminde modern ve standart bir görünüm için MUI kullanımı.
- [ ] **Gelişmiş Ayarlar (Settings)**: Alias yapılandırması, VHost yönetimi ve özel dizin eşlemeleri.
- [ ] **Dinamik İndirme (Download Manager)**: Kurulumda boş gelen uygulamanın kullanıcı isteğiyle PHP, MySQL, Nginx gibi servisleri indirebilmesi.
- [ ] **Proje Bazlı Sürüm Yönetimi**: Hangi projenin/dizinin hangi PHP ve MySQL sürümüyle çalışacağının tekil olarak belirlenmesi.
- [ ] **Otomatik Konfigürasyon**: VHost, PHP.ini ve MySQL ayarlarının kullanıcı müdahalesi olmadan hazırlanması.
## Teknik Detaylar
### 1. Servis Yönetimi (Node.js Child Process)
### 1. Servis ve İndirme Yönetimi (Node.js)
Uygulama, servisleri Windows servisleri olarak kurmak yerine, taşınabilir (portable) binary'leri doğrudan `child_process.spawn` ile yönetecektir.
- **Download Manager**: `axios` veya `got` gibi kütüphanelerle resmi sunuculardan (windows.php.net, dev.mysql.com vb.) ZIP dosyalarını indirir ve `bin/` altına çıkartır.
- **Versiyon İzolasyonu**: Her proje için `config/projects.json` içinde sürüm eşleşmeleri tutulur.
- **Nginx**: `bin/nginx/nginx.exe` üzerinden başlatılacak. `config/nginx/nginx.conf` dosyası uygulama tarafından dinamik olarak güncellenecek.
- **PHP**: Farklı sürümler `bin/php/php7.4/php-cgi.exe`, `bin/php/php8.2/php-cgi.exe` gibi yollarda bulunacak. Nginx, FastCGI (9000-9100 portları arası) üzerinden ilgili PHP sürümüne istek gönderecek.
- **MySQL**: `bin/mysql/bin/mysqld.exe` ile başlatılacak. `--defaults-file=config/mysql/my.ini` parametresi kullanılacak.
@@ -30,8 +35,10 @@ Uygulamanın tamamı **Material UI (MUI)** kütüphanesi kullanılarak geliştir
- **Dashboard**: Servislerin çalışma durumu, CPU/RAM kullanımı ve aktif portlar.
- **Log Görüntüleyici**: Her servis için ayrı sekmelerde gerçek zamanlı konsol çıktıları.
- **Ayarlar (Settings) Ekranı**:
- **Dizin ve Alias Eşleme**: Bir dizini (örn: `C:/Projeler/Web`) bir alias'a (örn: `myproject.test`) bağlama arayüzü.
- **Servis İndirme Merkezi**: Mevcut PHP, MySQL ve Nginx sürümlerini listeleyen ve tek tıkla indirme/silme imkanı sunan arayüz.
- **Dizin ve Alias Eşleme**: Belirli bir dizine özel PHP ve MySQL sürümü atama imkanı.
- **Config Path Yönetimi**: Proje bazlı `vhost` dosyalarının otomatik oluşturulması ve düzenlenmesi.
- **Ağ Ayarları (Listen IP/Port)**: Servislerin sadece `localhost` (127.0.0.1) üzerinden mi yoksa dışa açık (0.0.0.0) şekilde mi çalışacağının belirlenmesi.
- **Global Ayarlar**: Port seçimleri (80, 443, 3306), PHP sürüm atamaları.
- **Sanal Sunucu (VHost) Yönetimi**: Yeni domain ekleme ve `hosts` dosyası güncelleme.