当文件通过FTP上传到服务器时,客户端无法访问php文件

问题描述:

我在本地&服务器上有一堆.php文件。那些在客户端使用的所有文件(移动应用程序)作为Web服务。但是当这些文件/文件夹经过FTP上传到服务器上之后,当时由于文件上传过程的进行,某些Web服务在客户端停止工作或行为异常(返回Web服务响应中的HTML内容)。当文件通过FTP上传到服务器时,客户端无法访问php文件

当我的本地网络很慢并尝试在服务器上上传文件时,有时候也会遇到单个文件的问题。

我有很多活着的用户,当从服务器端上传文件时很少遇到这个问题。

使用AWS serverFileZilla使用FTP

您面临着非原子操作的典型问题。解决方法是使操作成为原子操作,即将所有文件更改为一个。

为此,您将目录中的所有文件,可能是您的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