繁体   English   中英

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

[英]What happens when a php file (which is currently in use) is uploaded to server?

案件:
我有一个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 这是因为服务器读取所调用的任何文件,将其加载到内存中并将其提供给用户在服务器和用户之间创建会话。 如果用户在部分上载时尝试获取process.php或index.php,则会出现错误。

如果您的服务器上有APC,则脚本将使用旧代码执行,直到您重新启动apache。

如果没有,嗯,你根本就不知道,但我投票给第2号解决方案:脚本应该在执行时“在内存中”,然后在执行结束时丢弃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM