[PHP] Apache restarten !?

Pagina: 1
Acties:

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
ejz,

ik heb een script geschreven waarmee ik de virtual hosts file kan editten; heel handig enzo, maar ik moet apache wel restarten wil t werken...

nu lijkt het mij onmogelijk om apache te restarten vanuit php, omdat php via apache loopt...

is r een andere mogelijkheid, of moet ik een 2e simpele webserver ernaast draaien (lijkt mij de enige (en beste) oplossing...)...

alvast bedankt :D

  • Spleasure
  • Registratie: Juli 2001
  • Laatst online: 26-08 09:10

Spleasure

Ik hier?

kan je niet met system() een script aanroepen dat 'm restart?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

kan niet
ik hoop iig dat je apache niet goede rechten heeft om het te doen
maar misschien bedenk ik me kan je een bash scrippie maken dat het doet?

Doet iets met Cloud (MS/IBM)


Verwijderd

bestand restart.bat

stop_apache.exe
start_apache.exe

en dan in het php-script zoiets als:

system("restart.bat");
passthru("restart.bat");

Denk trouwens dat dat niet werkt :) Zou niet goed zijn als dat het namelijk wel deed....

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
ik heb een bash scriptje geschreven (al n tijdje geleden) om apache te restarten.

als ik die via ssh uitvoer doet ie t goed, maar als ik m run met php zegt ie:
code:
1
2
Stopping httpd: [FAILED]
Starting httpd: [  OK  ]

hij doet alleen niks...

Verwijderd

Op zaterdag 19 januari 2002 18:56 schreef D0nutz het volgende:
bestand restart.bat

stop_apache.exe
start_apache.exe

en dan in het php-script zoiets als:

system("restart.bat");
passthru("restart.bat");

Denk trouwens dat dat niet werkt :) Zou niet goed zijn als dat het namelijk wel deed....
onder windows zou ik toch liever NET STOP APACHE gebruiken :)

en er is een hele dikke kans dat het gebeuren op linux draait. Zeker aan die output te zien ;)

  • HGM
  • Registratie: April 2000
  • Niet online

HGM

Op zaterdag 19 januari 2002 18:58 schreef cest_moi-le_roi het volgende:
ik heb een bash scriptje geschreven (al n tijdje geleden) om apache te restarten.

als ik die via ssh uitvoer doet ie t goed, maar als ik m run met php zegt ie:
code:
1
2
Stopping httpd: [FAILED]
Starting httpd: [  OK  ]

hij doet alleen niks...
Hoe bedoel je dit nu?? Natuurlijk mag het niet zo zijn dat je zomaar via apache/php dat script kan uitvoeren. Een cronjob lijkt me hier uitkomst te gaan bieden ...

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
Op zaterdag 19 januari 2002 19:12 schreef HGM het volgende:

[..]

Hoe bedoel je dit nu?? Natuurlijk mag het niet zo zijn dat je zomaar via apache/php dat script kan uitvoeren. Een cronjob lijkt me hier uitkomst te gaan bieden ...
dan zou ik mn crontab moeten editten...
kan ik anders niet een (lichte) andere webserver naast apache op n andere port zetten ?

Verwijderd

Op zaterdag 19 januari 2002 19:19 schreef cest_moi-le_roi het volgende:

dan zou ik mn crontab moeten editten...
kan ik anders niet een (lichte) andere webserver naast apache op n andere port zetten ?
Is het niet makkelijker om dit via SSH te doen ofzo, of wil je dat het echt volautomatisch gaat?

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
Op zaterdag 19 januari 2002 19:21 schreef Cheatah het volgende:

[..]

Is het niet makkelijker om dit via SSH te doen ofzo, of wil je dat het echt volautomatisch gaat?
ik wil het zonder ssh of wat dan ook doen, dus dat ik bijv vanaf school virtual hosts kan aanmaken...

volgens mij is n licht webservertje op n andere port een goede oplossing !?

webmin kan apache ook restarten, en volgens mij omdat ie niet via apache draait :?

  • Dryw.Filtiarn
  • Registratie: September 2001
  • Laatst online: 18-03 12:10
Ik zou persoonlijk toch voor de cron kiezen... Gewoon ieder kwartier ofzo, moet je een kwartiertje wachten, maar dat is wel te overleven dacht ik.

=( Protected by witchcraft )=


  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
webmin kan apache ook restarten
Hoe doen zij het dan? Je zou kunnen kijken in hun scripts hoe zij het doen...

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
Op zaterdag 19 januari 2002 19:28 schreef joostbaksteen het volgende:

[..]

Hoe doen zij het dan? Je zou kunnen kijken in hun scripts hoe zij het doen...
das nie moeilijk, webmin draait niet via apache, maar als losse webserver.
mij zou het ook wel lukken met een aparte webserver, maar ik denk dat het mij niet gaat lukken de webserver waar je op dat moment gebruik van maakt te restarten...

n voorbeeld: n vriend van mij dacht zn webserver software weer op te starten via php als ie was gecrashed :+
zelfde soort geval :P

  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
Maar hoe wil jij dan een script uitvoeren met root xs?

Lijkt me erg lastig... Zonder root access red je het niet namelijk:
joost@Osiris:/usr/local/apache/bin$ ./apachectl restart
./apachectl restart: httpd not running, trying to start
fopen: Permission denied
httpd: could not open error log file /usr/local/apache/logs/error_log.
./apachectl restart: httpd could not be started
joost@Osiris:/usr/local/apache/bin$

en

Osiris:/usr/local/apache/bin# ./apachectl restart
./apachectl restart: httpd restarted
Osiris:/usr/local/apache/bin#

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
ik heb nu maar een cronjob gemaakt die om de 10 min apache restart...
das dan maar de oplossing hè ;)

  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
Op zaterdag 19 januari 2002 19:42 schreef cest_moi-le_roi het volgende:
ik heb nu maar een cronjob gemaakt die om de 10 min apache restart...
das dan maar de oplossing hè ;)
Maar hoe wil jij dan een script uitvoeren met root xs? Hier ben ik zelf ook benieuwd naar namelijk, ik heb namelijk geprobeerd ongeveer hetzelfde te maken in php. Een script uitvoeren als root lukt me alleen niet... (via php dan :P).

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
Op zaterdag 19 januari 2002 19:46 schreef joostbaksteen het volgende:

[..]

Maar hoe wil jij dan een script uitvoeren met root xs? Hier ben ik zelf ook benieuwd naar namelijk, ik heb namelijk geprobeerd ongeveer hetzelfde te maken in php. Een script uitvoeren als root lukt me alleen niet... (via php dan :P).
ik snap je niet helemaal; wat wil je precies ?

  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
Op zaterdag 19 januari 2002 19:47 schreef cest_moi-le_roi het volgende:

[..]

ik snap je niet helemaal; wat wil je precies ?
Ik maak een bashscript om bijvoorbeeld apache uit te zetten dus gewoon(./apachectl stop), in php.

Nu voer ik dat script uit: system('script'); maar de user nobody heeft daar geen rechten voor. Hoe kan ik ervoor zorgen dat ik dat script dus als root uitvoer. Dat ik daar dus wel de rechten voor heb. Het moet kunnen want webmin kan het ook, alleen als je die source gaat lezen..... ben je wel een tijdje bezig en het is perl.

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
Op zaterdag 19 januari 2002 19:50 schreef joostbaksteen het volgende:

[..]

Ik maak een bashscript om bijvoorbeeld apache uit te zetten dus gewoon(./apachectl stop), in php.

Nu voer ik dat script uit: system('script'); maar de user nobody heeft daar geen rechten voor. Hoe kan ik ervoor zorgen dat ik dat script dus als root uitvoer. Dat ik daar dus wel de rechten voor heb. Het moet kunnen want webmin kan het ook, alleen als je die source gaat lezen..... ben je wel een tijdje bezig en het is perl.
apache krijg je (ik iig niet) gestopt via php.
dat script had ik 4755 gechmod, en daarna kreeg ik mn script wel uitgevoerd...

Verwijderd

je moet gewoon een commando maken die je apache uitzet en meteen aanzet... Deze hoef je zelfs niet meer te maken maar die bestaat al, niet voor de dingen wat jij er mee wilt doen, maar het lukt wel.

Ik heb er ook al lang mee zitten k*tten wat jij nu ook niet doorhebt, vars saven en gebruiken, via je OS opstarten...

Lukt allemaal niet, Apache kan zichzelf uit- en weer aanschakelen. Heel leuk, heel handig, heel 'geheim'.

zegt "/hop" je iets? Mij wel


la man

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
Op zaterdag 19 januari 2002 20:00 schreef rudie het volgende:
je moet gewoon een commando maken die je apache uitzet en meteen aanzet... Deze hoef je zelfs niet meer te maken maar die bestaat al, niet voor de dingen wat jij er mee wilt doen, maar het lukt wel.

Ik heb er ook al lang mee zitten k*tten wat jij nu ook niet doorhebt, vars saven en gebruiken, via je OS opstarten...

Lukt allemaal niet, Apache kan zichzelf uit- en weer aanschakelen. Heel leuk, heel handig, heel 'geheim'.

zegt "/hop" je iets? Mij wel


la man
??? :?

  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
Woei :P, na een lange tijd zoeken toch weer terug op helma.org.

http://helma.org/docs/install/linux/apache/

Dit is het denk ik.... beetje vaag...

Verwijderd

Je kan b.v. met root een cronjob toevoegen die elke minuut een .sh scriptje aanroept. Dit scriptje haalt zijn daadwerkelijke commando's uit een textbestandje.
Als laatste (na het uitvoeren dus) gooit dit .sh scriptje datzelfde textbestandje weer weg.
Je kan nu met PHP dit textbestandje aanmaken en vullen met de commando's die als root uitgevoerd moeten worden.

  • Le Mol
  • Registratie: April 2000
  • Niet online
Colbalt en Plesk e.d. doen het via een andere apache deamon die op een andere poort mee loopt. Deze draait als root en kan dus z'n broertje herstarten :)

Logic brings you from a to b, your imagination can bring you anywhere


  • nrg
  • Registratie: April 2001
  • Laatst online: 07:41
Op zaterdag 19 januari 2002 23:02 schreef Le Mol het volgende:
Colbalt en Plesk e.d. doen het via een andere apache deamon die op een andere poort mee loopt. Deze draait als root en kan dus z'n broertje herstarten :)
zoiets is idd de beste oplossing

ik heb nu n cronjob die elke 10 min apache restart...

  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
Op zaterdag 19 januari 2002 22:36 schreef MarcoTC het volgende:
Je kan b.v. met root een cronjob toevoegen die elke minuut een .sh scriptje aanroept. Dit scriptje haalt zijn daadwerkelijke commando's uit een textbestandje.
Als laatste (na het uitvoeren dus) gooit dit .sh scriptje datzelfde textbestandje weer weg.
Je kan nu met PHP dit textbestandje aanmaken en vullen met de commando's die als root uitgevoerd moeten worden.
Goed idee, maar ik denk dat ik ook voor de manier van Le Mol ga... icm jouw manier als dat nodig is. Thx!

Verwijderd

Dit is dus absoluut niet secure huh..
Stel iemand is in staat om een line toe te voegen in je bestandje dat er een nieuwe user wordt aangemaakt.
Dan wacht de "hacker" een paar minuten (of hoe de crontab ook maar is afgestelt) en hij kan inloggen.

  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
Op zondag 20 januari 2002 00:39 schreef virtual het volgende:
Dit is dus absoluut niet secure huh..
Stel iemand is in staat om een line toe te voegen in je bestandje dat er een nieuwe user wordt aangemaakt.
Dan wacht de "hacker" een paar minuten (of hoe de crontab ook maar is afgestelt) en hij kan inloggen.
Ze kunnen geen line toevoegen, access staat op 700 en de eigenaar is root.

Je moet met php gewoon goed filteren. Zorgen dat er alleen letters in de username zitten. Dan is er niks aan de hand.

Verder is het een admin script. Dus alleen een admin kan dat doen. Gewoon beveiligen met .htaccess en dan nog een php login beveiliging. Lijkt me vrij veilig.

  • CyeZ
  • Registratie: September 2001
  • Laatst online: 09:20

CyeZ

Vroem vroem!!!

Bekijk ook eens de 'suexec' methode die in Apache ingebouwt zit. Hiermee kun je scripts/programma's draaien onder het userid waar het script van is.

Zelf heb ik het nog nooit nodig gehad, dus je zult zelf even iets wat meer erover moeten zoeken. Maar dat zal geen probleem zijn neem ik aan.

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
Op zondag 20 januari 2002 10:36 schreef CyeZ het volgende:
Een stukje over suEXEC
Het zou mooi zijn maar het werkt niet, quote van de apache site:
Presently, suEXEC does not allow 'root' to execute CGI/SSI programs.

Bron: http://httpd.apache.org/docs/suexec.html

  • wzzrd
  • Registratie: Februari 2000
  • Laatst online: 24-05 21:44

wzzrd

The guy with the Red Hat

Niet:
code:
1
apachectl stop start

maar
code:
1
apachectl restart

  • kneus
  • Registratie: November 2000
  • Laatst online: 26-02-2025
Ik heb er ook een tijd over gedacht, ik was van plan een cron task aan te maken die iedere 10 minuten draait. Hij gaat dan controleren of er een nieuwe crontab is aangemaakt (dus virtulhosts e.d. zijn aangemaakt) Alleen dan herstart hij apache. Om iedere 10 minuten apache zoiezo te laten herstarten vind ik slordig, en 10 minuten is wel te wachten.

  • HGM
  • Registratie: April 2000
  • Niet online

HGM

Op zondag 20 januari 2002 12:06 schreef wzzrd het volgende:
code:
1
apachectl restart
graceful is sowieso wat netter IMO

  • kneus
  • Registratie: November 2000
  • Laatst online: 26-02-2025
Overgens lijkt een script die door php wordt aangemaakt uit te laten voeren door cron onder root rechten inderdaad niet verstandig, wat als iemand toch er wat ik kan zetten. Daarom, maak gewoon een httpd.conf aan vanuit php, en het script van de cron, pakt alleen maar dat bestand, schrijft hem over de orginele heen, en herstart. Weer een stuk veiliger lijkt me.

Verwijderd

Mijn idee:

Laat php een cronjob aanmaken die maar een keer draait, je moet er dan voor zorgen dat in die cronjob staat dat ie bijvoorbeeld 2 minuten na het aanmaken apache herstart.

Op deze manier zorg je ervoor dat wanneer er niks gebeurt, en apache dus eigenlijk ook niet herstart hoeft te worden, je toch elke x minuten een herstart hebt van apache.
Pagina: 1