Hallo!
Ich bin in zwischen am verzweifeln. Ich habe mir für meinen localhost, also meine Entwicklungsumgebung, eine "Startseite" geschrieben, auf der auch verschiedene Optionen für Apache und MySQL angezeigt werden.
Unter anderem möchte ich eine Restartfunktion für Apache haben.
Ich habe also einen Link zur Apacherestatt.php eingefügt, welche so aussieht:
<html>
<head>
<link rel="stylesheet" class="text/css" href="special.css">
<link rel="stylesheet" class="text/css" href="tables.css">
<title>Apache restart</title>
</head>
<body>
<?php
include("design.inc.php");
popen("start /B prog.exe", 'r');
echo message("Bitte warten Sie einen Moment!","green");
?>
<br />
<a href="../">Zurück</a>
</body>
</html>
Die Datei "prog.exe" ruft nur eine .bat Datei auf, die ich aber irgendwie nicht direkt öffnen konnte (wegen absoluter Pfade...).
Diese batchdatei sieht so aus (Sorry für Pearl):
@ECHO OFF & SETLOCAL
PUSHD %~dp0
ECHO Now we restart Apache
xampp_cli.exe restart apache
POPD
PAUSE
Wenn ich diese Datei über den Explorer aufrufe oder die prog.exe manuell starte wird apache auch neugestartet. Doch über das PHP-SCript nicht. Es wird zwar die Meldung in der Bat Dateiausgegeben, dass Apache neugestartet wurde, doch ist der Apache-Dienst im TaskManager hinterher "Beendet" und lässt sich per Rechtsklick->Starten nicht starten. Führe ich die apache_start.bat oder die apache_restart.bat aus, klappt es wieder.
Woran kann das liegen?
Ich habe das Ganze auch schon mit exec probiert - Gleiches Problem...
Viele Grüße!