[PHP] Apache webbased herstarten onder Windows

Pagina: 1
Acties:
  • 169 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Geachte medetweakers,

Ik weet niet of mijn topictitel nu wel klopt en of dit het juiste forum er voor is, maar toch waag ik de poging.
Ik ben zo nu en dan bezig met wat probeersels (lees: testscriptjes) in PHP om Apache remotely opnieuw op te kunnen starten.
Nu ben ik er inmiddels wel achter dat niet vanuit PHP kan, daar PHP als module in Apache draait en Apache dan zich zelf natuurlijk niet kan afsluiten en/of starten.

Wat ik dus zoek is een tooltje á la Webmin, maar dan voor Windows. Een freeware tooltje dus dat draait als een soort deamon (servertje) waarin je webbased de status van Apache kunt zien en Apache kan starten, stoppen en herstarten.
Het mooiste zijn als ik hierin vrij eenvoudig de webpagina's naar eigen smaak kan veranderen. :)

Of zou het ook werken of verstandiger zijn om een ander klein webservertje te installeren dat ook PHP ondersteund?

Edit:
Naar aanleiding van een reactie van Scorpion1984:
Ik gebruik Apache 2.0.46 met PHP 4.3.3

[ Voor 7% gewijzigd door Joen op 02-02-2004 12:43 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Nu ben ik er inmiddels wel achter dat niet vanuit PHP kan, daar PHP als module in Apache draait en Apache dan zich zelf natuurlijk niet kan afsluiten en/of starten.
Waarom zou het niet kunnen?
Wat denk je van een .bat bestandje maken met daarin
code:
1
2
cd apachedir
Apache.exe -w -n "Apache" -k restart

en deze aanroepen met exec("blaat.bat").

[ Voor 6% gewijzigd door Verwijderd op 01-02-2004 01:29 ]


Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Als ik dat al had geprobeerd en dat werkte dan had ik de vraga niet gesteld.
Jouw oplossing zorgt voor een extra Apache instantie die meteen ook weer verdwijnt en verder niets doet ;)
Om ff het effect beter te kunnen testen heb ik "restart" ff veranderd in "stop", zodoende zou ik dan geen webpagina meer moeten kunnen opvragen daarna, maar dat kan ik wel en in mn taakbeheer zie ik Apache ook nog steeds draaien.
Vandaar dat ik een extern tooltje er voor zoek die als 2e kleine webservertje draait. Net zo iets als webmin voor linux.

Dual-zip heeft al aangeboden een tooltje in VB te schrijven voor me. :)

[ Voor 3% gewijzigd door Joen op 01-02-2004 01:42 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • Mafioso
  • Registratie: November 2000
  • Laatst online: 07:42
ik doe het gewoon met een batchfile met daarin:
code:
1
2
net stop apache
net start apache


(wel afhankelijk van de servicenaam die je voor je apache gebruik (standaard Apache2 dacht ik)

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Mafioso schreef op 01 februari 2004 @ 11:28:
ik doe het gewoon met een batchfile met daarin:
code:
1
2
net stop apache
net start apache


(wel afhankelijk van de servicenaam die je voor je apache gebruik (standaard Apache2 dacht ik)
Maar start je die vervolgens op webbased op? Ik denk het niet ;)

TS; Ik weet dat Plesk een dergelijk constructie ook uitvoert; maar weet niet precies hoe.. In iedergeval draait dat ook onder Apache; en het mogelijk om Apache te herstarten mbv een webinterface. Als je kunt programmeren kun je ook een telnet implementatie maken onder PHP en dan onder Windows de telnetd service runnen :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Op
code:
1
2
net stop Apache2
net start Apache2
wordt ook niet volledig goed gereageerd. Apache lijkt als je webpagina's probeert op te vragen na de actie om alleen Apache 2 te stoppen inderdaad te zijn gestopt, maar als ik handmatig Apache weer wil herstarten geeft Windows aan dat ie al gestart is. Omgekeerd met stoppen gaat dat ongeveer het zelfde. maw: net start/stop is ook niet de juiste manier.

En dat is dus waarom ik het niet vanuit Apache zelf wil kunnen doen, omdat Apache zich zelf niet kan stoppen, starten en herstarten. Dit dient extern te gebeuren en de enige manier dat je extern op afstand dat kan doen is dus een extra servertje van waar uit dat geregeld wordt.

en Plesk heb ik nog nooit gehoord... Linkje?

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Kijk hier eens tussen:

[google=plesk "restart apache" web interface]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 07-07 10:04
Dit werkt perfect voor het herstarten van apache:
PHP:
1
2
3
<?php
system("D:\server\Apache\Apache.exe -w -n \"Apache\" -k restart");
?>

[ Voor 17% gewijzigd door Scorpion1984 op 01-02-2004 17:35 ]


Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
@Spider.007:
Ik vind die hele website er al ingewikkeld uit zien...

@Scorpion1984:
ALs je ff het topic doorleest zie je dat die oplossing niets helpt. En geen excuus dat het topic te lang is, want het topic is nog niet lang ;)

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Je zou kunnen kijken of je via een scriptje Apache kan killen(taskmon?!) en vervolgens via datzelfde scriptje hem gewoon command line weer uitvoeren...

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 07-07 10:04
JeroenM_tbs schreef op 01 februari 2004 @ 19:24:
@Scorpion1984:
ALs je ff het topic doorleest zie je dat die oplossing niets helpt. En geen excuus dat het topic te lang is, want het topic is nog niet lang ;)
Hoe heb je apache dan geinstalleerd, staat hij als service geinstalleerd of niet? Zoja, hoe heet de service? En wat is de lokatie van je apache?

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Apache is geïnstalleerd als service op Windows 2000 met de naam Apache2.
Apache is geinstalleerd in C:\cowpack\bin\apache.exe

