php - 将 php 文件(当前正在使用)上传到服务器时会发生什么?

标签 php file-upload ftp

案例:
我有一个当前被许多用户执行的 PHP 脚本。
此脚本需要一些时间才能完成(例如,从浏览器获取数据、处理数据、更新数据库等)

现在我修改了脚本并使用 FTP 客户端将其上传到服务器。 FTP 客户端高兴地上传并说已上传。


现在这里到底发生了什么?
当我上传修改后的脚本时,当前执行发生了什么?

我想到的可能性是:

1) 目前所有的执行都被搞砸了。
上传新脚本后,执行停止。 如果是这种情况(我祈祷不是),如何在不影响当前执行的情况下将脚本上传到服务器?

2) 当前执行是用旧脚本完成的。当新请求到来时,将使用新修改的脚本对其进行处理。

3)还有别的吗?

最佳答案

假设您有 index.php 进行一些密集计算,花费相当多的时间,然后调用 process.php

访问者访问您的网站并加载 index.php。这是由您的 Web 服务器软件(Apache、nginx、IIS 等)加载到内存中并提供给您的访问者。当您的访问者在 index.php 上运行这些计算时,您决定上传 index.phpprocess.php 的更新版本。此时,您的访问者将继续运行index.php 版本,并且在刷新页面之前他们不会看到新版本。

但是,在旧版本的 index.php 调用新版本的 process.php 后,他们会看到它。这是因为服务器读取任何被调用的文件,将其加载到内存中并将其提供给用户,从而在服务器和用户之间创建 session 。如果用户在部分上传时尝试获取 process.php 或 index.php,他们将收到错误消息。

关于php - 将 php 文件(当前正在使用)上传到服务器时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11138833/

相关文章:

ftp - lftp:如何递归设置权限;首先按目录而不是按文件

java - 使用 FTP4J 恢复上传进度并获取上传百分比

php - 在 foreach 循环参数中分解数组

php - 将 PHP 日期调整为当前年份

java - 使用 Java 将 HTML 页面以及引用的图像上传到服务器

c# - 将 C# 库迁移到 Windows Phone

excel - 在 Windows Server 2012 R2 上从 VBA 调用批处理文件时出现奇怪的 FTP 行为

php - 使用 AJAX 更新 DOM 以反射(reflect)数据库中的更改的最佳方法是什么?

php - 如何从 PHP 中的数据库查询返回数值?

python - 从 flask 中的文件存储对象中提取文件