feat: implement Nginx and PHP service management IPC handlers and add sweetalert2 dependency

This commit is contained in:
Ümit Tunç
2026-03-30 07:06:43 +03:00
parent 862364d4d8
commit bd566eea1c
6 changed files with 126 additions and 15 deletions
+21 -3
View File
@@ -120,7 +120,13 @@ export function registerIpcHandlers(): void {
}
const success = await processManager.startService('nginx', binPath, ['-p', nginxPrefix, '-c', configPath], false)
return { success, message: success ? 'Nginx başlatıldı.' : 'Nginx devreye alınamadı (Hata loglarını kontrol edin).' }
if (!success) {
const errorLogs = await processManager.getLastErrorLogs('nginx')
return { success: false, message: `Nginx başlatılamadı.\n\n${errorLogs.join('\n')}` }
}
return { success, message: success ? 'Nginx başlatıldı.' : 'Nginx devreye alınamadı.' }
}
if (serviceName.startsWith('php')) {
@@ -151,6 +157,12 @@ export function registerIpcHandlers(): void {
})
const success = await processManager.startService(serviceName, binPath, ['-b', `127.0.0.1:${phpPort}`, '-c', configPath], false)
if (!success) {
const errorLogs = await processManager.getLastErrorLogs(serviceName)
return { success: false, message: `${phpVersion || ''} PHP başlatılamadı.\n\n${errorLogs.join('\n')}` }
}
return { success, message: success ? `${phpVersion || ''} PHP başlatıldı.` : `${phpVersion || ''} PHP devreye alınamadı.` }
}
@@ -168,7 +180,9 @@ export function registerIpcHandlers(): void {
if (!binPath) return { success: false, message: 'MySQL executable bulunamadı. Lütfen indirin.' }
const mysqlPort = mysqlId ? (settings.mysqlPorts?.[mysqlId] || '3306') : settings.mysqlPort
const mysqlVersions = await mySqlManagerService.getVersions()
const mysqlInfo = mysqlVersions.find(v => v.id === mysqlId)
const mysqlPort = mysqlInfo?.port || (mysqlId ? '3306' : settings.mysqlPort)
// Force kill this specific version if running or generic mysql
await processManager.forceKillAll(serviceName)
@@ -214,8 +228,12 @@ export function registerIpcHandlers(): void {
// Quick health check for MySQL
await new Promise(r => setTimeout(r, 1500))
if (!processManager.isServiceRunning(serviceName)) {
return { success: false, message: `${mysqlVersion || ''} MySQL başlatıldı ancak çalışma hatası verdi. Lütfen logları ve port çakışmalarını kontrol edin.` }
const errorLogs = await processManager.getLastErrorLogs(serviceName)
return { success: false, message: `${mysqlVersion || ''} MySQL başlatıldı ancak çalışma hatası verdi (ExitCode: 1).\n\n${errorLogs.length > 0 ? 'Önemli Hata Logları:\n' + errorLogs.join('\n') : 'Lütfen log sekmesini kontrol edin.'}` }
}
} else {
const errorLogs = await processManager.getLastErrorLogs(serviceName)
return { success: false, message: `${mysqlVersion || ''} MySQL başlatılamadı.\n\n${errorLogs.join('\n')}` }
}
return { success, message: success ? `${mysqlVersion || ''} MySQL başlatıldı.` : `${mysqlVersion || ''} MySQL devreye alınamadı.` }