PHP als service laufen lassen (win32_service.dll)

BugsBastard

Erfahrenes Mitglied
Hallo zusammen,

ich programmiere gerade per PHP ein bisschen an unserem Intranet rum und ich bin auf die Möglichkeit gestoßen, daß man per win32_service.dll eine PHP-Datei als Service laufen lassen kann.

Leider sind die Erklärungen die ich per Google zu diesem Feature gefunden habe nicht sehr erschöpfend. Ich habe es zwar hinbekommen daß ich eine PHP-Datei als Service starten kann, aber leider stoppt sie nicht mehr, nur wenn ich ein DIE da hineinprogrammiere. Auch über die Serviceansicht in Windows (klappt leider nur auf Windows-Servern wie der Name ja schon sagt) kann ich den Service zwar sehen aber weder löschen, starten noch stoppen.

Hat hier schon jemand erfahrung mit win32_service sowie den Funktionen win32_start_service und win32_stop_service gemacht und kann mir evtl. helfen?

Meine Dringensten Fragen sind:
Darf die Serviceerstellung (win32_create_service) die gleiche Datei sein wie der Service selber?

Muß ich eine andere Datei zum Starten/Stoppen programmieren? (mein Problem hier ist das er den Service nicht findet)

kennt jemand eine Seite wo dort ein komplettes tutorial (nicht nur ein paar Codeschnipsel sondern ein kompletter Quelltext mit allen benötigten Dateien) existiert?

Server ist windows 2003
PHP 5.2

Danke fürs lesen und evtuelle Hilfestellung :)

Gruss,

Bugs
 
Hi DjBergo,

das hatte ich auch gefunden :) hatte allerdings ein etwas größeres Problem diesen Service zu starten. Auch der Link zum Beispiel auf der Seite war fehlerhaft. Nun habe ich es aber geschafft :)

Um eine PHP-Datei als Service laufen zu lassen mache ich folgendes:
1. Die php_win32service.dll muß installiert werden in der PHP.ini
2. Nach der Installation muß die Service-Datei programmiert werden. Hier ein Link zu einem Beispiel:
http://viewcvs.php.net/viewvc.cgi/p...nt-type=text/vnd.viewcvs-markup&revision=HEAD
3. Zuerst muß diese Datei als Service installiert werden. Hierfür kopiert man die Datei in das PHP-Verzeichnis. Danach öffnet man die Dos-Konsole auf dem Server und führt folgenden Befehl aus (angenommen die Datei heißt service.php):
php service.php install
Dadurch wird der Service installiert und ist von da an auch im Servicemanager des Systems sichtbar.
4. Bedienen kann man den Service über den Servicemanager oder aber durch die folgenden Dos-Befehle:
net start dummyphp
net stop dummyphp
5. Deinstallieren des service funktioniert ähnlich wie das installieren über einen Dosbefehl:
Php service.php uninstall

Hilfe für die Services erhält man auf diesen Seiten:
http://www.Fehlercodes.com -> da kann man die Windows-Fehlercodes ansehen
http://netevil.org/blog/2005/sep/running-php-as-a-service-on-win32 -> ich glaube das ist der author der Klasse

Vielen Dank nochmal für die Hilfe,

Gruss,

Bugs
 
Zurück