2017-09-23 3 views
1
hochladen

Ich habe Haufen von .php Dateien in lokalen & Server. Diese alle Dateien verwenden auf der Client-Seite (Mobile App) als Web-Services. Aber wenn diese Datei/Ordner auf dem FTP-Server hochgeladen wurde, nachdem sie zu diesem Zeitpunkt geändert wurde, funktionierte auf der Client-Seite ein Web-Service nicht mehr oder er benahm sich nicht mehr (HTML-Inhalt in der Web-Service-Antwort), weil der Datei-Upload-Prozess weiterging.PHP-Datei nicht erreichbar auf der Client-Seite, wenn die gleiche Datei auf dem Server über FTP

Manchmal auch dieses Problem für einzelne Datei auch wenn mein lokales Netzwerk langsam ist und versuchen, Datei auf dem Server hochzuladen.

Ich habe viele Live-Benutzer und bekomme selten dieses Problem beim Hochladen von Dateien von der Serverseite.

Mit AWS server und FileZilla mit für FTP.

Antwort

1

Sie stehen vor einem typischen Problem nicht atomarer Operationen. Die Lösung besteht darin, die Operation atomar zu machen, dh alle Dateien gleichzeitig zu ändern.

Dafür haben Sie alle Dateien in einem Verzeichnis, wahrscheinlich Ihre htdocs Verzeichnis. Als Nächstes benennen Sie dieses Verzeichnis in htdocs1 um und erstellen ein neues Verzeichnis htdocs2. Und schließlich erstellen Sie eine symbolische Verbindung htdocs, um auf htdocs1 zu zeigen.

Jetzt können Sie sich alle Zeit nehmen, um alle neuen Dateien auf hochzuladen. Wenn Sie fertig sind, ändern Sie den symbolischen Link so, dass er auf statt auf htdocs1 zeigt.

Schließlich, wenn Sie einige PHP-Beschleuniger verwenden, müssen Sie möglicherweise den Webserver (oder PHP-FPM) neu laden, falls Sie Caching-Probleme haben.

Für die nächste Aktualisierung Ihrer Website, tun Sie das gleiche, einfach in htdocs1 hochladen und dann die symbolische Verbindung zurück zu ändern.

Also kurz gesagt:

mv htdocs htdocs1 
mkdir htdocs2 
ln -sTf htdocs1 htdocs 

nur den letzten Befehl anpassen, wenn Sie das andere Verzeichnis verwenden möchten.

Falls Sie keinen Shell-Zugriff haben, können Sie auch ein PHP-Skript schreiben, um dies für Sie zu tun, da PHP auch symbolische Links erstellen kann: http://php.net/manual/en/function.symlink.php.

Verwandte Themen