是否可以在实时更换服务器上的PHP文件?

时间:2015-06-07 05:52:01

标签: php server

如果我想使用FTP更新服务器上的PHP文件,我可以在网站上线时更换它,并且可以随时执行吗?

如果用户在被替换的确切时刻尝试执行php文件,是否会出现404错误(或任何其他错误)?或者会有某种文件锁定'它被覆盖了吗?

我应该将服务器置于“维护模式”状态吗?第一λ

6 个答案:

答案 0 :(得分:1)

理论上,替换实时文件实际上会导致404等问题。如果这是你担心的事情,那么将服务器置于“维护模式”将是最安全的方法。

此外,您应该研究一个比通过FTP转储文件更强大的部署过程。像Git这样的版本控制系统使这种事情变得更简单,因为您可以在本地处理事务,然后在服务器上使用单个命令更新所有内容。这种过程的“采取现场离线”步骤也是常见的,以使过渡安全和顺利。您想要更改的文件越多,这就越重要。

实际上,在FTP传输期间,低流量站点丢弃404的可能性很小,但是您需要记住这一点,因为可能存在潜在的风险,具体取决于您的应用程序和环境。 / p>

看看Vincent Driessen的Git branching model。它概述了一些真正的良好做法。特别是在与项目中的其他人合作时。

答案 1 :(得分:0)

如果某些用户在通过FTP更新文件时访问该文件,则会出现一些或其他问题。将您的网站置于维护模式然后更新文件始终是一个好习惯。

答案 2 :(得分:0)

这取决于您的FTP服务器如何操作。在大多数情况下,当您的PHP脚本不完整(部分上载)时会有很短的时间,这会导致解析/语法错误。

因此,如果您有一个高负荷的网站,每秒对该脚本有很多请求,更好的方法是使用其他名称上传脚本,然后重命名。

答案 3 :(得分:0)

是的,你可以在飞行中更改文件。首先,服务器处于“维护模式”是一个很好的实践,以便在完全使用之前进行最终检查

答案 4 :(得分:0)

我的建议:你对现场网站所做的一切都应该以可逆的方式完成。

  1. 在开发服务器上测试文件
  2. 将您的网站置于维护模式。
  3. 备份所有代码和数据库。
  4. 更新您的文件检查所有内容是否为
  5. 将网站直播 再次

答案 5 :(得分:0)

PHP根据需要加载文件,而不考虑它们是否被替换。因此,如果您有许多PHP文件(例如类文件)并全部替换它们,而不是锁定您的站点,则可能会加载旧文件和新文件 - 甚至无法找到文件。

您可以使用两种扩展来解决此问题;一个用于PHP,一个用于Apache:

两个扩展都使用符号链接(符号链接;指向可以找到路径的位置的指针)。当请求开始时,扩展将解析符号链接(找出符号链接指向的位置),然后缓存它。然后,请求将仅使用已解析的路径。如果不使用其中一个扩展,PHP将在每次需要文件时解析路径,因此如果您在请求中更改它,那么PHP将查找错误的位置。

完成文件更新后,只需将符号链接更改为新文件的存储位置即可。已经运行的请求将继续使用旧路径,新请求将使用新路径。