案例:
我有一个当前被许多用户执行的 PHP 脚本。
此脚本需要一些时间才能完成(例如,从浏览器获取数据、处理数据、更新数据库等)
现在我修改了脚本并使用 FTP 客户端将其上传到服务器。 FTP 客户端高兴地上传并说已上传。
现在这里到底发生了什么?
当我上传修改后的脚本时,当前执行发生了什么?
我想到的可能性是:
1) 目前所有的执行都被搞砸了。
上传新脚本后,执行停止。
如果是这种情况(我祈祷不是),如何在不影响当前执行的情况下将脚本上传到服务器?
2) 当前执行是用旧脚本完成的。当新请求到来时,将使用新修改的脚本对其进行处理。
3)还有别的吗?
最佳答案
假设您有 index.php
进行一些密集计算,花费相当多的时间,然后调用 process.php
访问者访问您的网站并加载 index.php
。这是由您的 Web 服务器软件(Apache、nginx、IIS 等)加载到内存中并提供给您的访问者。当您的访问者在 index.php
上运行这些计算时,您决定上传 index.php
和 process.php
的更新版本。此时,您的访问者将继续运行index.php
的旧 版本,并且在刷新页面之前他们不会看到新版本。
但是,在旧版本的 index.php
调用新版本的 process.php
后,他们会看到它。这是因为服务器读取任何被调用的文件,将其加载到内存中并将其提供给用户,从而在服务器和用户之间创建 session 。如果用户在部分上传时尝试获取 process.php 或 index.php,他们将收到错误消息。
关于php - 将 php 文件(当前正在使用)上传到服务器时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11138833/