Tipp bei manuellen Anpassungen

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich hoffe dieser "Erfahrungsbericht" passt hier rein, aber es hat micht wirklich fast zur Verzweiflung getrieben ;)
Für Websvn muss man den open_basedir in der php.ini anpassen. Das habe ich gemacht und S97apache-user.sh restart. Alles funzte wunderbar. Vorgestern, nach drei drei Wochen Laufzeit, musste ich das Kistchen wiedermal rebooten. Plötzlich ging Websvn wieder nicht mehr.
Nach langer Suche (eigentlich bis gerade eben) habe ich die php.ini wiederaufgemacht und hatte ein Deja-vu: Viele Konfig Variabeln bei der Apache- und PHP Konf werden ja in S97apache-user.sh gesetzt. Leider merkt man das erst bei einem stop/start. Bei einem restart des Apache wird GenerateConf() NICHT ausgeführt und damit bleiben die Änderungen erhalten.

Meine Lektionen für mich daraus:
1) Bei Änderungen an Config Files des Servers immer stop/start machen und gucken ob die Werte zurückgeändert wurden. Ein Apache restart reicht nicht.
2) Alle manuellen Änderungen irgendwo dokumentieren

Hoffe es kann jemandem helfen ein paar Nerven zu sparen :)

Gruss

tobi
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Bei einem restart des Apache wird GenerateConf() NICHT ausgeführt und damit bleiben die Änderungen erhalten.

Ist das jetzt versionsabhängig? Bei mir wird der GenerateConf() immer beim 'start' des Skriptes ausgeführt! Und der 'restart' ist bei mir:

Rich (BBCode):
[Rr][Ee][Ss][Tt][Aa][Rr][Tt])
        if [ $RUNNING -eq 0 ]; then
                $0 start
        else
                $0 stop
                $0 start
        fi
        ;;

Also auch Durchlaufen der 'start'-Prozedur.

Im Momemt verstehe ich deine Empfehlung daher nicht so genau. Für mich ist das Verfahren 'stop' - 'start' gleichwertig zu dem 'restart'.

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ist das jetzt versionsabhängig?
[...]
Im Momemt verstehe ich deine Empfehlung daher nicht so genau. Für mich ist das Verfahren 'stop' - 'start' gleichwertig zu dem 'restart'.

Itari
Könnte gut sein, dass dies erst mit der aktuellsten Firmware so ist. Ich habe das mehrfach getestet: Apache restart --> open_basedir blieb erhalten. Apache stop/start --> open_basedir wurde neu gesetzt gemäss S97apache-user.sh.
Ich schau heute abend mal noch in meine S97apache-user-sh. Vermutlich ist ist dabei restart --> einfach stop/start und stop/start --> ein stop/GenerateConf()/start.
Ist auf jeden Fall mit FW 1141 definitiv so, dass restart und stop/start nicht genau identisch sind ;)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ist auf jeden Fall mit FW 1141 definitiv so, dass restart und stop/start nicht genau identisch sind ;)

Wie gesagt, der 'restart' ist in der FW 1141 genauso, wie oben im Post. Daraus kann ich mir kein abweichendes Verhalten zu einem normalen 'stop' - 'start' erklären. Aber vielleicht hast du ja noch einen Spell gesprochen, der sich ausgewirkt hat ...

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wie gesagt, der 'restart' ist in der FW 1141 genauso, wie oben im Post.
Heisst das du hast zugriff auf die start Files? Guck doch mal ob beim start ggf ein GenerateConf() gemacht wird. Muss fast so sein, denn ich habe keine speziellen Parameter verwendet: Einfach stop/start mit restart verglichen und gesehen dass im ersten Fall die Confs eindeutig neu geschrieben werden. Kann ich auch mit md5sum "beweisen" ;)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Heisst das du hast zugriff auf die start Files? Guck doch mal ob beim start ggf ein GenerateConf() gemacht wird. Muss fast so sein, denn ich habe keine speziellen Parameter verwendet: Einfach stop/start mit restart verglichen und gesehen dass im ersten Fall die Confs eindeutig neu geschrieben werden. Kann ich auch mit md5sum "beweisen" ;)

Klar wird beim 'start' ein GenerateConf() gemacht :)

Aber was macht denn der 'restart'? Er führt doch auch einen 'start' herbei. Oder etwa nicht? Vielleicht fehlt im 'restart' noch ein sleep 10 zwischen stop und start oder so ... damit nicht zu früh gestartet wird ... aber das wäre jetzt nur eine ganz vage Vermutung ;)

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Das glaube ich nicht, Tim :)

