feat: implement user guide documentation in multiple languages and add IPC infrastructure for UI components
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# Multi-PHP User Guide / Kullanım Kılavuzu / Benutzerhandbuch
|
||||
|
||||
Welcome to the official Multi-PHP documentation. Please select your preferred language to continue.
|
||||
|
||||
Multi-PHP resmi dokümantasyonuna hoş geldiniz. Devam etmek için lütfen tercih ettiğiniz dili seçin.
|
||||
|
||||
Willkommen zur offiziellen Multi-PHP-Dokumentation. Bitte wählen Sie Ihre bevorzugte Sprache aus, um fortzufahren.
|
||||
|
||||
---
|
||||
|
||||
### 🌐 Select Language / Dil Seçin / Sprache wählen
|
||||
|
||||
- [**English (EN)**](./en/index.md) - Official documentation in English.
|
||||
- [**Türkçe (TR)**](./tr/index.md) - Türkçe kullanım kılavuzu.
|
||||
- [**Deutsch (DE)**](./de/index.md) - Benutzerhandbuch auf Deutsch.
|
||||
|
||||
---
|
||||
|
||||
> [!TIP]
|
||||
> Multi-PHP is designed to provide a seamless local development environment with multiple PHP, MariaDB, and web server versions.
|
||||
@@ -0,0 +1,46 @@
|
||||
# MariaDB Datenbankverwaltung
|
||||
|
||||
Multi-PHP bietet ein umfassendes Toolset zur Verwaltung von MariaDB-Datenbanken, von GUI-basierten Assistenten bis hin zur tiefen Prozessüberwachung.
|
||||
|
||||
---
|
||||
|
||||
## 📊 Datenbank- & Benutzerverwaltung
|
||||
|
||||
Multi-PHP bietet Ihnen einfachen Zugriff auf das Erstellen und Verwalten von MySQL/MariaDB-Datenbanken und Benutzern:
|
||||
|
||||
- **Datenbank erstellen**: Erstellen Sie schnell eine neue Datenbank mit eigenem Namen.
|
||||
- **Benutzer verwalten**: Erstellen Sie neue Datenbankbenutzer, setzen Sie Passwörter und verwalten Sie Berechtigungen.
|
||||
- **Datenbanken auflisten**: Zeigen Sie alle vorhandenen Datenbanken und deren Nutzungsstatistiken an.
|
||||
|
||||
---
|
||||
|
||||
## 🧙 MariaDB Import- & Export-Assistenten
|
||||
|
||||
Unsere intelligenten Assistenten nehmen die Komplexität aus dem Verschieben von Daten:
|
||||
|
||||
### **Import-Assistent (SQL/Archiv)**
|
||||
- Wählen Sie eine `.sql`-, `.zip`- oder `.sql.gz`-Datei aus.
|
||||
- Wählen Sie Ihren Ziel-MariaDB-Server und Ihre Datenbank aus.
|
||||
- Multi-PHP erledigt den Rest, entpackt Dateien automatisch und importiert Daten in die gewählte DB.
|
||||
|
||||
### **Export-Assistent (Backup)**
|
||||
- Wählen Sie die Datenbank aus, die Sie exportieren möchten.
|
||||
- Wählen Sie aus, ob Sie die Datei mit Gzip (`.gz`) komprimieren möchten.
|
||||
- Speichern Sie die Datei an Ihrem gewünschten Ort.
|
||||
|
||||
---
|
||||
|
||||
## 🕒 MariaDB Prozessmonitor
|
||||
|
||||
Überwachen Sie die Aktivität Ihrer Datenbank in Echtzeit. Unser Prozessmonitor zeigt:
|
||||
- **Aktive Verbindungen**: Wer ist aktuell mit der Datenbank verbunden.
|
||||
- **SQL-Abfragen**: Das genaue SQL, das ausgeführt wird, und wie lange es dauert.
|
||||
- **Prozesse abbrechen**: Beenden Sie hängende oder problematische Datenbankverbindungen sofort.
|
||||
|
||||
> [!TIP]
|
||||
> Benötigen Sie ein traditionelleres webbasiertes Interface? Gehen Sie zum Menü **"Tools"** und installieren Sie **phpMyAdmin** mit nur einem Klick.
|
||||
|
||||
### 📖 Nächste Schritte
|
||||
- [Lernen Sie, wie Sie Nginx & Apache Server verwalten](./web-servers.md)
|
||||
- [CLI und Systemintegration verwalten](./settings.md)
|
||||
- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md)
|
||||
@@ -0,0 +1,39 @@
|
||||
# Einführung & Schnellstart
|
||||
|
||||
Willkommen bei **Multi-PHP**, der All-in-One-lokalen Entwicklungsumgebung für Windows. Diese Anleitung führt Sie durch die ersten Schritte und hilft Ihnen dabei, Ihre Umgebung einzurichten und in Betrieb zu nehmen.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Schnellstart
|
||||
|
||||
Folgen Sie diesen Schritten, um mit Ihrem ersten PHP-Projekt zu beginnen:
|
||||
|
||||
1. **Multi-PHP starten**: Öffnen Sie die Anwendung von Ihrem Desktop oder dem Startmenü aus.
|
||||
2. **Dashboard-Übersicht**: Beim ersten Start sehen Sie das Dashboard. Dies ist Ihre Zentrale für alle Dienste.
|
||||
3. **PHP herunterladen**: Gehen Sie zu `Einstellungen > PHP-Versionen` und laden Sie mindestens eine PHP-Version (z. B. PHP 8.3) herunter.
|
||||
4. **Dienste starten**: Klicken Sie auf die Schaltfläche **"Alle starten"** im Dashboard, um Nginx/Apache und MariaDB zu starten.
|
||||
5. **Projekt erstellen**: Navigieren Sie zum Tab **"Meine Projekte"** und fügen Sie Ihren ersten Projektordner hinzu.
|
||||
|
||||
---
|
||||
|
||||
## 🏢 Kernkomponenten
|
||||
|
||||
Multi-PHP bündelt mehrere wichtige Werkzeuge für die moderne Webentwicklung:
|
||||
|
||||
| Komponente | Beschreibung |
|
||||
| :--- | :--- |
|
||||
| **PHP-FPM** | Hochleistungs-FastCGI-Prozessmanager für PHP. |
|
||||
| **Nginx** | Moderner, leichtgewichtiger und schneller Webserver. |
|
||||
| **Apache** | Robuster, traditioneller Webserver mit Unterstützung für `.htaccess`. |
|
||||
| **MariaDB** | Der von der Community entwickelte, kommerziell unterstützte Fork von MySQL. |
|
||||
| **phpMyAdmin** | Web-Interface für einfaches Datenbankmanagement. |
|
||||
|
||||
---
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Einige Dienste können möglicherweise nicht gestartet werden, wenn ihre Standard-Ports (80, 3306) bereits von anderen Anwendungen (wie Skype oder einer anderen XAMPP-Installation) belegt sind. Überprüfen Sie die **"Einstellungen"**, um diese Ports bei Bedarf zu ändern.
|
||||
|
||||
### 📖 Nächste Schritte
|
||||
- [Lernen Sie, wie Sie Projekte verwalten](./projects.md)
|
||||
- [PHP-Versionen und Erweiterungen konfigurieren](./php.md)
|
||||
- [MariaDB-Datenbanken verwalten](./database.md)
|
||||
@@ -0,0 +1,43 @@
|
||||
# Verwaltung von PHP-Versionen & Erweiterungen
|
||||
|
||||
Multi-PHP macht es einfach, verschiedene PHP-Umgebungen für Ihre Projekte zu wechseln, zu konfigurieren und zu verwalten.
|
||||
|
||||
---
|
||||
|
||||
## 🔩 PHP-Versionen verwalten
|
||||
|
||||
Navigieren Sie zu `Einstellungen > PHP-Versionen`, um PHP-Versionen herunterzuladen, auszuwählen und zu verwalten.
|
||||
|
||||
- **Verfügbare Versionen**: Liste aller PHP-Versionen, die zum Download bereitstehen.
|
||||
- **Heruntergeladene Versionen**: Versionen, die bereits auf Ihrem System vorhanden sind.
|
||||
- **Standard-Version**: Die globale PHP-Version, die normalerweise für CLI verwendet wird (z. B. in einem Terminal).
|
||||
- **Neustart-Verzögerung**: Multi-PHP startet PHP-FPM automatisch neu, wenn Einstellungen geändert werden.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ PHP-Erweiterungsmanager
|
||||
|
||||
Jede PHP-Version in Multi-PHP wird mit ihrem eigenen Erweiterungsmanager geliefert. Sie müssen die `php.ini` für gängige Aufgaben nicht mehr manuell bearbeiten.
|
||||
|
||||
### Verwendung des Managers:
|
||||
1. **Erweiterung auswählen**: Finden Sie Ihre gewünschte Erweiterung (z. B. `mysql`, `gd`, `zip`).
|
||||
2. **Umschalten**: Klicken Sie, um die Erweiterung zu aktivieren oder zu deaktivieren.
|
||||
3. **Anwenden**: Multi-PHP wird die `php.ini`-Datei für Sie aktualisieren und den Dienst der Version automatisch neu starten.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Manuelle Bearbeitung der `php.ini`
|
||||
|
||||
Wenn Sie mehr Kontrolle über Ihre PHP-Konfiguration benötigen, verwenden Sie den integrierten **RAW EDITOR**.
|
||||
|
||||
1. **Editor öffnen**: Greifen Sie über die Schaltfläche im Erweiterungsfenster auf den Editor zu.
|
||||
2. **Speichern & Neustarten**: Klicken Sie auf "Speichern und Neustarten", um Änderungen sofort anzuwenden.
|
||||
3. **Suchen & Ersetzen**: Verwenden Sie die Suchfunktion, um spezifische Variablen wie `memory_limit` oder `max_execution_time` zu finden.
|
||||
|
||||
> [!TIP]
|
||||
> Sie können auch das Werkzeug **"Server Tuning"** im Menü "Tools" verwenden, um gängige PHP-Leistungseinstellungen schnell anzupassen, ohne Code-Dateien manuell bearbeiten zu müssen.
|
||||
|
||||
### 📖 Nächste Schritte
|
||||
- [Lernen Sie, wie Sie MariaDB-Datenbanken verwalten](./database.md)
|
||||
- [Webserver konfigurieren](./web-servers.md)
|
||||
- [Systemintegration](./settings.md)
|
||||
@@ -0,0 +1,42 @@
|
||||
# Virtuelle Hosts & Projektmanagement
|
||||
|
||||
Die Verwaltung Ihrer lokalen PHP-Projekte in Multi-PHP ist einfach und effektiv. Unsere Plattform übernimmt automatisch die Konfiguration der virtuellen Hosts für Sie.
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Ihr erstes Projekt hinzufügen
|
||||
|
||||
Um ein neues Projekt hinzuzufügen, navigieren Sie zum Tab **"Meine Projekte"** und klicken Sie auf die Schaltfläche **"Neues Projekt hinzufügen"**.
|
||||
|
||||
### Zu füllende Felder:
|
||||
- **Projektname**: Ein aussagekräftiger Name für Ihr lokales Projekt.
|
||||
- **Projektpfad**: Der absolute Pfad zu Ihrem Projektordner.
|
||||
- **Host / Domain**: Die zu verwendende lokale Domain (z.B. `test-site.local`).
|
||||
- **PHP-Version**: Wählen Sie, welche PHP-FPM-Version dieses Projekt ausführen soll.
|
||||
- **MariaDB-Version**: Wählen Sie die MariaDB-Version aus (Standard: Aktuellste).
|
||||
- **Servertyp**: Entscheiden Sie sich zwischen **Nginx** (Modern, Hochleistung) oder **Apache** (Unterstützt `.htaccess`).
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Projekte verwalten
|
||||
|
||||
Jedes Projekt in Ihrer Liste hat eine Reihe von Aktionen:
|
||||
1. **Dateisystem durchsuchen**: Öffnen Sie schnell Ihren Projektordner.
|
||||
2. **Im Browser öffnen**: Öffnen Sie Ihre lokale Domain in Ihrem Standardbrowser.
|
||||
3. **Server konfigurieren**: Bearbeiten Sie spezifische Nginx/Apache-Konfigurationen nur für dieses Projekt.
|
||||
4. **Projekteinstellungen bearbeiten**: Ändern Sie PHP-Version, Servertyp oder Projektpfade.
|
||||
5. **Projekt löschen**: Entfernen Sie es aus der Liste (Dateien werden nicht gelöscht).
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Automatische virtuelle Hosts
|
||||
|
||||
Das Konfigurationsmodul von Multi-PHP generiert automatisch die erforderlichen Dateien für die virtuellen Hosts von Nginx und Apache. Wenn Sie die Dienste starten, sind alle Ihre lokalen Domains bekannt.
|
||||
|
||||
> [!WARNING]
|
||||
> Sie müssen möglicherweise die **`hosts`**-Datei Ihres Systems manuell bearbeiten, wenn Sie benutzerdefinierte Domains wie `.local` oder `.dev` verwenden. Multi-PHP versucht sein Bestes, dies zu verwalten, aber einige Systemberechtigungen erfordern möglicherweise manuelles Eingreifen.
|
||||
|
||||
### 📖 Nächste Schritte
|
||||
- [PHP-Versionen und Erweiterungen konfigurieren](./php.md)
|
||||
- [MariaDB-Datenbanken verwalten](./database.md)
|
||||
- [Systemintegration](./settings.md)
|
||||
@@ -0,0 +1,43 @@
|
||||
# Systemeinstellungen & CLI-Integration
|
||||
|
||||
Multi-PHP bietet eine robuste Möglichkeit, Ihre lokale Entwicklungsumgebung direkt in die Befehlszeile Ihres Betriebssystems zu integrieren.
|
||||
|
||||
---
|
||||
|
||||
## 💻 CLI & System-PATH-Integration
|
||||
|
||||
Greifen Sie direkt von jedem Terminalfenster (CMD, PowerShell) auf Ihre PHP- und MariaDB-Binärdateien zu.
|
||||
|
||||
### CLI-Zugriff einrichten:
|
||||
1. Navigieren Sie zu `Einstellungen > CLI & Umgebungsvariablen`.
|
||||
2. Aktivieren Sie die **"System-PATH-Integration"**.
|
||||
3. Wählen Sie Ihre **"Standard-PHP-Version"** (das ist die Version, die ausgeführt wird, wenn Sie `php` in ein Terminal eingeben).
|
||||
4. Wählen Sie Ihre **"Standard-MariaDB-Version"** (für die Befehle `mysql` und `mariadb`).
|
||||
5. Klicken Sie auf **"Befehle synchronisieren"**, um Änderungen zu übernehmen.
|
||||
|
||||
### Generierte Befehle (Aliase):
|
||||
Multi-PHP erstellt und verwaltet automatisch versionsspezifische Befehle für Sie:
|
||||
- `php83`: Löst das PHP 8.3-Binary aus.
|
||||
- `php74`: Löst das PHP 7.4-Binary aus.
|
||||
- `mysql`: Löst den Standard-MariaDB-Client aus.
|
||||
|
||||
---
|
||||
|
||||
## 🛰️ Port-Management & Fernzugriff
|
||||
|
||||
Jeder Web- und Datenbankserver hat seine eigenen Port-Einstellungen in `Einstellungen > Allgemein`.
|
||||
|
||||
- **Nginx- & Apache-Ports**: Standardmäßig 80, kann aber auf 8080 oder 8888 geändert werden.
|
||||
- **MariaDB-Port**: Standardmäßig 3306.
|
||||
- **PHP-FPM-Port**: Standardmäßig 9000.
|
||||
- **Fernzugriff erlauben**: Wenn aktiviert, lauscht die Software auf `0.0.0.0`, sodass andere Geräte in Ihrem lokalen Netzwerk auf Ihre Entwicklungs-Websites zugreifen können.
|
||||
|
||||
---
|
||||
|
||||
> [!WARNING]
|
||||
> Sie müssen Ihre **Terminalfenster neu starten** (CMD, PowerShell), damit die PATH-Änderungen nach dem Klicken auf "Befehle synchronisieren" wirksam werden.
|
||||
|
||||
### 📖 Nächste Schritte
|
||||
- [Lernen Sie die Datenbankverwaltung kennen](./database.md)
|
||||
- [Fortgeschrittene Systemwerkzeuge](./tools.md)
|
||||
- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md)
|
||||
@@ -0,0 +1,45 @@
|
||||
# Erweiterte Werkzeuge & Überwachung
|
||||
|
||||
Multi-PHP geht über die reine Bereitstellung von PHP-Projekten hinaus und bietet eine umfassende Palette an Diagnose- und Leistungsoptimierungswerkzeugen.
|
||||
|
||||
---
|
||||
|
||||
## 🚦 Dienstprotokolle & Aktivitätsverfolgung
|
||||
|
||||
Greifen Sie im Menü **"Dienst-Log"** auf Live- und Verlaufs-Protokolle für alle Dienste zu.
|
||||
|
||||
### Protokollierte Ereignisse:
|
||||
- **Dienststarts/-stopps**: Sehen Sie genau, wann jeder Server gestartet oder gestoppt wurde.
|
||||
- **Dienstfehler**: Erhalten Sie detaillierte Fehlermeldungen, wenn ein Dienst abstürzt oder nicht startet.
|
||||
- **Aktivitätsdiagramm**: Eine visuelle Darstellung der Dienstverfügbarkeit im Zeitverlauf.
|
||||
- **Ereignis-Protokoll**: Ein detaillierter, zeilenweiser Verlauf jeder dienstbezogenen Aktion.
|
||||
|
||||
---
|
||||
|
||||
## 🎛️ Servertuning & Leistung
|
||||
|
||||
Optimieren Sie Ihre Umgebung mit **"Servertuning"** für verschiedene Arten von Entwicklungsaufgaben.
|
||||
|
||||
### Änderbare Parameter:
|
||||
- **PHP-Gesamtspeicher**: Erhöhen Sie den `memory_limit` für ressourcenintensive Skripte.
|
||||
- **Max. Ausführungszeit**: Ermöglichen Sie langwierige lokale Operationen.
|
||||
- **Max. Upload-Größe**: Erhöhen Sie Dateigrößenlimits für Formulare.
|
||||
- **MariaDB-Verbindungen**: Legen Sie Concurrent-Client-Limits fest.
|
||||
- **InnoDB-Pufferpool**: Passen Sie die Datenbankleistung basierend auf Ihrem System-RAM an.
|
||||
|
||||
---
|
||||
|
||||
## 🗃️ phpMyAdmin-Installation
|
||||
|
||||
Wenn Sie kein anderes Datenbank-GUI verwenden, bietet Multi-PHP eine Ein-Klick-Installation für **phpMyAdmin**.
|
||||
|
||||
- **Schnellinstallation**: Multi-PHP lädt die neueste Version von phpMyAdmin automatisch herunter und konfiguriert sie.
|
||||
- **Einfache Integration**: Zugänglich über Ihren virtuellen Host als `localhost/phpmyadmin` oder über eine spezielle "ÖFFNEN"-Schaltfläche.
|
||||
|
||||
> [!TIP]
|
||||
> Verwenden Sie die Schaltfläche **"Aktualisieren"**, um sicherzustellen, dass Sie die aktuellsten Dienstinformationen sehen.
|
||||
|
||||
### 📖 Nächste Schritte
|
||||
- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md)
|
||||
- [Lernen Sie die MariaDB-Datenbankverwaltung kennen](./database.md)
|
||||
- [PHP-Versionen und Erweiterungen konfigurieren](./php.md)
|
||||
@@ -0,0 +1,46 @@
|
||||
# Fehlerbehebung & Häufig gestellte Fragen
|
||||
|
||||
Häufige Probleme, auf die Sie bei der Verwendung von Multi-PHP stoßen könnten, und wie Sie diese beheben können.
|
||||
|
||||
---
|
||||
|
||||
## 🚫 Dienst lässt sich nicht starten
|
||||
|
||||
Dies wird oft durch **Port-Konflikte** mit anderer Software verursacht.
|
||||
|
||||
- **Nginx & Apache (Port 80/443)**: Überprüfen Sie, ob Skype, IIS oder eine andere XAMPP/WAMP-Umgebung läuft und Port 80 verendet.
|
||||
- **MariaDB (Port 3306)**: Überprüfen Sie, ob Sie eine bestehende MySQL- oder MariaDB-Installation haben, die bereits ausgeführt wird.
|
||||
- **Lösung**: Gehen Sie zu `Einstellungen > Allgemein` und ändern Sie den betroffenen Port in etwas anderes (z. B. Nginx auf 8080 oder MariaDB auf 3307).
|
||||
|
||||
---
|
||||
|
||||
## ❌ PHP-Fehler: "No input file specified"
|
||||
|
||||
Dies bedeutet normalerweise, dass Nginx oder Apache die PHP-Dateien Ihres Projekts nicht finden kann.
|
||||
|
||||
- **Projektpfad überprüfen**: Überprüfen Sie, ob der Projektpfad in "Meine Projekte" korrekt ist.
|
||||
- **Abschließender Schrägstrich**: Stellen Sie sicher, dass Ihr Projektpfad nicht mit einem extra Schrägstrich endet, es sei denn, dies ist erforderlich.
|
||||
- **Dienste neu starten**: Versuchen Sie, alle Dienste zu stoppen und erneut zu starten.
|
||||
|
||||
---
|
||||
|
||||
## 🔒 403 Forbidden (Zugriff verweigert)
|
||||
|
||||
Berechtigungs- oder Konfigurationsprobleme können den Zugriff auf Ihre lokale Website blockieren.
|
||||
|
||||
- **Indexdatei fehlt**: Stellen Sie sicher, dass Ihr Projektordner eine `index.php` oder `index.html` enthält.
|
||||
- **Nginx-Konfiguration**: Wenn Sie Nginx verwenden, überprüfen Sie die projektspezifische Konfiguration auf manuelle `deny`-Regeln.
|
||||
- **Verzeichnisauflistung**: Standardmäßig erlaubt Multi-PHP die Verzeichnisauflistung. Wenn dies blockiert ist, müssen Sie eine Indexdatei haben.
|
||||
|
||||
---
|
||||
|
||||
## 💻 CLI-Befehle (php, mysql) funktionieren nicht
|
||||
|
||||
- **PATH nicht aktualisiert**: Sie müssen in den CLI-Einstellungen auf "Befehle synchronisieren" klicken.
|
||||
- **Terminal-Fenster**: Schließen Sie Ihr Terminal (CMD, PowerShell) und öffnen Sie es erneut, damit die Änderungen wirksam werden.
|
||||
- **Integration prüfen**: Stellen Sie sicher, dass der Schalter "System-PATH-Integration" auf EIN steht.
|
||||
|
||||
---
|
||||
|
||||
> [!TIP]
|
||||
> Wenn Sie weiterhin Probleme haben, überprüfen Sie die **"Dienst-Logs"** auf detaillierte Fehlermeldungen der PHP-, Nginx- oder MariaDB-Binärdateien.
|
||||
@@ -0,0 +1,40 @@
|
||||
# Webserver: Nginx vs. Apache
|
||||
|
||||
Multi-PHP lässt Sie den richtigen Webserver für jedes Ihrer Projekte auswählen oder einen globalen Standard festlegen.
|
||||
|
||||
---
|
||||
|
||||
## 🌩️ Einen Webserver auswählen
|
||||
|
||||
Sie können für jedes Ihrer Projekte in den **"Meine Projekte"**-Einstellungen zwischen Nginx und Apache wechseln.
|
||||
|
||||
- **Nginx**: Leichtgewichtig, leistungsstark und Standard für die moderne Webentwicklung.
|
||||
- **Apache**: Traditionell, robust und unterstützt nativ `.htaccess`-Dateien für fein abgestimmte Konfigurationen.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Globales Konfigurationsmanagement
|
||||
|
||||
Jeder Server verfügt über eine eigene Hauptkonfigurationsdatei, in der Sie Ports, Worker-Prozesse und globale Einstellungen verwalten können.
|
||||
|
||||
### Nginx-Konfiguration (`nginx.conf`)
|
||||
- **Konfiguration testen**: Verwenden Sie die Schaltfläche "Konfiguration testen", um Ihre Änderungen zu überprüfen, ohne den Server neu zu starten.
|
||||
- **Speichern & Neu laden**: Wenden Sie Konfigurationsänderungen sofort an.
|
||||
|
||||
### Apache-Konfiguration (`httpd.conf`)
|
||||
- **Hauptserver-Einstellungen**: Konfigurieren Sie globale Basisverzeichnisse, Modulaktivierungen und Standard-Ports.
|
||||
- **HTAccess-Unterstützung**: Wenn Apache aktiv ist, liest er automatisch `.htaccess`-Dateien in Ihren Projektordnern.
|
||||
|
||||
---
|
||||
|
||||
## 📁 Gemeinsame Server-Assets
|
||||
|
||||
Multi-PHP bietet vorkonfigurierte, professionelle Designs für **Index von** (Verzeichnisauflistungen) und **Fehlerseiten** (404, 500). Diese sind sowohl in Nginx als auch in Apache konsistent.
|
||||
|
||||
> [!WARNING]
|
||||
> Das Bearbeiten globaler Konfigurationsdateien kann den Start Ihrer Server verhindern. Verwenden Sie immer das Werkzeug **"Konfiguration testen"**, bevor Sie Änderungen übernehmen.
|
||||
|
||||
### 📖 Nächste Schritte
|
||||
- [Lernen Sie, wie Sie CLI und Systemintegration verwalten](./settings.md)
|
||||
- [Fortgeschrittene Systemwerkzeuge](./tools.md)
|
||||
- [Fehlerbehebung bei häufigen Problemen](./troubleshooting.md)
|
||||
@@ -0,0 +1,46 @@
|
||||
# MariaDB Database Management
|
||||
|
||||
Multi-PHP provides a comprehensive toolset for managing MariaDB databases, from GUI-based wizards to deep process monitoring.
|
||||
|
||||
---
|
||||
|
||||
## 📊 Database & User Management
|
||||
|
||||
Multi-PHP gives you easy access to creating and managing MySQL/MariaDB databases and users:
|
||||
|
||||
- **Create Database**: Quickly create a new database with its own name.
|
||||
- **Manage Users**: Create new database users, set passwords, and manage permissions.
|
||||
- **List Databases**: View all existing databases and their usage statistics.
|
||||
|
||||
---
|
||||
|
||||
## 🧙 MariaDB Import & Export Wizards
|
||||
|
||||
Our intelligent wizards take the complexity out of moving data:
|
||||
|
||||
### **Import Wizard (SQL/Archive)**
|
||||
- Select a `.sql`, `.zip`, or `.sql.gz` file.
|
||||
- Choose your target MariaDB server and database.
|
||||
- Multi-PHP handles the rest, automatically extracting files and importing data into the chosen DB.
|
||||
|
||||
### **Export Wizard (Backup)**
|
||||
- Select the database you want to export.
|
||||
- Choose if you want to compress the file using Gzip (`.gz`).
|
||||
- Save the file to your desired location.
|
||||
|
||||
---
|
||||
|
||||
## 🕒 MariaDB Process Monitor
|
||||
|
||||
Monitor your database's activity in real time. Our Process Monitor shows:
|
||||
- **Active Connections**: Who is currently connected to the database.
|
||||
- **SQL Queries**: The exact SQL being executed and how long it's taking.
|
||||
- **Kill Processes**: Instantly terminate any stuck or problematic database connections.
|
||||
|
||||
> [!TIP]
|
||||
> Need a more traditional web-based interface? Go to the **"Tools"** menu and install **phpMyAdmin** with just one click.
|
||||
|
||||
### 📖 Next Steps
|
||||
- [Learn how to manage Nginx & Apache Servers](./web-servers.md)
|
||||
- [Manage CLI and System Integration](./settings.md)
|
||||
- [Troubleshooting Common Issues](./troubleshooting.md)
|
||||
@@ -0,0 +1,39 @@
|
||||
# Introduction & Quick Start
|
||||
|
||||
Welcome to **Multi-PHP**, the all-in-one local development environment for Windows. This guide will walk you through the first steps and help you get your environment up and running.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
Follow these steps to get started with your first PHP project:
|
||||
|
||||
1. **Launch Multi-PHP**: Open the application from your desktop or start menu.
|
||||
2. **Dashboard Overview**: On your first launch, you'll see the Dashboard. This is your control center for all services.
|
||||
3. **Download PHP**: Go to `Settings > PHP Versions` and download at least one PHP version (e.g., PHP 8.3).
|
||||
4. **Start Services**: Click the **"Start All"** button on the Dashboard to launch Nginx/Apache and MariaDB.
|
||||
5. **Create a Project**: Navigate to the **"My Projects"** tab and add your first project folder.
|
||||
|
||||
---
|
||||
|
||||
## 🏢 Core Components
|
||||
|
||||
Multi-PHP bundles several essential tools for modern web development:
|
||||
|
||||
| Component | Description |
|
||||
| :--- | :--- |
|
||||
| **PHP-FPM** | High-performance FastCGI process manager for PHP. |
|
||||
| **Nginx** | Modern, lightweight, and fast web server. |
|
||||
| **Apache** | Robust, traditional web server with `.htaccess` support. |
|
||||
| **MariaDB** | The community-developed, commercially supported fork of MySQL. |
|
||||
| **phpMyAdmin** | Web interface for easy database management. |
|
||||
|
||||
---
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Some services might fail to start if their default ports (80, 3306) are already being used by other applications (like Skype or another XAMPP installation). Check the **"Settings"** to change these ports if needed.
|
||||
|
||||
### 📖 Next Steps
|
||||
- [Learn how to manage Projects](./projects.md)
|
||||
- [Configure PHP Versions & Extensions](./php.md)
|
||||
- [Manage MariaDB Databases](./database.md)
|
||||
@@ -0,0 +1,43 @@
|
||||
# PHP Versions & Extensions Management
|
||||
|
||||
Multi-PHP makes it easy to switch, configure, and manage different PHP environments for your projects.
|
||||
|
||||
---
|
||||
|
||||
## 🔩 Managing PHP Versions
|
||||
|
||||
Navigate to `Settings > PHP Versions` to download, select, and manage multiple PHP versions.
|
||||
|
||||
- **Available Versions**: List of all PHP versions available for download.
|
||||
- **Downloaded Versions**: Versions already present on your system.
|
||||
- **Default Version**: The global PHP version typically used for CLI (e.g., in a terminal).
|
||||
- **Restart Delay**: Multi-PHP automatically restarts PHP-FPM when settings change.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ PHP Extension Manager
|
||||
|
||||
Every PHP version in Multi-PHP comes with its own extension manager. You don't need to manually edit `php.ini` for common tasks anymore.
|
||||
|
||||
### Using the Manager:
|
||||
1. **Select Extension**: Find your desired extension (e.g., `mysql`, `gd`, `zip`).
|
||||
2. **Toggle**: Click to enable or disable the extension.
|
||||
3. **Apply**: Multi-PHP will update the `php.ini` file for you and restart the version's service automatically.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Raw Editing of `php.ini`
|
||||
|
||||
If you need fine-grained control over your PHP configuration, use the built-in **RAW EDITOR**.
|
||||
|
||||
1. **Open Editor**: Access the editor button in the extensions window.
|
||||
2. **Save & Restart**: Click "Save and Restart" to apply changes immediately.
|
||||
3. **Search & Replace**: Use the search functionality to find specific variables like `memory_limit` or `max_execution_time`.
|
||||
|
||||
> [!TIP]
|
||||
> You can also use the **"Server Tuning"** tool under the "Tools" menu to quickly adjust common PHP performance settings without manually editing code files.
|
||||
|
||||
### 📖 Next Steps
|
||||
- [Learn how to manage MariaDB Databases](./database.md)
|
||||
- [Configure Web Servers](./web-servers.md)
|
||||
- [System Integration](./settings.md)
|
||||
@@ -0,0 +1,42 @@
|
||||
# Virtual Hosts & Project Management
|
||||
|
||||
Managing your local PHP projects in Multi-PHP is simple and effective. Our platform automatically handles virtual host configuration for you.
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Adding Your First Project
|
||||
|
||||
To add a new project, navigate to the **"My Projects"** tab and click on the **"Add New Project"** button.
|
||||
|
||||
### Fields to Fill:
|
||||
- **Project Name**: A descriptive name for your local project.
|
||||
- **Project Path**: The absolute path to your project folder.
|
||||
- **Host / Domain**: The local domain to use (e.g., `test-site.local`).
|
||||
- **PHP Version**: Choose which PHP-FPM version will run this project.
|
||||
- **MariaDB Version**: Choose the MariaDB version to use (Default: Latest).
|
||||
- **Server Type**: Decide between **Nginx** (Modern, High-performance) or **Apache** (Supports `.htaccess`).
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Managing Projects
|
||||
|
||||
Each project in your list has a set of actions:
|
||||
1. **Browse File System**: Quickly open your project folder.
|
||||
2. **Open in Browser**: Open your local domain in your default browser.
|
||||
3. **Configure Server**: Edit specific Nginx/Apache configs just for this project.
|
||||
4. **Edit Project Settings**: Change PHP version, server type, or project paths.
|
||||
5. **Delete Project**: Remove it from the list (does not delete files).
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Automatic Virtual Hosts
|
||||
|
||||
Multi-PHP's configuration engine automatically generates the necessary virtual host files for Nginx and Apache. When you start the services, they will be aware of all your local domains.
|
||||
|
||||
> [!WARNING]
|
||||
> You may need to edit your system's **`hosts`** file manually if you are using custom domains like `.local` or `.dev`. Multi-PHP tries its best to manage this, but some system permissions may require manual intervention.
|
||||
|
||||
### 📖 Next Steps
|
||||
- [Configure PHP Versions & Extensions](./php.md)
|
||||
- [Manage MariaDB Databases](./database.md)
|
||||
- [System Integration](./settings.md)
|
||||
@@ -0,0 +1,43 @@
|
||||
# System Settings & CLI Integration
|
||||
|
||||
Multi-PHP provides a robust way to integrate your local development environment directly into your operating system's command line.
|
||||
|
||||
---
|
||||
|
||||
## 💻 CLI & System PATH Integration
|
||||
|
||||
Access your PHP and MariaDB binaries directly from any terminal window (CMD, PowerShell).
|
||||
|
||||
### Setting Up CLI Access:
|
||||
1. Navigate to `Settings > CLI & Environment Variables`.
|
||||
2. Enable **"System PATH Integration"**.
|
||||
3. Choose your **"Default PHP Version"** (this is what runs when you type `php` in a terminal).
|
||||
4. Choose your **"Default MariaDB Version"** (for `mysql` and `mariadb` commands).
|
||||
5. Click **"Sync Commands"** to apply changes.
|
||||
|
||||
### Generated Commands (Aliases):
|
||||
Multi-PHP automatically creates and manages version-specific commands for you:
|
||||
- `php83`: Triggers PHP 8.3 binary.
|
||||
- `php74`: Triggers PHP 7.4 binary.
|
||||
- `mysql`: Triggers default MariaDB client.
|
||||
|
||||
---
|
||||
|
||||
## 🛰️ Port Management & Remote Access
|
||||
|
||||
Each web and database server has its own port settings in `Settings > General`.
|
||||
|
||||
- **Nginx & Apache Ports**: Defaults to 80, but can be changed to 8080 or 8888.
|
||||
- **MariaDB Port**: Defaults to 3306.
|
||||
- **PHP-FPM Port**: Defaults to 9000.
|
||||
- **Allow Remote Access**: When enabled, the software listens on `0.0.0.0` allowing other devices on your local network to access your development sites.
|
||||
|
||||
---
|
||||
|
||||
> [!WARNING]
|
||||
> You must **restart your terminal windows** (CMD, PowerShell) for the PATH changes to take effect after clicking "Sync Commands".
|
||||
|
||||
### 📖 Next Steps
|
||||
- [Learn about Database Management](./database.md)
|
||||
- [System Advanced Tools](./tools.md)
|
||||
- [Troubleshooting Common Issues](./troubleshooting.md)
|
||||
@@ -0,0 +1,45 @@
|
||||
# Advanced Tools & Monitoring
|
||||
|
||||
Multi-PHP goes beyond just serving PHP projects, providing a comprehensive set of diagnostic and performance tuning tools.
|
||||
|
||||
---
|
||||
|
||||
## 🚦 Service Logs & Activity Tracking
|
||||
|
||||
Access live and historical logs for all services in the **"Service Logs"** menu.
|
||||
|
||||
### Tracked Events:
|
||||
- **Service Starts/Stops**: View when exactly each server was launched or stopped.
|
||||
- **Service Errors**: Get detailed error messages if a service crashes or fails to start.
|
||||
- **Activity Chart**: A visual representation of service availability over time.
|
||||
- **Event Log**: A detailed, row-by-row history of every service-related action.
|
||||
|
||||
---
|
||||
|
||||
## 🎛️ Server Tuning & Performance
|
||||
|
||||
Fine-tune your environment for different types of development tasks using **"Server Tuning"**.
|
||||
|
||||
### Modifiable Parameters:
|
||||
- **PHP Total Memory**: Increase `memory_limit` for heavy scripts.
|
||||
- **Max Execution Time**: Allow long-running local operations.
|
||||
- **Max Upload Size**: Increase file size limits for forms.
|
||||
- **MariaDB Connections**: Set the concurrent client limits.
|
||||
- **InnoDB Buffer Pool**: Tailor database performance based on your system RAM.
|
||||
|
||||
---
|
||||
|
||||
## 🗃️ phpMyAdmin Installation
|
||||
|
||||
If you don't use another database GUI, Multi-PHP offers a one-click **phpMyAdmin** installation.
|
||||
|
||||
- **Fast Install**: Multi-PHP downloads and configures the latest phpMyAdmin automatically.
|
||||
- **Easy Integration**: Accessible via your virtual host as `localhost/phpmyadmin` or a dedicated "OPEN" button.
|
||||
|
||||
> [!TIP]
|
||||
> Use the **"Refresh"** button to ensure you are viewing the most up-to-date service information.
|
||||
|
||||
### 📖 Next Steps
|
||||
- [Troubleshooting Common Issues](./troubleshooting.md)
|
||||
- [How to manage MariaDB Databases](./database.md)
|
||||
- [Configure PHP Versions & Extensions](./php.md)
|
||||
@@ -0,0 +1,46 @@
|
||||
# Troubleshooting & Frequently Asked Questions
|
||||
|
||||
Common issues you might encounter while using Multi-PHP and how to fix them.
|
||||
|
||||
---
|
||||
|
||||
## 🚫 Service Fails to Start
|
||||
|
||||
This is often caused by **port conflicts** with other software.
|
||||
|
||||
- **Nginx & Apache (Port 80/443)**: Check if Skype, IIS, or another XAMPP/WAMP environment is running and using Port 80.
|
||||
- **MariaDB (Port 3306)**: Check if you have an existing MySQL or MariaDB installation running.
|
||||
- **Solution**: Go to `Settings > General` and change the conflicting port to something else (e.g., Change Nginx to 8080 or MariaDB to 3307).
|
||||
|
||||
---
|
||||
|
||||
## ❌ PHP Error: "No input file specified"
|
||||
|
||||
This usually means Nginx or Apache cannot find your project's PHP files.
|
||||
|
||||
- **Verify Project Path**: Check if the project path in "My Projects" is correct.
|
||||
- **Trailing Slash**: Ensure your project path doesn't end with an extra trailing slash unless necessary.
|
||||
- **Restart Services**: Try stopping all services and starting them again.
|
||||
|
||||
---
|
||||
|
||||
## 🔒 403 Forbidden Access
|
||||
|
||||
Permissions or configuration issues can block access to your local site.
|
||||
|
||||
- **Index File Missing**: Ensure your project folder contains an `index.php` or `index.html`.
|
||||
- **Nginx Config**: If using Nginx, check the project-specific configuration for any manual `deny` rules.
|
||||
- **Directory Indexing**: By default, Multi-PHP allows directory indexing. If it's blocked, you must have an index file.
|
||||
|
||||
---
|
||||
|
||||
## 💻 CLI Commands (php, mysql) Not Working
|
||||
|
||||
- **PATH Not Updated**: You must click "Sync Commands" in the CLI settings.
|
||||
- **Terminal Window**: Close and reopen your terminal (CMD, PowerShell) for the changes to take effect.
|
||||
- **Check Integration**: Ensure the "System PATH Integration" toggle is ON.
|
||||
|
||||
---
|
||||
|
||||
> [!TIP]
|
||||
> If you're still having trouble, check the **"Service Logs"** for detailed error messages from the PHP, Nginx, or MariaDB binaries.
|
||||
@@ -0,0 +1,40 @@
|
||||
# Web Servers: Nginx vs. Apache
|
||||
|
||||
Multi-PHP lets you choose the right web server for each of your projects or set a global default.
|
||||
|
||||
---
|
||||
|
||||
## 🌩️ Choosing a Web Server
|
||||
|
||||
You can switch between Nginx and Apache for any of your projects in the **"My Projects"** settings.
|
||||
|
||||
- **Nginx**: Lightweight, high-performance, and standard for modern web development.
|
||||
- **Apache**: Traditional, robust, and supports native `.htaccess` files for fine-grained configuration.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Global Configuration Management
|
||||
|
||||
Each server has its own main configuration file where you can manage ports, worker processes, and global settings.
|
||||
|
||||
### Nginx Configuration (`nginx.conf`)
|
||||
- **Test Config**: Use the "Test Configuration" button to verify your changes without restarting the server.
|
||||
- **Save & Reload**: Apply configuration changes instantly.
|
||||
|
||||
### Apache Configuration (`httpd.conf`)
|
||||
- **Main Server Settings**: Configure global document roots, module activation, and standard ports.
|
||||
- **HTAccess Support**: When Apache is active, it automatically reads `.htaccess` files in your project folders.
|
||||
|
||||
---
|
||||
|
||||
## 📁 Shared Server Assets
|
||||
|
||||
Multi-PHP comes with pre-configured, professional designs for **Index of** (directory listings) and **Error Pages** (404, 500). These are consistent across both Nginx and Apache.
|
||||
|
||||
> [!WARNING]
|
||||
> Editing global configuration files can prevent your servers from starting. Always use the **"Test Configuration"** tool before applying changes.
|
||||
|
||||
### 📖 Next Steps
|
||||
- [Learn how to manage CLI and System Integration](./settings.md)
|
||||
- [System Advanced Tools](./tools.md)
|
||||
- [Troubleshooting Common Issues](./troubleshooting.md)
|
||||
@@ -0,0 +1,46 @@
|
||||
# MariaDB Veritabanı Yönetimi
|
||||
|
||||
Multi-PHP, GUI tabanlı sihirbazlardan derin süreç izlemeye kadar MariaDB veritabanlarını yönetmek için kapsamlı bir araç seti sunar.
|
||||
|
||||
---
|
||||
|
||||
## 📊 Veritabanı ve Kullanıcı Yönetimi
|
||||
|
||||
Multi-PHP, MySQL/MariaDB veritabanlarını ve kullanıcılarını kolayca oluşturmanızı ve yönetmenizi sağlar:
|
||||
|
||||
- **Veritabanı Oluştur**: Kendi adıyla hızlıca yeni bir veritabanı oluşturun.
|
||||
- **Kullanıcıları Yönet**: Yeni veritabanı kullanıcıları oluşturun, şifre belirleyin ve izinleri yönetin.
|
||||
- **Veritabanlarını Listele**: Mevcut tüm veritabanlarını ve kullanım istatistiklerini görüntüleyin.
|
||||
|
||||
---
|
||||
|
||||
## 🧙 MariaDB İçe ve Dışa Aktarma Sihirbazları
|
||||
|
||||
Akıllı sihirbazlarımız veri taşıma işleminin karmaşıklığını ortadan kaldırır:
|
||||
|
||||
### **İçe Aktarma Sihirbazı (SQL/Arşiv)**
|
||||
- Bir `.sql`, `.zip` veya `.sql.gz` dosyası seçin.
|
||||
- Hedef MariaDB sunucunuzu ve veritabanınızı seçin.
|
||||
- Multi-PHP gerisini halleder, dosyaları otomatik olarak ayıklar ve verileri seçilen DB'ye aktarır.
|
||||
|
||||
### **Dışa Aktarma Sihirbazı (Yedekleme)**
|
||||
- Dışa aktarmak istediğiniz veritabanını seçin.
|
||||
- Dosyayı Gzip (`.gz`) kullanarak sıkıştırmak isteyip istemediğinizi seçin.
|
||||
- Dosyayı istediğiniz konuma kaydedin.
|
||||
|
||||
---
|
||||
|
||||
## 🕒 MariaDB Süreç İzleyici
|
||||
|
||||
Veritabanınızın etkinliğini gerçek zamanlı olarak izleyin. Süreç İzleyicimiz şunları gösterir:
|
||||
- **Aktif Bağlantılar**: Şu anda veritabanına kimlerin bağlı olduğu.
|
||||
- **SQL Sorguları**: Çalıştırılan tam SQL ve ne kadar sürdüğü.
|
||||
- **Süreçleri Sonlandır**: Takılan veya sorunlu veritabanı bağlantılarını anında sonlandırın.
|
||||
|
||||
> [!TIP]
|
||||
> Daha geleneksel bir web tabanlı arayüze mi ihtiyacınız var? **"Araçlar"** menüsüne gidin ve tek bir tıklamayla **phpMyAdmin**'i kurun.
|
||||
|
||||
### 📖 Sonraki Adımlar
|
||||
- [Nginx ve Apache Sunucularını Yönetmeyi Öğrenin](./web-servers.md)
|
||||
- [CLI ve Sistem Entegrasyonunu Yönetin](./settings.md)
|
||||
- [Yaygın Sorunları Giderme](./troubleshooting.md)
|
||||
@@ -0,0 +1,39 @@
|
||||
# Giriş ve Hızlı Başlangıç
|
||||
|
||||
Windows için hepsi bir arada yerel geliştirme ortamı olan **Multi-PHP**'ye hoş geldiniz. Bu kılavuz, ilk adımlarınızda size yol gösterecek ve ortamınızı kurup çalıştırmanıza yardımcı olacaktır.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Hızlı Başlangıç
|
||||
|
||||
İlk PHP projenize başlamak için bu adımları izleyin:
|
||||
|
||||
1. **Multi-PHP'yi Başlatın**: Uygulamayı masaüstünden veya başlat menüsünden açın.
|
||||
2. **Kontrol Paneli Özeti**: İlk açılışta Kontrol Panelini göreceksiniz. Burası tüm servisleriniz için kontrol merkezinizdir.
|
||||
3. **PHP İndirin**: `Ayarlar > PHP Versiyonları` bölümüne gidin ve en az bir PHP versiyonu (ör. PHP 8.3) indirin.
|
||||
4. **Servisleri Başlatın**: Nginx/Apache ve MariaDB'yi başlatmak için Kontrol Panelindeki **"Hepsini Başlat"** düğmesine tıklayın.
|
||||
5. **Proje Oluşturun**: **"Projelerim"** sekmesine gidin ve ilk proje klasörünüzü ekleyin.
|
||||
|
||||
---
|
||||
|
||||
## 🏢 Temel Bileşenler
|
||||
|
||||
Multi-PHP, modern web geliştirme için birkaç temel aracı bir araya getirir:
|
||||
|
||||
| Bileşen | Açıklama |
|
||||
| :--- | :--- |
|
||||
| **PHP-FPM** | PHP için yüksek performanslı FastCGI süreç yöneticisi. |
|
||||
| **Nginx** | Modern, hafif ve hızlı web sunucusu. |
|
||||
| **Apache** | `.htaccess` desteğine sahip, sağlam, geleneksel web sunucusu. |
|
||||
| **MariaDB** | MySQL'in topluluk tarafından geliştirilen, ticari olarak desteklenen çatalı. |
|
||||
| **phpMyAdmin** | Kolay veritabanı yönetimi için web arayüzü. |
|
||||
|
||||
---
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Varsayılan portları (80, 3306) başka uygulamalar (Skype veya başka bir XAMPP kurulumu gibi) tarafından kullanılıyorsa servislerin başlatılması başarısız olabilir. Gerekirse bu portları değiştirmek için **"Ayarlar"**ı kontrol edin.
|
||||
|
||||
### 📖 Sonraki Adımlar
|
||||
- [Projeleri Nasıl Yöneteceğinizi Öğrenin](./projects.md)
|
||||
- [PHP Versiyonlarını ve Eklentilerini Yapılandırın](./php.md)
|
||||
- [MariaDB Veritabanlarını Yönetin](./database.md)
|
||||
@@ -0,0 +1,43 @@
|
||||
# PHP Versiyonları ve Eklentileri Yönetimi
|
||||
|
||||
Multi-PHP, projeleriniz için farklı PHP ortamlarını kolayca değiştirmenize, yapılandırmanıza ve yönetmenize olanak tanır.
|
||||
|
||||
---
|
||||
|
||||
## 🔩 PHP Versiyonlarını Yönetme
|
||||
|
||||
Gereken PHP versiyonlarını indirmek, seçmek ve yönetmek için `Ayarlar > PHP Versiyonları` bölümüne gidin.
|
||||
|
||||
- **Kullanılabilir Versiyonlar**: İndirilmeye hazır tüm PHP versiyonlarının listesi.
|
||||
- **İndirilen Versiyonlar**: Sisteminizde yüklü olan versiyonlar.
|
||||
- **Varsayılan Versiyon**: CLI (ör. terminal) için kullanılan genel PHP versiyonu.
|
||||
- **Yeniden Başlatma Gecikmesi**: Ayarlar değiştiğinde Multi-PHP, PHP-FPM'yi otomatik olarak yeniden başlatır.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ PHP Eklenti Yöneticisi
|
||||
|
||||
Multi-PHP'deki her PHP versiyonu kendi eklenti yöneticisiyle birlikte gelir. Artık yaygın görevler için `php.ini` dosyasını manuel olarak düzenlemenize gerek yok.
|
||||
|
||||
### Yöneticinin Kullanımı:
|
||||
1. **Eklentiyi Seçin**: İstediğiniz eklentiyi bulun (ör. `mysql`, `gd`, `zip`).
|
||||
2. **Değiştir**: Eklentiyi etkinleştirmek veya devre dışı bırakmak için tıklayın.
|
||||
3. **Uygula**: Multi-PHP, `php.ini` dosyasını sizin için güncelleyecek ve ilgili servisi otomatik olarak yeniden başlatacaktır.
|
||||
|
||||
---
|
||||
|
||||
## 📝 `php.ini` Dosyasını Manuel Düzenleme
|
||||
|
||||
PHP yapılandırmanız üzerinde ince ayar yapmanız gerekirse, yerleşik **RAW EDİTÖR**'ü kullanın.
|
||||
|
||||
1. **Editörü Açın**: Eklentiler penceresindeki editör düğmesine erişin.
|
||||
2. **Kaydet ve Yeniden Başlat**: Değişiklikleri anında uygulamak için "Kaydet ve Yeniden Başlat" düğmesine tıklayın.
|
||||
3. **Bul ve Değiştir**: `memory_limit` veya `max_execution_time` gibi belirli değişkenleri bulmak için arama işlevini kullanın.
|
||||
|
||||
> [!TIP]
|
||||
> `php.ini` dosyalarını manuel olarak düzenlemek zorunda kalmadan yaygın PHP performans ayarlarını hızlıca yapmak için "Araçlar" menüsü altındaki **"Sunucu Ayarlaması"** aracını da kullanabilirsiniz.
|
||||
|
||||
### 📖 Sonraki Adımlar
|
||||
- [MariaDB Veritabanlarını Yönetmeyi Öğrenin](./database.md)
|
||||
- [Web Sunucularını Yapılandırın](./web-servers.md)
|
||||
- [Sistem Entegrasyonu](./settings.md)
|
||||
@@ -0,0 +1,42 @@
|
||||
# Sanal Host ve Proje Yönetimi
|
||||
|
||||
Multi-PHP'de yerel PHP projelerinizi yönetmek basit ve etkilidir. Platformumuz sizin için sanal host yapılandırmasını otomatik olarak yönetir.
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ İlk Projenizi Ekleyin
|
||||
|
||||
Yeni bir proje eklemek için **"Projelerim"** sekmesine gidin ve **"Yeni Proje Ekle"** düğmesine tıklayın.
|
||||
|
||||
### Doldurulacak Alanlar:
|
||||
- **Proje Adı**: Yerel projeniz için açıklayıcı bir ad.
|
||||
- **Proje Yolu**: Proje klasörünüzün mutlak yolu.
|
||||
- **Host / Domain**: Kullanılacak yerel alan adı (örneğin, `test-site.local`).
|
||||
- **PHP Versiyonu**: Bu projeyi çalıştıracak PHP-FPM versiyonunu seçin.
|
||||
- **MariaDB Versiyonu**: Kullanılacak MariaDB versiyonunu seçin (Varsayılan: En Son).
|
||||
- **Sunucu Tipi**: **Nginx** (Modern, Yüksek Performans) veya **Apache** (`.htaccess` destekler) arasında karar verin.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Projeleri Yönetme
|
||||
|
||||
Listenizdeki her projenin bir dizi eylemi vardır:
|
||||
1. **Dosya Sistemi Gözat**: Proje klasörünüzü hızlıca açın.
|
||||
2. **Tarayıcıda Aç**: Yerel alan adınızı varsayılan tarayıcınızda açın.
|
||||
3. **Sunucuyu Yapılandır**: Yalnızca bu proje için özel Nginx/Apache konfigürasyonlarını düzenleyin.
|
||||
4. **Proje Ayarlarını Düzenle**: PHP versiyonunu, sunucu tipini veya proje yollarını değiştirin.
|
||||
5. **Projeyi Sil**: Listeden kaldırın (dosyaları silmez).
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Otomatik Sanal Hostlar
|
||||
|
||||
Multi-PHP'nin yapılandırma motoru, Nginx ve Apache için gerekli sanal host dosyalarını otomatik olarak oluşturur. Servisleri başlattığınızda, tüm yerel alan adlarınızdan haberdar olurlar.
|
||||
|
||||
> [!WARNING]
|
||||
> `.local` veya `.dev` gibi özel alan adları kullanıyorsanız sisteminizin **`hosts`** dosyasını manuel olarak düzenlemeniz gerekebilir. Multi-PHP bunu yönetmek için elinden geleni yapar, ancak bazı sistem izinleri manuel müdahale gerektirebilir.
|
||||
|
||||
### 📖 Sonraki Adımlar
|
||||
- [PHP Versiyonlarını ve Eklentilerini Yapılandırın](./php.md)
|
||||
- [MariaDB Veritabanlarını Yönetin](./database.md)
|
||||
- [Sistem Entegrasyonu](./settings.md)
|
||||
@@ -0,0 +1,43 @@
|
||||
# Sistem Ayarları ve CLI Entegrasyonu
|
||||
|
||||
Multi-PHP, yerel geliştirme ortamınızı doğrudan işletim sisteminizin komut satırına entegre etmenin sağlam bir yolunu sunar.
|
||||
|
||||
---
|
||||
|
||||
## 💻 CLI ve Sistem PATH Entegrasyonu
|
||||
|
||||
Herhangi bir terminal penceresinden (CMD, PowerShell) PHP ve MariaDB ikili dosyalarına doğrudan erişin.
|
||||
|
||||
### CLI Erişimini Kurma:
|
||||
1. `Ayarlar > CLI ve Ortam Değişkenleri` bölümüne gidin.
|
||||
2. **"Sistem PATH Entegrasyonu"** seçeneğini etkinleştirin.
|
||||
3. **"Varsayılan PHP Versiyonu"**nu seçin (terminale `php` yazdığınızda bu versiyon çalışır).
|
||||
4. **"Varsayılan MariaDB Versiyonu"**nu seçin (`mysql` ve `mariadb` komutları için).
|
||||
5. Değişiklikleri uygulamak için **"Komutları Senkronize Et"** düğmesine tıklayın.
|
||||
|
||||
### Oluşturulan Komutlar (Takma Adlar):
|
||||
Multi-PHP sizin için versiyona özel komutları otomatik olarak oluşturur ve yönetir:
|
||||
- `php83`: PHP 8.3 ikili dosyasını tetikler.
|
||||
- `php74`: PHP 7.4 ikili dosyasını tetikler.
|
||||
- `mysql`: Varsayılan MariaDB istemcisini tetikler.
|
||||
|
||||
---
|
||||
|
||||
## 🛰️ Port Yönetimi ve Uzaktan Erişim
|
||||
|
||||
Her web ve veritabanı sunucusunun `Ayarlar > Genel` bölümünde kendi port ayarları vardır.
|
||||
|
||||
- **Nginx ve Apache Portları**: Varsayılan olarak 80'dir, ancak 8080 veya 8888 olarak değiştirilebilir.
|
||||
- **MariaDB Portu**: Varsayılan olarak 3306'dır.
|
||||
- **PHP-FPM Portu**: Varsayılan olarak 9000'dir.
|
||||
- **Uzaktan Erişime İzin Ver**: Etkinleştirildiğinde, yazılım `0.0.0.0` adresini dinleyerek yerel ağınızdaki diğer cihazların geliştirme sitelerinize erişmesine olanak tanır.
|
||||
|
||||
---
|
||||
|
||||
> [!WARNING]
|
||||
> "Komutları Senkronize Et" düğmesine tıkladıktan sonra PATH değişikliklerinin etkili olması için **terminal pencerelerini (CMD, PowerShell) yeniden başlatmanız** gerekir.
|
||||
|
||||
### 📖 Sonraki Adımlar
|
||||
- [Veritabanı Yönetimi Hakkında Bilgi Edinin](./database.md)
|
||||
- [Gelişmiş Sistem Araçları](./tools.md)
|
||||
- [Yaygın Sorunları Giderme](./troubleshooting.md)
|
||||
@@ -0,0 +1,45 @@
|
||||
# Gelişmiş Araçlar ve İzleme
|
||||
|
||||
Multi-PHP, sadece PHP projelerini sunmakla kalmaz, aynı zamanda kapsamlı bir tanılama ve performans ayarlama araçları seti sunar.
|
||||
|
||||
---
|
||||
|
||||
## 🚦 Servis Kayıtları ve Etkinlik İzleme
|
||||
|
||||
**"Servis Logları"** menüsünden tüm servisler için canlı ve geçmiş kayıtlara erişin.
|
||||
|
||||
### İzlenen Etkinlikler:
|
||||
- **Servis Başlatma/Durdurma**: Her sunucunun tam olarak ne zaman başlatıldığını veya durdurulduğunu görün.
|
||||
- **Servis Hataları**: Bir servis çökerse veya başlatılamazsa ayrıntılı hata mesajları alın.
|
||||
- **Etkinlik Grafiği**: Servislerin zaman içindeki kullanılabilirliğinin görsel temsili.
|
||||
- **Olay Günlüğü**: Servisle ilgili her eylemin ayrıntılı, satır satır geçmişi.
|
||||
|
||||
---
|
||||
|
||||
## 🎛️ Sunucu Ayarı ve Performans
|
||||
|
||||
**"Sunucu Ayarlaması"** seçeneğini kullanarak farklı geliştirme görevleri türleri için ortamınıza ince ayar yapın.
|
||||
|
||||
### Değiştirilebilir Parametreler:
|
||||
- **Toplam PHP Belleği**: Ağır betikler için `memory_limit` değerini artırın.
|
||||
- **Maksimum Çalışma Süresi**: Uzun süren yerel işlemler için izin verin.
|
||||
- **Maksimum Yükleme Boyutu**: Formlar için dosya boyutu sınırlarını artırın.
|
||||
- **MariaDB Bağlantıları**: Eşzamanlı istemci sınırlarını belirleyin.
|
||||
- **InnoDB Arabellek Havuzu**: Veritabanı performansını sistem RAM'inize göre uyarlayın.
|
||||
|
||||
---
|
||||
|
||||
## 🗃️ phpMyAdmin Kurulumu
|
||||
|
||||
Başka bir veritabanı GUI'si kullanmıyorsanız, Multi-PHP tek tıkla **phpMyAdmin** kurulumu sunar.
|
||||
|
||||
- **Hızlı Kurulum**: Multi-PHP, en son phpMyAdmin sürümünü otomatik olarak indirir ve yapılandırır.
|
||||
- **Kolay Entegrasyon**: Sanal ana bilgisayarınız üzerinden `localhost/phpmyadmin` olarak veya özel bir "AÇ" düğmesiyle erişilebilir.
|
||||
|
||||
> [!TIP]
|
||||
> En güncel servis bilgilerini görüntülediğinizden emin olmak için **"Yenile"** düğmesini kullanın.
|
||||
|
||||
### 📖 Sonraki Adımlar
|
||||
- [Yaygın Sorunları Giderme](./troubleshooting.md)
|
||||
- [MariaDB Veritabanlarını Yönetme](./database.md)
|
||||
- [PHP Versiyonlarını ve Eklentilerini Yapılandırma](./php.md)
|
||||
@@ -0,0 +1,46 @@
|
||||
# Sorun Giderme ve Sıkça Sorulan Sorular
|
||||
|
||||
Multi-PHP kullanırken karşılaşabileceğiniz yaygın sorunlar ve bunların nasıl düzeltileceği.
|
||||
|
||||
---
|
||||
|
||||
## 🚫 Servis Başlatılamadı
|
||||
|
||||
Bu durum genellikle diğer yazılımlarla olan **port çakışmalarından** kaynaklanır.
|
||||
|
||||
- **Nginx ve Apache (Port 80/443)**: Skype, IIS veya başka bir XAMPP/WAMP ortamının çalışıp çalışmadığını ve Port 80'i kullanıp kullanmadığını kontrol edin.
|
||||
- **MariaDB (Port 3306)**: Mevcut bir MySQL veya MariaDB kurulumunun çalışıp çalışmadığını kontrol edin.
|
||||
- **Çözüm**: `Ayarlar > Genel` bölümüne gidin ve çakışan portu başka bir numara ile değiştirin (örneğin, Nginx'i 8080 veya MariaDB'yi 3307 olarak değiştirin).
|
||||
|
||||
---
|
||||
|
||||
## ❌ PHP Hatası: "No input file specified"
|
||||
|
||||
Bu genellikle Nginx veya Apache'nin projenizin PHP dosyalarını bulamadığı anlamına gelir.
|
||||
|
||||
- **Proje Yolunu Doğrulayın**: "Projelerim"deki proje yolunun doğru olup olmadığını kontrol edin.
|
||||
- **Sondaki Eğik Çizgi**: Proje yolunuzun gerekli olmadıkça fazladan bir eğik çizgi ile bitmediğinden emin olun.
|
||||
- **Servisleri Yeniden Başlatın**: Tüm servisleri durdurup yeniden başlatmayı deneyin.
|
||||
|
||||
---
|
||||
|
||||
## 🔒 403 Erişim Engellendi
|
||||
|
||||
İzinler veya yapılandırma sorunları yerel sitenize erişimi engelleyebilir.
|
||||
|
||||
- **Dizin Dosyası Eksik**: Proje klasörünüzün bir `index.php` veya `index.html` dosyası içerdiğinden emin olun.
|
||||
- **Nginx Yapılandırması**: Nginx kullanıyorsanız, projeye özel yapılandırmada herhangi bir manuel `deny` kuralı olup olmadığını kontrol edin.
|
||||
- **Dizin Listeleme**: Varsayılan olarak Multi-PHP dizin listelemeye izin verir. Engellenmişse, bir dizin dosyanızın olması gerekir.
|
||||
|
||||
---
|
||||
|
||||
## 💻 CLI Komutları (php, mysql) Çalışmıyor
|
||||
|
||||
- **PATH Güncellenmedi**: CLI ayarlarında "Komutları Senkronize Et" düğmesine tıklamanız gerekir.
|
||||
- **Terminal Penceresi**: Değişikliklerin etkili olması için terminali (CMD, PowerShell) kapatıp yeniden açın.
|
||||
- **Entegrasyonu Kontrol Edin**: "Sistem PATH Entegrasyonu" anahtarının AÇIK olduğundan emin olun.
|
||||
|
||||
---
|
||||
|
||||
> [!TIP]
|
||||
> Hala sorun yaşıyorsanız, PHP, Nginx veya MariaDB ikili dosyalarından gelen ayrıntılı hata mesajları için **"Servis Logları"**nı kontrol edin.
|
||||
@@ -0,0 +1,40 @@
|
||||
# Web Sunucuları: Nginx ve Apache
|
||||
|
||||
Multi-PHP, her projeniz için doğru web sunucusunu seçmenize veya genel bir varsayılan belirlemenize olanak tanır.
|
||||
|
||||
---
|
||||
|
||||
## 🌩️ Web Sunucusu Seçme
|
||||
|
||||
**"Projelerim"** ayarlarında projelerinizden herhangi biri için Nginx ve Apache arasında geçiş yapabilirsiniz.
|
||||
|
||||
- **Nginx**: Hafif, yüksek performanslı ve modern web geliştirme için standart.
|
||||
- **Apache**: Geleneksel, sağlam ve ince ayarlı yapılandırma için yerel `.htaccess` dosyalarını destekler.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Genel Yapılandırma Yönetimi
|
||||
|
||||
Her sunucunun portları, işçi süreçlerini ve genel ayarları yönetebileceğiniz kendi ana yapılandırma dosyası vardır.
|
||||
|
||||
### Nginx Yapılandırması (`nginx.conf`)
|
||||
- **Yapılandırmayı Test Et**: Sunucuyu yeniden başlatmadan değişikliklerinizi doğrulamak için "Yapılandırmoyu Test Et" düğmesini kullanın.
|
||||
- **Kaydet ve Yeniden Yükle**: Yapılandırma değişikliklerini anında uygulayın.
|
||||
|
||||
### Apache Yapılandırması (`httpd.conf`)
|
||||
- **Ana Sunucu Ayarları**: Genel belge köklerini, modül etkinleştirmeyi ve standart portları yapılandırın.
|
||||
- **HTAccess Desteği**: Apache aktif olduğunda, proje klasörlerinizdeki `.htaccess` dosyalarını otomatik olarak okur.
|
||||
|
||||
---
|
||||
|
||||
## 📁 Paylaşılan Sunucu Varlıkları
|
||||
|
||||
Multi-PHP, **Dizin Listeleme** ve **Hata Sayfaları** (404, 500) için önceden yapılandırılmış, profesyonel tasarımlarla birlikte gelir. Bunlar hem Nginx hem de Apache'de tutarlıdır.
|
||||
|
||||
> [!WARNING]
|
||||
> Genel yapılandırma dosyalarını düzenlemek sunucularınızın başlatılmasını engelleyebilir. Değişiklikleri uygulamadan önce her zaman **"Yapılandırmayı Test Et"** aracını kullanın.
|
||||
|
||||
### 📖 Sonraki Adımlar
|
||||
- [CLI ve Sistem Entegrasyonunu Yönetmeyi Öğrenin](./settings.md)
|
||||
- [Gelişmiş Sistem Araçları](./tools.md)
|
||||
- [Yaygın Sorunları Giderme](./troubleshooting.md)
|
||||
@@ -1,4 +1,116 @@
|
||||
[
|
||||
{
|
||||
"service": "php:5.6.40",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "0imzcr0ru",
|
||||
"timestamp": 1775139195150
|
||||
},
|
||||
{
|
||||
"service": "php:7.4.33",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "a3suiqzqo",
|
||||
"timestamp": 1775139195131
|
||||
},
|
||||
{
|
||||
"service": "php:8.2.30",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "s8b0fw3hq",
|
||||
"timestamp": 1775139195111
|
||||
},
|
||||
{
|
||||
"service": "php:8.5.4",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "8anyke8nt",
|
||||
"timestamp": 1775139195091
|
||||
},
|
||||
{
|
||||
"service": "mariadb:11.4.2",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "l3vbh1jky",
|
||||
"timestamp": 1775139194727
|
||||
},
|
||||
{
|
||||
"service": "mariadb:10.11.8",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "bniky27me",
|
||||
"timestamp": 1775139194708
|
||||
},
|
||||
{
|
||||
"service": "apache",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "hbfkygvy4",
|
||||
"timestamp": 1775139194111
|
||||
},
|
||||
{
|
||||
"service": "nginx",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "jizdysmcy",
|
||||
"timestamp": 1775139194036
|
||||
},
|
||||
{
|
||||
"service": "php:5.6.40",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "8l4vynn1l",
|
||||
"timestamp": 1775138063111
|
||||
},
|
||||
{
|
||||
"service": "php:7.4.33",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "xv9bv5wn0",
|
||||
"timestamp": 1775138063090
|
||||
},
|
||||
{
|
||||
"service": "php:8.2.30",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "qt4g1hxsp",
|
||||
"timestamp": 1775138063070
|
||||
},
|
||||
{
|
||||
"service": "php:8.5.4",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "hmypljxer",
|
||||
"timestamp": 1775138063045
|
||||
},
|
||||
{
|
||||
"service": "mariadb:11.4.2",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "pdxlntvnt",
|
||||
"timestamp": 1775138062709
|
||||
},
|
||||
{
|
||||
"service": "mariadb:10.11.8",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "jwqo523of",
|
||||
"timestamp": 1775138062691
|
||||
},
|
||||
{
|
||||
"service": "apache",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "jna0y55ay",
|
||||
"timestamp": 1775138062055
|
||||
},
|
||||
{
|
||||
"service": "nginx",
|
||||
"action": "start",
|
||||
"status": "success",
|
||||
"id": "aig9pmtuw",
|
||||
"timestamp": 1775138061973
|
||||
},
|
||||
{
|
||||
"service": "php:5.6.40",
|
||||
"action": "start",
|
||||
|
||||
+62
-8
@@ -366,14 +366,6 @@ export function registerIpcHandlers(): void {
|
||||
return { success: false, message: 'Bu servis için reload desteklenmiyor.' }
|
||||
})
|
||||
|
||||
ipcMain.handle('services:get-events', async () => {
|
||||
return serviceEventLogger.getEvents()
|
||||
})
|
||||
|
||||
ipcMain.handle('services:clear-events', async () => {
|
||||
serviceEventLogger.clear()
|
||||
return { success: true }
|
||||
})
|
||||
|
||||
ipcMain.handle('services:start', async (_event, serviceName: string) => {
|
||||
try {
|
||||
@@ -1192,6 +1184,68 @@ export function registerIpcHandlers(): void {
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.handle('docs:open-user-guide', async (_event, locale: string) => {
|
||||
try {
|
||||
const guidePath = path.join(process.cwd(), 'docs', 'user-guide', locale, 'index.md')
|
||||
if (fs.existsSync(guidePath)) {
|
||||
await shell.openPath(guidePath)
|
||||
return { success: true }
|
||||
} else {
|
||||
// Fallback to directory or English if specific locale file doesn't exist
|
||||
const langDir = path.join(process.cwd(), 'docs', 'user-guide', locale)
|
||||
if (fs.existsSync(langDir)) {
|
||||
await shell.openPath(langDir)
|
||||
return { success: true }
|
||||
}
|
||||
throw new Error(`Kullanım kılavuzu bulunamadı: ${locale}`)
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error('Failed to open user guide:', error)
|
||||
return { success: false, message: error.message }
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.handle('docs:list-topics', async (_event, locale: string) => {
|
||||
try {
|
||||
const localeDir = path.join(process.cwd(), 'docs', 'user-guide', locale)
|
||||
if (!fs.existsSync(localeDir)) return []
|
||||
|
||||
const files = fs.readdirSync(localeDir).filter(f => f.endsWith('.md'))
|
||||
const topics = files.map(file => {
|
||||
const fullPath = path.join(localeDir, file)
|
||||
const content = fs.readFileSync(fullPath, 'utf8')
|
||||
const firstLine = content.split('\n')[0]
|
||||
const title = firstLine.replace(/^#\s*/, '').trim() || file
|
||||
return { file, title }
|
||||
})
|
||||
|
||||
// Reorder so index.md is first
|
||||
const indexIdx = topics.findIndex(t => t.file === 'index.md')
|
||||
if (indexIdx > -1) {
|
||||
const index = topics.splice(indexIdx, 1)[0]
|
||||
topics.unshift(index)
|
||||
}
|
||||
|
||||
return topics
|
||||
} catch (error: any) {
|
||||
console.error('Failed to list topics:', error)
|
||||
return []
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.handle('docs:read-topic', async (_event, { locale, file }) => {
|
||||
try {
|
||||
const filePath = path.join(process.cwd(), 'docs', 'user-guide', locale, file)
|
||||
if (fs.existsSync(filePath)) {
|
||||
return fs.readFileSync(filePath, 'utf8')
|
||||
}
|
||||
throw new Error(`Dosya bulunamadı: ${file}`)
|
||||
} catch (error: any) {
|
||||
console.error('Failed to read topic:', error)
|
||||
return ''
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.handle('services:clear-events', async () => {
|
||||
try {
|
||||
serviceEventLogger.clear()
|
||||
|
||||
@@ -80,7 +80,8 @@ import {
|
||||
Restore as ResetIcon,
|
||||
Search as SearchIcon,
|
||||
Tune as TuningIcon,
|
||||
History as HistoryIcon
|
||||
History as HistoryIcon,
|
||||
MenuBook as GuideIcon
|
||||
} from '@mui/icons-material'
|
||||
import Swal from 'sweetalert2'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
@@ -93,6 +94,7 @@ import ApacheCodeEditor from './components/ApacheCodeEditor'
|
||||
import PhpExtensionManager from './components/PhpExtensionManager'
|
||||
import ServerTuning from './components/ServerTuning'
|
||||
import ServiceEventMonitor from './components/ServiceEventMonitor'
|
||||
import UserGuide from './components/UserGuide'
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
@@ -1137,6 +1139,12 @@ function App(): JSX.Element {
|
||||
</List>
|
||||
<Divider />
|
||||
<List>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton selected={activeTab === 'user_guide'} onClick={() => setActiveTab('user_guide')}>
|
||||
<ListItemIcon><GuideIcon color={activeTab === 'user_guide' ? 'primary' : 'inherit'} /></ListItemIcon>
|
||||
<ListItemText primary={t('common.user_guide')} />
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton selected={activeTab === 'settings'} onClick={() => setActiveTab('settings')}>
|
||||
<ListItemIcon><SettingsIcon color={activeTab === 'settings' ? 'primary' : 'inherit'} /></ListItemIcon>
|
||||
@@ -1159,6 +1167,7 @@ function App(): JSX.Element {
|
||||
{activeTab === 'tuning' && <ServerTuning />}
|
||||
{activeTab === 'db_manager' && <MariaDbDatabaseManager versions={mariaDbVersions} />}
|
||||
{activeTab === 'event_monitor' && <ServiceEventMonitor />}
|
||||
{activeTab === 'user_guide' && <UserGuide />}
|
||||
{activeTab === 'settings' && (
|
||||
<Box>
|
||||
|
||||
|
||||
@@ -0,0 +1,355 @@
|
||||
import { useState, useEffect } from 'react'
|
||||
import {
|
||||
Box,
|
||||
Typography,
|
||||
Paper,
|
||||
List,
|
||||
ListItem,
|
||||
ListItemButton,
|
||||
ListItemText,
|
||||
Alert,
|
||||
AlertTitle,
|
||||
Grid,
|
||||
Breadcrumbs,
|
||||
Link,
|
||||
CircularProgress
|
||||
} from '@mui/material'
|
||||
import {
|
||||
MenuBook as GuideIcon,
|
||||
ChevronRight as ChevronRightIcon,
|
||||
Info as InfoIcon,
|
||||
Lightbulb as TipIcon,
|
||||
ReportProblem as WarningIcon,
|
||||
PriorityHigh as CautionIcon
|
||||
} from '@mui/icons-material'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import Prism from 'prismjs'
|
||||
|
||||
interface Topic {
|
||||
file: string
|
||||
title: string
|
||||
}
|
||||
|
||||
const UserGuide = () => {
|
||||
const { t, i18n } = useTranslation()
|
||||
const [topics, setTopics] = useState<Topic[]>([])
|
||||
const [selectedTopic, setSelectedTopic] = useState<string>('index.md')
|
||||
const [content, setContent] = useState<string>('')
|
||||
const [loading, setLoading] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
const fetchTopics = async () => {
|
||||
const list = await window.api.invoke('docs:list-topics', i18n.language)
|
||||
setTopics(list)
|
||||
if (list.length > 0 && !selectedTopic) {
|
||||
setSelectedTopic(list[0].file)
|
||||
}
|
||||
}
|
||||
fetchTopics()
|
||||
}, [i18n.language])
|
||||
|
||||
useEffect(() => {
|
||||
const fetchContent = async () => {
|
||||
if (!selectedTopic) return
|
||||
setLoading(true)
|
||||
const text = await window.api.invoke('docs:read-topic', {
|
||||
locale: i18n.language,
|
||||
file: selectedTopic
|
||||
})
|
||||
setContent(text)
|
||||
setLoading(false)
|
||||
// Re-highlight code snippets after content is set
|
||||
setTimeout(() => Prism.highlightAll(), 50)
|
||||
}
|
||||
fetchContent()
|
||||
}, [selectedTopic, i18n.language])
|
||||
|
||||
const renderMarkdown = (text: string) => {
|
||||
if (!text) return null
|
||||
|
||||
// Simple Markdown Parser (Line by Line)
|
||||
const lines = text.split('\n')
|
||||
const elements: JSX.Element[] = []
|
||||
let currentList: JSX.Element[] = []
|
||||
let inCodeBlock = false
|
||||
let codeContent = ''
|
||||
let codeLang = ''
|
||||
let inAlert = false
|
||||
let alertType: 'info' | 'warning' | 'error' | 'success' = 'info'
|
||||
let alertTitle = ''
|
||||
let alertLines: string[] = []
|
||||
|
||||
const flushList = () => {
|
||||
if (currentList.length > 0) {
|
||||
elements.push(
|
||||
<Box component="ul" key={`list-${elements.length}`} sx={{ pl: 3, mb: 2 }}>
|
||||
{currentList}
|
||||
</Box>
|
||||
)
|
||||
currentList = []
|
||||
}
|
||||
}
|
||||
|
||||
const flushAlert = () => {
|
||||
if (inAlert) {
|
||||
const Icon = alertType === 'warning' ? WarningIcon :
|
||||
alertType === 'error' ? CautionIcon :
|
||||
alertType === 'info' ? InfoIcon : TipIcon
|
||||
|
||||
elements.push(
|
||||
<Alert
|
||||
severity={alertType}
|
||||
key={`alert-${elements.length}`}
|
||||
sx={{ my: 2, '& .MuiAlert-icon': { alignItems: 'center' } }}
|
||||
icon={<Icon />}
|
||||
>
|
||||
{alertTitle && <AlertTitle sx={{ fontWeight: 'bold' }}>{alertTitle}</AlertTitle>}
|
||||
{alertLines.map((line, i) => (
|
||||
<Typography key={i} variant="body2" sx={{ mb: i === alertLines.length - 1 ? 0 : 0.5 }}>
|
||||
{parseInline(line)}
|
||||
</Typography>
|
||||
))}
|
||||
</Alert>
|
||||
)
|
||||
inAlert = false
|
||||
alertLines = []
|
||||
alertTitle = ''
|
||||
}
|
||||
}
|
||||
|
||||
const parseInline = (line: string) => {
|
||||
// Very simple inline parser for bold and raw code
|
||||
let parts = line.split(/(\*\*.*?\*\*|`.*?`)/)
|
||||
return parts.map((part, i) => {
|
||||
if (part.startsWith('**') && part.endsWith('**')) {
|
||||
return <strong key={i}>{part.slice(2, -2)}</strong>
|
||||
}
|
||||
if (part.startsWith('`') && part.endsWith('`')) {
|
||||
return <code key={i} style={{ backgroundColor: 'rgba(255,255,255,0.05)', padding: '2px 4px', borderRadius: 4 }}>{part.slice(1, -1)}</code>
|
||||
}
|
||||
return part
|
||||
})
|
||||
}
|
||||
|
||||
lines.forEach((line, index) => {
|
||||
const trimmedLine = line.trim()
|
||||
|
||||
// Code blocks
|
||||
if (trimmedLine.startsWith('```')) {
|
||||
if (inCodeBlock) {
|
||||
elements.push(
|
||||
<Paper
|
||||
key={`code-${index}`}
|
||||
variant="outlined"
|
||||
sx={{
|
||||
bgcolor: '#0d1117',
|
||||
p: 2,
|
||||
mb: 2,
|
||||
overflow: 'auto',
|
||||
borderColor: 'rgba(255,255,255,0.1)'
|
||||
}}
|
||||
>
|
||||
<pre style={{ margin: 0 }}>
|
||||
<code className={`language-${codeLang || 'plaintext'}`}>
|
||||
{codeContent.trim()}
|
||||
</code>
|
||||
</pre>
|
||||
</Paper>
|
||||
)
|
||||
inCodeBlock = false
|
||||
codeContent = ''
|
||||
codeLang = ''
|
||||
} else {
|
||||
flushList()
|
||||
flushAlert()
|
||||
inCodeBlock = true
|
||||
codeLang = trimmedLine.slice(3).trim()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if (inCodeBlock) {
|
||||
codeContent += line + '\n'
|
||||
return
|
||||
}
|
||||
|
||||
// Alerts [!TIP], etc.
|
||||
const alertMatch = trimmedLine.match(/^>\s*\[!(TIP|WARNING|IMPORTANT|NOTE|CAUTION)\]/)
|
||||
if (alertMatch) {
|
||||
flushList()
|
||||
flushAlert()
|
||||
inAlert = true
|
||||
const type = alertMatch[1]
|
||||
alertType = type === 'WARNING' || type === 'CAUTION' ? 'warning' :
|
||||
type === 'IMPORTANT' ? 'error' :
|
||||
type === 'TIP' ? 'success' : 'info'
|
||||
alertTitle = type
|
||||
return
|
||||
}
|
||||
|
||||
if (inAlert) {
|
||||
if (trimmedLine.startsWith('>') || trimmedLine === '') {
|
||||
const content = trimmedLine.replace(/^>\s*/, '')
|
||||
if (content) alertLines.push(content)
|
||||
return
|
||||
} else {
|
||||
flushAlert()
|
||||
}
|
||||
}
|
||||
|
||||
// Headers
|
||||
if (trimmedLine.startsWith('#')) {
|
||||
flushList()
|
||||
flushAlert()
|
||||
const level = trimmedLine.match(/^#+/)?.[0].length || 1
|
||||
const content = trimmedLine.replace(/^#+\s*/, '')
|
||||
const variant = level === 1 ? 'h4' : level === 2 ? 'h5' : 'h6'
|
||||
elements.push(
|
||||
<Typography
|
||||
key={index}
|
||||
variant={variant}
|
||||
sx={{
|
||||
mt: level === 1 ? 0 : 4,
|
||||
mb: 2,
|
||||
fontWeight: level === 1 ? 800 : 700,
|
||||
color: level === 1 ? 'primary.light' : '#fff',
|
||||
borderBottom: level === 1 ? '1px solid rgba(255,255,255,0.1)' : 'none',
|
||||
pb: level === 1 ? 1 : 0
|
||||
}}
|
||||
>
|
||||
{parseInline(content)}
|
||||
</Typography>
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
// Lists
|
||||
if (trimmedLine.startsWith('- ') || trimmedLine.startsWith('* ')) {
|
||||
flushAlert()
|
||||
const content = trimmedLine.slice(2)
|
||||
currentList.push(
|
||||
<Box component="li" key={`li-${index}`} sx={{ mb: 1, color: 'rgba(255,255,255,0.9)' }}>
|
||||
<Typography variant="body2">{parseInline(content)}</Typography>
|
||||
</Box>
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
// Paragraphs
|
||||
if (trimmedLine === '') {
|
||||
flushList()
|
||||
flushAlert()
|
||||
return
|
||||
}
|
||||
|
||||
if (!inCodeBlock && !inAlert) {
|
||||
flushList()
|
||||
elements.push(
|
||||
<Typography
|
||||
key={index}
|
||||
variant="body1"
|
||||
sx={{
|
||||
mb: 2,
|
||||
lineHeight: 1.7,
|
||||
color: 'rgba(255,255,255,0.8)',
|
||||
fontSize: '0.95rem'
|
||||
}}
|
||||
>
|
||||
{parseInline(trimmedLine)}
|
||||
</Typography>
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
flushList()
|
||||
flushAlert()
|
||||
return elements
|
||||
}
|
||||
|
||||
return (
|
||||
<Box sx={{ height: 'calc(100vh - 120px)', display: 'flex', flexDirection: 'column' }}>
|
||||
{/* Breadcrumbs */}
|
||||
<Box sx={{ mb: 3, display: 'flex', alignItems: 'center', gap: 2 }}>
|
||||
<Breadcrumbs separator={<ChevronRightIcon sx={{ fontSize: '1rem', color: 'rgba(255,255,255,0.3)' }} />} aria-label="breadcrumb">
|
||||
<Link underline="hover" color="inherit" sx={{ display: 'flex', alignItems: 'center', color: 'rgba(255,255,255,0.5)', fontSize: '0.85rem' }}>
|
||||
<GuideIcon sx={{ mr: 0.5, fontSize: '1.1rem' }} />
|
||||
{t('common.user_guide')}
|
||||
</Link>
|
||||
<Typography color="primary.light" sx={{ fontSize: '0.85rem', fontWeight: 'bold' }}>
|
||||
{topics.find(t => t.file === selectedTopic)?.title || selectedTopic}
|
||||
</Typography>
|
||||
</Breadcrumbs>
|
||||
</Box>
|
||||
|
||||
<Grid container spacing={4} sx={{ flexGrow: 1, overflow: 'hidden' }}>
|
||||
{/* Topics Sidebar */}
|
||||
<Grid item xs={12} md={3} sx={{ height: '100%', overflowY: 'auto' }}>
|
||||
<Paper
|
||||
variant="outlined"
|
||||
sx={{
|
||||
bgcolor: 'rgba(255,255,255,0.02)',
|
||||
borderColor: 'rgba(255,255,255,0.05)',
|
||||
borderRadius: 3,
|
||||
overflow: 'hidden'
|
||||
}}
|
||||
>
|
||||
<Typography variant="overline" sx={{ px: 2, pt: 2, display: 'block', color: 'primary.main', fontWeight: 800 }}>
|
||||
{t('common.topics', 'KONULAR')}
|
||||
</Typography>
|
||||
<List sx={{ pt: 1 }}>
|
||||
{topics.map((topic) => (
|
||||
<ListItem key={topic.file} disablePadding>
|
||||
<ListItemButton
|
||||
selected={selectedTopic === topic.file}
|
||||
onClick={() => setSelectedTopic(topic.file)}
|
||||
sx={{
|
||||
py: 1.5,
|
||||
borderLeft: '3px solid',
|
||||
borderColor: selectedTopic === topic.file ? 'primary.main' : 'transparent',
|
||||
bgcolor: selectedTopic === topic.file ? 'rgba(57, 167, 255, 0.05)' : 'transparent',
|
||||
'&:hover': { bgcolor: 'rgba(255,255,255,0.05)' }
|
||||
}}
|
||||
>
|
||||
<ListItemText
|
||||
primary={topic.title}
|
||||
primaryTypographyProps={{
|
||||
variant: 'body2',
|
||||
fontWeight: selectedTopic === topic.file ? 700 : 500,
|
||||
color: selectedTopic === topic.file ? '#fff' : 'rgba(255,255,255,0.6)'
|
||||
}}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
))}
|
||||
</List>
|
||||
</Paper>
|
||||
</Grid>
|
||||
|
||||
{/* Content Viewer */}
|
||||
<Grid item xs={12} md={9} sx={{ height: '100%', overflowY: 'auto', pr: 2 }}>
|
||||
<Paper
|
||||
elevation={0}
|
||||
sx={{
|
||||
p: { xs: 3, md: 5 },
|
||||
bgcolor: 'rgba(0,0,0,0.2)',
|
||||
borderRadius: 4,
|
||||
minHeight: '100%',
|
||||
border: '1px solid rgba(255,255,255,0.03)',
|
||||
position: 'relative'
|
||||
}}
|
||||
>
|
||||
{loading ? (
|
||||
<Box sx={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '200px' }}>
|
||||
<CircularProgress size={30} />
|
||||
</Box>
|
||||
) : (
|
||||
renderMarkdown(content)
|
||||
)}
|
||||
</Paper>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
)
|
||||
}
|
||||
|
||||
export default UserGuide
|
||||
@@ -8,6 +8,7 @@
|
||||
"close": "Schließen",
|
||||
"quit": "Beenden",
|
||||
"save": "Speichern",
|
||||
"user_guide": "Benutzerhandbuch",
|
||||
"port": "Port",
|
||||
"all": "Alle",
|
||||
"export": "Exportieren",
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"close": "Close",
|
||||
"quit": "Quit",
|
||||
"save": "Save",
|
||||
"user_guide": "User Guide",
|
||||
"port": "Port",
|
||||
"all": "All",
|
||||
"export": "Export",
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"close": "Kapat",
|
||||
"quit": "Çıkış",
|
||||
"save": "Kaydet",
|
||||
"user_guide": "Kullanım Kılavuzu",
|
||||
"port": "Port",
|
||||
"all": "Tümü",
|
||||
"export": "Dışa Aktar",
|
||||
|
||||
Reference in New Issue
Block a user