PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Squid starten/stopen via PHP



Moesli
28.09.04, 11:49
Squid starten/stopen via PHP.

Versuche jetzt schon seit längeren Squid via php zu starten bzw. zu stoppen,. how to?
Hab schon shell_exec,.. bzw. system verucht doch irgendwie funzt es nicht,..
Sys: Suse9.1-Apache 2.5-php,Squid 2.5,...

shb
28.09.04, 12:32
was funzt bei dem system aufruf nicht? fehlermeldung?

cu SHB

Moesli
28.09.04, 12:47
Folgendes Squid läuft,..

und nun versuche ich via. php script in neu zu starten (rcsquid restart)

folgende Fehlermeldung:

Shutting down WWW-proxy squid - Warning: squid not running ! ..done
Starting WWW-proxy squid - Warning: /var/run/squid.pid exists ! (/var/cache/squid) - Could not create cache_dir !

RichieX
28.09.04, 13:50
Da stimmen wahrscheinlich ein paar Umgebungsvariablen nicht, bzw. vermisst er die squid.conf.

Wird das PHP-Script in der Konsole oder im Browser aufgerufen?

RichieX

Moesli
28.09.04, 15:16
Mometan siehts so aus:
Ich hab mir in PHP eine Userverwaltung für Squid gecoded, mit downloadlimits,und diversen aufzeichnungen,.. funzt soweit alles recht gut,.. nur mein Problem ist wenn ich einen neuen user anlege muss ich squid durchstarten und darum benötige ich einen Button über dem ich squid durchstarten kann,..==> WEB,.... und webmin will ich nicht wirklich verwenden,..

michael.sprick
28.09.04, 16:04
unter welchem User wird das PHP Skript denn gestartet? Bzw. mit welchem User macht Dein Skript den system aufruf?
Wenn der Webserver nämlich beispielsweise als wwwrun läuft, dann wird auch das Skript darunter ausgeführt.
Der User wwwrun dürfte allerdings kaum genug Rechte haben um
a) die PID Files zu finden (Fehler beim Stoppen des Squid)
b) einen Daemon zu starten (Fehler beim Starten des Squid)

hth, michael

Moesli
28.09.04, 16:31
Ok verstehe nun die Fehlermeldung,... und wie kann ich WWWRUN die rechte geben sodass, mein Sys noch sicher bleibt,.. ?

MrIch
28.09.04, 16:58
hmm, also ich hatte früher mal sowas gebaut.

Allerdings war mein Ansatz aus sicherheits Gründen ein anderer.

Man hat eine shell Skript was per cron alle 30minuten läuft und eine Datei einließt, daraus dann verschiedene Aktionen aufruft.

So baut man halt ne webanwendung die so eine Datei schreibt und alle 30min wird bei Änderungen die config upgedatet und ggf. der Dienst neugestartet.

Moesli
28.09.04, 17:03
hab ich mir auch schon ueberlegt,.. aber mir wäre es lieber wenn ich es händisch nach dem User anlegen durchführen könnt,..is irgendwie unnötig wenn andauern ein script checkt,... und Mr Cron hat so schon einiges zu tun,..

RichieX
28.09.04, 17:32
Ok verstehe nun die Fehlermeldung,... und wie kann ich WWWRUN die rechte geben sodass, mein Sys noch sicher bleibt,.. ?

Ist mit PHP AFAIK nicht möglich, hatte mir vor ein paar Monaten auch schon mal die Zähne ausgebissen (damals mit iptables, noch schwieriger, da nur root selbst auf die Tabellen im Kernel zugreifen darf).

Es ist aber vielleicht über Umwege möglich. Es gibt das Programm "plink" (ssh Verbindung zum Server aufbauen und Programm ausführen, schau's dir an), was du vielleicht in einem Javascript ausführen kannst. Nur so eine Idee, kenn mich Javascript nicht aus...

RichieX

Moesli
28.09.04, 18:28
Es muss doch irgendwie möglich sein,.. für was gibts dann shell_exec bzw. system() ??

RichieX
28.09.04, 18:36
Es geht schon, wenn du wwwrun die UID 0 gibst. Mit den dementsprechenden Sicherheitsrisiken ;)

RichieX

RichieX
28.09.04, 18:43
... halt mir ist da noch was eingefallen: Eine Möglichkeit wäre noch "sudo" http://www.courtesan.com/sudo/sudo.html

Vielleicht kommst du damit weiter. Ich hatte damals auch damit experimentiert, aber wie schon gesagt, die iptables im Kernel wollte er damit auch nicht rausrücken :D

RichieX

Edit: Hier mal noch ein Link, mit dem du schneller ans Ziel kommst:http://www.phpforum.de/forum/phpforum2_Linux__12453_.html

Moesli
28.09.04, 19:48
... halt mir ist da noch was eingefallen: Eine Möglichkeit wäre noch "sudo" http://www.courtesan.com/sudo/sudo.html

Vielleicht kommst du damit weiter. Ich hatte damals auch damit experimentiert, aber wie schon gesagt, die iptables im Kernel wollte er damit auch nicht rausrücken :D

RichieX

Edit: Hier mal noch ein Link, mit dem du schneller ans Ziel kommst:http://www.phpforum.de/forum/phpforum2_Linux__12453_.html

Jo Man,.. Vielen Dank !!! Ich bin dir was schuldig,.. :eek: :)