Du machst ein restart also wird gemäss deinem Code ein stop start gemacht. Das dort angegebene stop/start hat aber nichts mit dem stop/start zu tun, das du auf der Konsole eingibst. Das sind doch zwei paar Schuhe ;)

Erst wenn du auf der Konsole ein stop/start machst wird das Script ein
Code:
if test "$*" = "stop" || test "$*" = "start"; then
 apache stop
 GenConf()
 apache start
fi
machen im Gegensatz zu restart wo nur
Code:
if test "$*" = "restart"; then
 apache stop
 apache start
fi
gemacht wird

Das ist der Unterschied zwischen stop/start und restart und auch der Grund warum die manuellen Anpassungen ein S97apache-user.sh restart überleben, nicht aber einen stop-start

Gruss

tobi
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Du machst ein restart also wird gemäss deinem Code ein stop start gemacht. Das dort angegebene stop/start hat aber nichts mit dem stop/start zu tun, das du auf der Konsole eingibst. Das sind doch zwei paar Schuhe ;)

Es ist nicht mein Code; es sind ein paar Zeilen aus der Datei S97apache-user.sh.

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Es ist nicht mein Code; es sind ein paar Zeilen aus der Datei S97apache-user.sh.

Itari
Schon klar dass es nicht "dein" Code ist ;)
Wenn du mir nicht glaubst, dass stop/start und restart nicht genau das gleiche machen, dann poste doch den Ausschnitt aus dem start-case

Oder ändere open_basedir manuell und mach restart. Dann ist die Änderung noch vorhanden, bei stop/start ist sie weg

Gruss

tobi
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wenn du mir nicht glaubst, dass stop/start und restart nicht genau das gleiche machen, dann poste doch den Ausschnitt aus dem start-case

Ich habe den Ausschnitt für den 'restart' gepostet. Dieser enthält genau 2 Aufrufe: $0 stop und $0 start, also genau das, was du auf der Konsole händisch mit 'stop' und 'start' machst ... Ich sehe im Moment den Unterschied nicht. Wenn du Effekte bemerkt hast, die einen Unterschied ausmachen, dann würde mich auch eine Erklärung interessieren. :)

Itari
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.192
Punkte für Reaktionen
429
Punkte
393
Hallo,
1141, restart führt GenerateConf() aus, Änderungen von open_basedir sind weg.

Gruß Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich sehe im Moment den Unterschied nicht. Wenn du Effekte bemerkt hast, die einen Unterschied ausmachen, dann würde mich auch eine Erklärung interessieren. :)
Wie gesagt, der Effekt war, dass die manuellen Änderungen bei stop/start weg waren und bei restart ned.
Allerdings sehe ich jetzt was du vorhin gemeint hast: $0 steht ja für den Namen des Scriptes selber und nicht für das Apache Binary. Ich dachte es würde httpd stop/start/restart gemacht. aber das script ruft sich ja selber auf.
Aber wie gesagt ich konnte gestern dieses Verhalten reproduzieren:
open_basedir geändert --> restart --> Änderung erhalten
open_basedir geändert --> stop/start --> Änderungen waren weg und Websvn funzt nicht mehr
Ich schau mir das aber nochmals genau an wenn ich zu Hause bin :)
Eventuell habe ich ja mal etwas an S97apache-user.sh geändert, dass bei einem restart ein httpd stop und httpd start gemacht wird und nicht das Script selber aufgerufen wird
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Sorry @ all und Kommando zurück. Meine S97apache-user.sh ist nicht mehr out of the box. Beim restart habe ich irgendwann mal das Startscript angepasst.
War also wieder mal das typische "30-cm vor dem Bildschirm"-Problem ;)
Code:
#restart

$0 stop
startArg=""
if [ "yes" = "$RunHTTPS" ]; then
 startArg="$startArg -DSSL"
fi
echo "Start User Apache Server ....."
if env TMPDIR=${TmpDir} $Httpd $startArg; then
 echo "$0: user httpd started"
else
 echo "$0: user httpd could not be started"
 exit 1;
fi
Sorry für den Lärm den ich gemacht habe ;)
Allerdings bleibt noch der zweite Punkt aus meinem ersten Post offen: Änderungen immer notieren!! So hätte ich schnell gesehen, dass ich das Startscript mal manuell angepasst habe :)

@mod mit Rechten
Diesen Thread kann man - falls gewünscht - trashen

Gruss

tobi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat