Web Expert M - vHost auf Symlink - Apache merkt die Änderung nicht

  • Hallo,


    für einen Kunden konfiguriere ich gerade dessen Web Expert M Paket. Er hat eine Symfony Anwendung, die wir mittels Deployer auf das System legen.
    Dafür sieht die Dateistruktur folgendermaßen aus:


    /projekt
    /projekt/releases
    /projekt/releases/1234


    /projekt/releases/1235/web

    /projekt/releases/1235

    /projekt/releases/1235/web

    /projekt/shared
    /projekt/shared/var


    /projekt/shared/var/logs

    /projekt/shared/var/cache

    /projekt/shared/var/session

    /projekt/current => /projekt/releases/1235


    Der vHost mit http://www.xyz.de zeigt azuf /projekt/current/web


    Soweit so gut. Nach einem Release wird der Symlink auf die jeweils neueste Version im Releases Ordner geswitched. Jedoch scheint der Apache des Projekts das nicht mitzubekommen oder cached den (alten) realen Pfad, anscheinend auch über Stunden.
    Weiß jemand, wie man das abstellen kann?






    VG t_b

  • Wenn der Symfony Cache geshared ist


    /projekt/shared/var/cache


    dann muss der bei jedem deploy gelöscht werden, sonst zieht sich Symfony den cache aus dem alten deployment und der apache hat eigentlich schon ganz brav den neuen symlink erkannt.
    Probier mal alles im cache ordner zu löschen. Dann baut sich Symfony das beim Start der Webseite wieder neu auf.

  • Hallo,


    "cache" wird nicht mit geshared, nur "logs" und "session".


    habe Follow Symlinks aktiviert, leider keine Verbesserung. Der Apache bekommt es erst mit, wenn der Ordner auf dem der Symlink vorher lag, gelöscht oder verschoben wird.
    Prinzipiell könnte ich das mit Aufwand bewerkstelligen (deployer prozess anpassen), die Frage ist, ob es nicht auch mit Boardmitteln geht.


    VG t_b

  • mmh, das hört sich danach an, als wenn der zum Zeitpunkt des deployens (und auch noch danach) files im Zugriff hat, die im anderen/alten Verzeichnis liegen.


    Da das ein Webshosting Paket ist, wirst Du keine Möglichkeit haben, den apache mit "service apache restart" beim deployen neu zu starten (dann sollte er definitiv neue symlinks erkennen)
    Da ich nur root-server habe, kann ich das sonst leider nicht nachvollziehen :(

  • mmh, das hört sich danach an, als wenn der zum Zeitpunkt des deployens (und auch noch danach) files im Zugriff hat, die im anderen/alten Verzeichnis liegen

    Das habe ich ausprobiert und zumindest meine Zugriffe scheinen das nicht zu bewirken. Da ich privat ebenfalls vServer habe habe ich damit auch kein Problem. Da es hier aber um ein Kundenprojekt geht und wir Netcup entsprechend empfohlen haben ist das etwas schwierig nun zu sagen nein doch nicht...

  • Ich habe den Thread jetzt nur schnell überflogen…


    Kannst Du das gleiche Problem auch bei statischen Dateien feststellen, die nicht interpretiert/ausgeführt werden? Oder nur bei PHP-Dateien?


    Verwendest Du PHP 7? Ich erinnere mich dunkel daran, dass das am internen Cache von PHP liegen kann, dass veraltete Dateien ausgeführt werden. Über so ein Problem wurde erst kürzlich im Forum eines anderen Hosters diskutiert.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Hallo,


    Ja, wir verwenden PHP 7. Ich habe es mal kurz mit einer txt Datei getestet, bei dieser wurde sofort nach dem deploy auf die Fehlerseite gezeigt.
    Ich schaue mir mal an, ob auf dem system der opcache aktiv ist, denn imho cached php selber nichts, aber mir war nicht klar, dass der opcache sich auf Pfade bezieht...


    VG Torsten

  • Falls es noch jemanden interessiert. Es scheint tatsächlich der opcache gewesen zu sein. Da dieser aber nur für fpm aktiv ist und sich nicht generell löschen lässt habe ich nach dem release noch ein script hinzugefügt, welches über curl eine spezielle seite aufruft, welche im fpm den opcache löscht. Danach hatte ich keine Probleme mehr.