2017-09-23 13 views
1

.php個のファイルをローカル&サーバに格納しています。それらすべてのファイルは、Webサービスとしてクライアント側(モバイルアプリ)で使用します。しかし、それらのファイル/フォルダがFTP経由でFTP経由でアップロードされたときに、ファイルのアップロード処理が進行するため、クライアント側で一部のWebサービスが動作しなくなったり、正しく動作しなくなりました(Webサービスの応答でHTMLコンテンツを返す)。FTPでサーバにアップロードした同じファイルのときにクライアント側でphpファイルにアクセスできない

私のローカルネットワークが遅く、サーバー上のファイルをアップロードしようとしているときにも、この問題が1つのファイルに対しても発生することがあります。

多くのライブユーザがいて、サーバー側からファイルをアップロードするときにこの問題が発生することはめったにありません。

およびFileZillaを使用すると、FTPを使用します。

答えて

1

非アトミック操作の典型的な問題に直面しています。解決策は、操作をアトミックにすることです。つまり、すべてのファイルを1つに変更します。

この場合、すべてのファイルがディレクトリにあります。htdocsディレクトリです。次に、このディレクトリの名前をhtdocs1に変更し、新しいディレクトリhtdocs2を作成します。最後に、htdocs1を指すシンボリックリンクhtdocsを作成します。

これで、すべての新しいファイルをすべてhtdocs2にアップロードするのに時間がかかります。完了したら、htdocs1ではなく、htdocs2を指すシンボリックリンクを変更します。

最後に、PHPアクセラレータを使用している場合は、キャッシングの問題が発生した場合に備えて、Webサーバー(またはPHP-FPM)をリロードする必要があります。

サイトの次回の更新では、同じことを行います。ちょうどhtdocs1にアップロードしてから、シンボリックリンクを元に戻してください。短い中のSO

:あなたは他のディレクトリを使用する場合は

mv htdocs htdocs1 
mkdir htdocs2 
ln -sTf htdocs1 htdocs 

ただ、最後のコマンドを調整します。

シェルアクセスがない場合は、PHPでシンボリックリンクを作成することもできます(http://php.net/manual/en/function.symlink.php)。

関連する問題