2017-09-23 71 views
1

我在本地&服務器上有一堆.php文件。那些在客戶端使用的所有文件(移動應用程序)作爲Web服務。但是當這些文件/文件夾經過FTP上傳到服務器上之後,當時由於文件上傳過程的進行,某些Web服務在客戶端停止工作或行爲異常(返回Web服務響應中的HTML內容)。當文件通過FTP上傳到服務器時,客戶端無法訪問php文件

當我的本地網絡很慢並嘗試在服務器上上傳文件時,有時候也會遇到單個文件的問題。

我有很多活着的用戶,當從服務器端上傳文件時很少遇到這個問題。

使用AWS serverFileZilla使用FTP

回答

1

您面臨着非原子操作的典型問題。解決方法是使操作成爲原子操作,即將所有文件更改爲一個。

爲此,您將目錄中的所有文件,可能是您的htdocs目錄。接下來,您將該目錄重命名爲htdocs1並創建一個新目錄htdocs2。最後,你創建一個符號鏈接htdocs指向htdocs1

現在,您可以花費所有時間將所有新文件上傳到htdocs2。完成後,將符號鏈接更改爲指向htdocs2而不是htdocs1

最後,如果您使用某些PHP加速器,則可能需要重新加載Web服務器(或PHP-FPM)以防萬一遇到緩存問題。

對於您網站的下一次更新,您也可以做同樣的事情,只需上傳到htdocs1,然後將符號鏈接更改回它。

因此,在短期:

mv htdocs htdocs1 
mkdir htdocs2 
ln -sTf htdocs1 htdocs 

,如果你想使用其他目錄只要調整的最後一個命令。

如果您沒有shell訪問權限,您也可以編寫一個PHP腳本來爲您執行此操作,因爲PHP也可以創建符號鏈接:http://php.net/manual/en/function.symlink.php

相關問題