当通过FTP在服务器上上载相同文件时,客户端无法访问php文件

时间:2017-09-23 06:24:56

标签: php server ftp filezilla

我在本地&amp ;;中拥有大量.php个文件服务器。那些在客户端(移动应用程序)使用的所有文件作为Web服务。但是当那些文件/文件夹经过FTP修改后,当时由于文件上传过程的原因,某些Web服务在客户端停止工作或行为不端(在Web服务响应中返回HTML内容)。

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

我有很多实时用户,从服务器端上传文件时很少遇到此问题。

AWS serverFileZilla用于FTP

1 个答案:

答案 0 :(得分:1)

您面临着非原子操作的典型问题。解决方案是使操作成为原子操作,这意味着将所有文件更改为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