Ankündigung

Einklappen
Keine Ankündigung bisher.

localhost: PHP-Änderungen werden nicht übernommen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pudem
    hat ein Thema erstellt localhost: PHP-Änderungen werden nicht übernommen.

    localhost: PHP-Änderungen werden nicht übernommen

    Hallo,

    ich habe ein seltsames Phänomen, das ich mir nicht erklären kann. Das Phänomen tritt - nicht reproduzierbar wann - nur manchmal auf.

    Unter Linux Mint habe ich LAMP installiert, um lokal meine PHP-Skripte zu testen. Das klappt soweit ganz prima. Jetzt kommt es vor, dass ich Fehlermeldungen von PHP bekomme. Ich ändere also mein Skript, speichere es ab und probier es noch mal. Trotzdem zeigt mir das Skript im Browser die gleiche Fehlermeldung, obwohl ich das geändert habe. Ich füge Leerzeilen ein, um zu testen, ob die Änderungen irgendwie registriert wurden. Ergebnis: Er zeigt die Fehlermeldung immer noch in der gleichen Zeile an, obwohl die betreffende Zeile jetzt eine Leerzeile ist.

    Folgendes habe ich probiert:

    - Browsercache löschen: kein Effekt
    - PHP-Skript nicht nur speichern, sondern auch schließen: kein Effekt
    - Selbst wenn ich einen anderen Browser öffne, in dem das Skript noch nie gelaufen ist, zeigt er mir die gleiche Fehlermeldung für die Zeile an, die jetzt eine Leerzeile ist

    Erst wenn ich meinen Rechner neu boote, werden die Änderungen wirksam.

    Erklären kann ich mir das nicht, ich habe aber Vermutungen:

    - Hat vielleicht mein neues lokales Apache einen internen Cache oder so, den man erst löschen muss?
    - Ich habe mein System auf einer SSD installiert (mit ext4). Kenne mich damit nicht so aus, aber ich habe gehört, dass das mit der Speicherverwaltung etwas komplizierter ist (irgendwie mehrmals gespeichert wird, um Datenverluste zu vermeiden). Könnte es sein, dass das Skript zwar gespeichert wird, aber "nicht richtig" und das ext4-Dateisystem das erst mitkriegt, wenn ich neu boote?

    Hat einer irgendwelche Ideen?

  • Kinger
    antwortet
    Sicher bin ich mir nicht, aber nach den Verhalten was du beschrieben hast könnte das (ganz vielleicht ) was mit "Persistent RAMDISK" zu tun haben. Schau mal hier: https://wiki.debian.org/SSDOptimizat...istent_RAMDISK

    Vielleicht hilft das ja weiter.

    Gruß

    Einen Kommentar schreiben:


  • pudem
    antwortet
    Liegt's doch an SSD?

    Jetzt nach einiger Zeit zur Info:

    Ich habe jetzt meine Verzeichnisse
    /var
    /tmp
    /home

    von der SSD auf die normale Festplatte ausgelagert (siehe dazu auch http://www.pcwelt.de/ratgeber/Linux-...x-6593528.html)

    Meine Skripte liegen im home-Verzeichnis.

    Das war vor ca. 2 Wochen.
    Seitdem ist das Problem nicht mehr aufgetaucht.

    Dass das die Ursache war kann ich natürlich nicht beweisen, da der Fehler nur sporadisch auftrat und nicht reproduzierbar war.

    Es liegt jedoch der Schluss nahe, dass PHP / ext4 und die SSD nicht korrekt zusammenarbeiten. Es handelt sich übrigens um eine Kingston SSDNow 120 GB

    Einen Kommentar schreiben:


  • joergy
    antwortet
    Klingt für mich verdächtig nach Browser-Cache, obwohl Du (purem) oben geschrieben hattest, das sei sichergestellt...
    Häng doch mal an Deine aufrufende URL einen Query-String mit immer anderen Werten, a la ...?nix=1234

    Einen Kommentar schreiben:


  • ChrisvA
    antwortet
    In der Kommandozeile solltest du dein Skript auch nicht via http sonder direkt per Dateiname aufrufen,...

    Einen Kommentar schreiben:


  • pudem
    antwortet
    Eben hatte ich wieder den Fall, dass im Browser Änderungen des Skriptes nicht übernommen wurden. Ich habe also die Datei im Terminal mit "php /home/~bla/public_html/datei.php" aufgerufen. Als "php http.//localhost/datei.php" gehts ja nicht, sodass nur der Inhalt der Datei selbst ausgegeben wird. Aber da sind die Änderungen sichtbar.

    Viel schlauer bin ich jetzt auch nicht...

    Einen Kommentar schreiben:


  • pudem
    antwortet
    Zitat von rkr Beitrag anzeigen
    Dann brauchst du erst mal nur
    Code:
    sudo apt-get install php-cli
    Dann hast du php auch auf der commando-zeile.
    Ich habe jetzt php5-cli installiert und ein paaar Testskripte laufen lassen. Immer wenn ich Änderungen vornehme, werden diese auch übernommen. Das Problem: Die Änderungen werden auch jedesmal wirksam, wenn ich das gleiche Skript im Browser aufrufe. Schließlich tritt das Phänomen ja nur manchmal auf. Ich kann also nur warten, bis das Problem mal wieder auftritt und dann das betreffende Skript in der Kommandozerile aufrufen und gucken, ob es dort Änderungen übernimmt.

    Das kann allerdings ein bisschen dauern. Also Danke erstmal für Deine Hilfe

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Dann brauchst du erst mal nur
    Code:
    sudo apt-get install php-cli
    Dann hast du php auch auf der commando-zeile.

    Einen Kommentar schreiben:


  • pudem
    antwortet
    Zitat von rkr Beitrag anzeigen
    Uh, da fehlt noch viel Wissen
    Was für ein Linux ist das?
    Linux Mint 1 'Debian', Cinnamon 64 bit

    Zugegeben, bin nicht grade der Crack - gehe immer nur so weit, bis das funktioniert, was ich will

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Uh, da fehlt noch viel Wissen
    Was für ein Linux ist das?

    Einen Kommentar schreiben:


  • pudem
    antwortet
    Zitat von rkr Beitrag anzeigen
    Was tut denn das script? Wenn es nichts besonderes macht, dann kannst du ja mal versuchen es von der shell aus aufzurufen. Wenn das auch nicht geht, dann koennte(!) es ein opcode-cache sein, bei dem der mtime-check deaktiviert ist.
    Ich tippe aber mal auf was ganz einfaches.

    Das Phänomen ist schon öfter bei diversen Skripten aufgetreten. Und die machen so das Übliche: Diverse Berechnungen durchführen, auf Datenbanken zugreifen und sie verändern usw. - also nichts Exotisches. PHP vom Terminal auszuführen habe ich noch nie gemacht - der Befehl " PHP bla.php" zeigt mir, dass PHP von der Konsole nicht installiert ist (command not found).

    Das mit dem opcode-Cache scheint nicht die Ursache zu sein: Ich habe mal geguckt und festgestellt, dass php-apc bzw. php5-apcu auf meinem System gar nicht installiert ist.

    Ich habe auf einer anderen, normalen Festplatte die gleichen Skripte gehabt (ubuntu). Da trat der Fehler nicht auf. Also liegt das entweder an der SSD oder an einer anderen Konfiguration der (neueren) Apache- bzw. PHP-Versionen, vermute ich mal.

    Ich werde mal meine Skripte auf die normale Festplatte auslagern und und gucken, ob es dann geht...

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Was tut denn das script? Wenn es nichts besonderes macht, dann kannst du ja mal versuchen es von der shell aus aufzurufen. Wenn das auch nicht geht, dann koennte(!) es ein opcode-cache sein, bei dem der mtime-check deaktiviert ist.
    Ich tippe aber mal auf was ganz einfaches.

    Einen Kommentar schreiben:

Lädt...
X