PHP - Server aus Script restarten
PeterK
- webserver
Hallo!
Wir haben einen 1&1 RootServer gemietet und würden nun gerne SubDomains aus einem PHP-Script einrichten. Das geht schon halbwegs, aber habt ihr eine Idee wie man aus einem PHP-Script den Apache restartet (auf einem UNIX-System)... Wir kriegen das irgendwie nich hin...
Peter
-- \nEs gibt immer eine lösung - auch wenn sie keiner findet!!\n\nDat bin isch:ss:) zu:) ls:[ fo:| de:< va:| ch:? sh:) n4:~ rl:( br:$ js:| ie:) fl:)
Holladiewaldfee,
Wir haben einen 1&1 RootServer gemietet und würden nun gerne SubDomains aus einem PHP-Script einrichten. Das geht schon halbwegs, aber habt ihr eine Idee wie man aus einem PHP-Script den Apache restartet (auf einem UNIX-System)... Wir kriegen das irgendwie nich hin...
Hm ... schreibe Dir ein Shell-Script, daß ein "apachectl restart" enthält. Das rufst Du aus PHP mit exec('sh script.sh &') auf. Das kann aber nur funktionieren, wenn Du die Rechte für die apachectl und script.sh passend setzt. Welche Sicherheitsrisiken Du Dir damit einhandelst ist Dir aber hoffentlich bewusst.
Ciao,
Harry
Hi und wo setzt man diese Rechte?
Holladiewaldfee,
Hi und wo setzt man diese Rechte?
Mit chmod natürlich. Aber mal ehrlich: Wenn Du nicht weißt, wie man die Rechte setzt, dann weißt Du auch nicht, wie man sie am "sichersten" verteilt. Und dann würde ich von solchen Späßen die Finger lassen. Wär ja bescheuert, wenn jeder, der auch nur ein doofes PHP-Script auf Deinem Server ausführen kann, Deinen Webserver stoppen könnte ...
Kann übrigens sein, daß Du noch das 4er Flag setzen mußt (hab vergessen wie das Teil heißt, halt das, das gebraucht wird, damit die Datei unter der UID des Besitzers ausgeführt wird), weil der Webserver ja gewöhnlich von root gestartet werden kann und ich mir nicht so ganz sicher bin, ob man ihn dann als nobody/www/was-auch-immer nur durch Aufruf der apachectl einfach anhalten/neustarten kann. Probier's aus. Ich darf Dich aber noch darauf hinweisen, daß Du Dir dann erst recht jede Menge Ärger einhandeln kannst, wenn Du es erlaubst, daß nobody aufeinmal eine Datei mit root-Rechten ausführen darf ...
Kann übrigens auch sein, daß ich totalen Schwachsinn verzapfe ;-)
Ciao,
Harry
Hmmm,
wir haben echt nicht soviel Ahnung von sowas, aber wir müssen es hinbekommen! Ist es nicht möglich dem aktuellen User per Angabe des Rootnamens und des Rootpassworts für das restarten des Servers die Rechte zu geben? Und wenn ja, wie?
Vielen Dank für alle Antworten!
Holladiewaldfee,
wir haben echt nicht soviel Ahnung von sowas, aber wir müssen es hinbekommen! Ist es nicht möglich dem aktuellen User per Angabe des Rootnamens und des Rootpassworts für das restarten des Servers die Rechte zu geben? Und wenn ja, wie?
WAAAAAAAH
Also: Das root-Passwort bekommt nur der, der's absolut notwendigerweise braucht, und das ist im Normalfall nur einer: Der Systemadministrator.
Meiner Meinung nach solltest Du Dir lieber einen CronJob einrichten der von mir aus alle 24 Stunden ein "apachectl restart" ausführt, unter der UID des root-Benutzers. Dann muß man halt 24 Stunden warten, aber das ist alle mal besser als irgendwie mit root-Rechten rumzuspielen.
Zweite Alternative: Richte Dir einen Cronjob (für root) ein, der z.B. alle 10 Minuten prüft, ob eine Datei ".restartme" im Verzeichnis "/usr/home/userxyz" existiert. Wenn ja, startet er den Apachen neu und löscht die Datei, wenn nein passiert nix.
Das ist meiner Meinung nach die sicherste Methode. Du solltest nur drauf aufpassen, daß nicht ein Spaßvogel das Script, das die Datei erstellt, mißbrauchen kann und dann Dein Server alle 10 Minuten einen neustart hinlegt ... ist nicht sooo super (vor allem bei langen Dateidownloads etc.).
Generell solltest Du es vermeiden, den Server während der "Hauptverkehrszeit" neu zu starten.
Ansonsten darf ich Dir noch einige Lektüre empfehlen:
man cron
man crontab
man chmod
Die Dokus zu Apache
usw. usf.
Ciao,
Harry
also so:
*/1 * * * * apachectl restart
?
Holladiewaldfee,
*/1 * * * * apachectl restart
Du wirst wohl 'ne komplette Pfadangabe brauchen.
Außerdem eher
0 0 * * * /usr/local/httpd/bin/apachectl restart
Kann sein, daß Du den Befehl sammt Parametern noch in Anführungszeichen packen mußt ... wer weiß.
Ciao,
Harry
Moin!
Holladiewaldfee,
Da nicht bekannt ist, wohin der Indianer installiert wurde und welches Unix benutzt wird empfehle ich an dieser Stelle den Support des Dienstleisters.
Bei Linux hätte ich gesagt: Man benutze einfach die Start/Stop-Scripte in /etc/init.d/ (Selbst, wenn die womöglich auch nur Links sind...)
Aber auch da stellt sich das Rechteproblem: -> Support des Dienstleisters.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Holladiewaldfee,
Da nicht bekannt ist, wohin der Indianer installiert wurde und welches Unix benutzt wird empfehle ich an dieser Stelle den Support des Dienstleisters.
Naja, wenigstens _das_ sollten sie selber rausfinden können. Ich hab einfach mal die Pfade so angegeben, wie ich sie bei mir auf meiner Test-Kiste habe.
Bei Linux hätte ich gesagt: Man benutze einfach die Start/Stop-Scripte in /etc/init.d/ (Selbst, wenn die womöglich auch nur Links sind...)
Meine sind in /usr/etc/rc.d/ ;-)
Aber ich hab ja auch kein Linux :)
Ciao,
Harry
wir haben echt nicht soviel Ahnung von sowas, aber wir müssen es hinbekommen! Ist es nicht möglich dem aktuellen User per Angabe des
Achja...
Bitte last die Finger von..
Ihr richtet wirklich mehr Schaden als Nutzen damit an.
Übt solche Sachen doch erst einmal an einem Testsystem.
TomIRL
Der richtig schwer Zahnschmerzen hat wenn er so etwas hört.
Moin!
Hallo!
Wir haben einen 1&1 RootServer gemietet und würden nun gerne ...
Oh Oh! Seit Ihr Euch sicher, daß es eine kluge und gute Idee war einen Rootserver zu mieten. Dazu sollte man wirklich bestimmte Grundkenntnisse mitbringen und nicht schon an so einfachen Fragen verzweifeln.
Tipp: Wenn Ihr genug Geld habt(und das scheint so zu sein...), besorgt Euch Software. Confixx oder so. Nur müsst Ihr da auch ins Handbuch schauen.
fastix®
tach
Tipp: Wenn Ihr genug Geld habt(und das scheint so zu sein...), besorgt Euch Software. Confixx oder so. Nur müsst Ihr da auch ins Handbuch schauen.
Confixx ist beim RootServer schon dabei
Gruß
Ralf
Moin!
tach
Tipp: Wenn Ihr genug Geld habt(und das scheint so zu sein...), besorgt Euch Software. Confixx oder so. Nur müsst Ihr da auch ins Handbuch schauen.
Confixx ist beim RootServer schon dabei
http://www.yippi-yeah.de/pdf/support/pro/de_admin.pdf
Einstellungen -> Update- Intervalle
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo,
was soll ich mit dem Link?
Wollte nur erwähnen, dass wenn man den 1&1 Rootserver hat dort Confixx dabei ist. Was soll ich dann bitte mit dem Adminbuch? :)
Gruß
Ralf