Hopelijk heb je daar wat meer duidelijkheid mee.

Acties:
  • 0 Henk 'm!

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 07-07 10:04
JeroenM_tbs schreef op 02 februari 2004 @ 01:07:
Apache is geïnstalleerd als service op Windows 2000 met de naam Apache2.
Apache is geinstalleerd in C:\cowpack\bin\apache.exe

Hopelijk heb je daar wat meer duidelijkheid mee.
Dan weet ik bijna zeker dat deze aanpassing werkt:
PHP:
1
2
3
<?php
system("C:\cowpack\bin\apache.exe -w -n \"Apache2\" -k restart");
?>

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Scorpion1984 schreef op 02 februari 2004 @ 01:45:
[...]

Dan weet ik bijna zeker dat deze aanpassing werkt:
PHP:
1
2
3
<?php
system("C:\cowpack\bin\apache.exe -w -n \"Apache2\" -k restart");
?>
Moet ik je toch teleurstellen en melden dat deze melding niet bij mij werkt, dus ik ben bang dat het bij de TS ook niet werkt :)

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Idd, ik had de code uit de eerdere reactie van Scorpion1984 al aangepast aan wat Scorpion1984 nu zelf net als laatste heeft gepost en dat werkte niet.

Acties:
  • 0 Henk 'm!

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 18-09 20:05
Als je het niet erg vindt om even te wachten dan kan je het volgende doen:

Schrijf een bestandje weg op de disk met je php script.

Laat elke x minuten een taak lopen die controleer of het bestandje bestaat. Zo ja dan laat je die taak (batch file of zo) de webserver herstarten en het bestandje verwijderen.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


Acties:
  • 0 Henk 'm!

Verwijderd

wat ook kan, is een batchbestandje schrijven met daarin de volgende regels:

code:
1
2
3
net stop apache
sleep 10
net start apache


en dat batch-bestandje dan aanroepen vanuit een php-pagina.

hiervoor heb je wel het bestandje sleep.exe nodig, is te downloaden vanaf http://www2.gol.com/users/trane/programming/programming.html.

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
paulh schreef op 02 februari 2004 @ 09:18:
Als je het niet erg vindt om even te wachten dan kan je het volgende doen:

Schrijf een bestandje weg op de disk met je php script.

Laat elke x minuten een taak lopen die controleer of het bestandje bestaat. Zo ja dan laat je die taak (batch file of zo) de webserver herstarten en het bestandje verwijderen.
Hmmz, ik heb wel een programmatje dat op bepaalde tijdstippen iets kan uitvoeren en jou idee is zo slecht nog niet ;)
Echter zit ik ff met hoe je controleert of een bepaalde bestandje bestaat en aan de hand van het bestaan van dat bestandje Apache opnieuw laat starten. Het moet iig niet met PHP gebeuren.
Bovendien gaat dat wel wat systeembronnen vreten denk ik om steeds er op te checken of je moet anders iedere keer weer wachten tot het sript gaat controleren en Apache opnieuw laat opstarten.
Het is dus allicht een redelijk goede oplossing, maar het kent echter ook zo zijn nadelen.

@Morgauth78:
Als je het topic ff doorleest zie je dat batch-files ook niet zo fantastisch werken vanuit Apache zelf.

[ Voor 6% gewijzigd door Joen op 02-02-2004 10:50 ]


Acties:
  • 0 Henk 'm!

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 07-07 10:04
Het rare is dat het met apache 1.3.28 wel werkt(dat php scriptje).

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Hmmz, apart..
Misschien even handig te vermelden dat ik versie 2.0.46 gebruik, zal mn topicstart ff aanpassen ;)

Acties:
  • 0 Henk 'm!

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 07-07 10:04
JeroenM_tbs schreef op 02 februari 2004 @ 12:41:
Hmmz, apart..
Misschien even handig te vermelden dat ik versie 2.0.46 gebruik, zal mn topicstart ff aanpassen ;)
Ja dat had ik al door dat je apache2 gebruikte(vandaar de aanpassing aan het script). Maar ik heb dus gewoon apache 1.3.28 en php 4. Maar hierbij werkt het dus wel. Met apache 2 die regel op de command prompt uitvoeren werkt voor de volle 100% dat heb ik getest. Als hij dat ook niet doet moet je toch maar even controleren of de service echt wel apache2 heet.

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Jup de service heet echt Apache2 ;)
EN idd, handmatig uitvoeren van
code:
1
2
net stop Apache2
net start Apache2
of
code:
1
C:\cowpack\bin\apache.exe -w -n "Apache2" -k restart
(oid) werkt prima. Echter anagestuurd vanuit Apache 2 zelf werkt het haast voor geen meter. Maar GoTter dual-zip heeft vrijwillig aangeboden een tooltje voor me te schrijven.

En het is ook niet zo dat ik hoge nood zit of zo, maar ik zou het wel handig vinden als ik apache remotely webbased kan herstarten. :)

Acties:
  • 0 Henk 'm!

Verwijderd

JeroenM_tbs schreef op 02 februari 2004 @ 10:50:
[...]

@Morgauth78:
Als je het topic ff doorleest zie je dat batch-files ook niet zo fantastisch werken vanuit Apache zelf.
heb het batchbestandje aangemaakt op mn eigen server, aangeroepen vanuit php, en lo! and behold: apache-service sluit eerst keurig af en wordt daarna weer keurig gestart.... :)

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Wel Apache 2.0.4x ?

Acties:
  • 0 Henk 'm!

  • Scorpion1984
  • Registratie: Juni 2002
  • Laatst online: 07-07 10:04
Waarom stap je eigenlijk niet gewoon over naar apache 1.3.29?
Pagina: 1