如果我想使用FTP更新服务器上的PHP文件,我可以在网站上线时更换它,并且可以随时执行吗?
如果用户在被替换的确切时刻尝试执行php文件,是否会出现404错误(或任何其他错误)?或者会有某种文件锁定'它被覆盖了吗?
我应该将服务器置于“维护模式”状态吗?第一λ
答案 0 :(得分:1)
理论上,替换实时文件实际上会导致404等问题。如果这是你担心的事情,那么将服务器置于“维护模式”将是最安全的方法。
此外,您应该研究一个比通过FTP转储文件更强大的部署过程。像Git这样的版本控制系统使这种事情变得更简单,因为您可以在本地处理事务,然后在服务器上使用单个命令更新所有内容。这种过程的“采取现场离线”步骤也是常见的,以使过渡安全和顺利。您想要更改的文件越多,这就越重要。
实际上,在FTP传输期间,低流量站点丢弃404的可能性很小,但是您需要记住这一点,因为可能存在潜在的风险,具体取决于您的应用程序和环境。 / p>
看看Vincent Driessen的Git branching model。它概述了一些真正的良好做法。特别是在与项目中的其他人合作时。
答案 1 :(得分:0)
如果某些用户在通过FTP更新文件时访问该文件,则会出现一些或其他问题。将您的网站置于维护模式然后更新文件始终是一个好习惯。
答案 2 :(得分:0)
这取决于您的FTP服务器如何操作。在大多数情况下,当您的PHP脚本不完整(部分上载)时会有很短的时间,这会导致解析/语法错误。
因此,如果您有一个高负荷的网站,每秒对该脚本有很多请求,更好的方法是使用其他名称上传脚本,然后重命名。
答案 3 :(得分:0)
是的,你可以在飞行中更改文件。首先,服务器处于“维护模式”是一个很好的实践,以便在完全使用之前进行最终检查
答案 4 :(得分:0)
我的建议:你对现场网站所做的一切都应该以可逆的方式完成。
答案 5 :(得分:0)
PHP根据需要加载文件,而不考虑它们是否被替换。因此,如果您有许多PHP文件(例如类文件)并全部替换它们,而不是锁定您的站点,则可能会加载旧文件和新文件 - 甚至无法找到文件。
您可以使用两种扩展来解决此问题;一个用于PHP,一个用于Apache:
两个扩展都使用符号链接(符号链接;指向可以找到路径的位置的指针)。当请求开始时,扩展将解析符号链接(找出符号链接指向的位置),然后缓存它。然后,请求将仅使用已解析的路径。如果不使用其中一个扩展,PHP将在每次需要文件时解析路径,因此如果您在请求中更改它,那么PHP将查找错误的位置。
完成文件更新后,只需将符号链接更改为新文件的存储位置即可。已经运行的请求将继续使用旧路径,新请求将使用新路径。