gpt4 book ai didi

php - 是什么导致 PHP 锁定文件

转载 作者:可可西里 更新时间:2023-11-01 14:37:49 26 4
gpt4 key购买 nike

在我的服务器上,脚本和脚本创建的缓存文件偶尔会被 PHP 进程锁定。一旦锁定,它们将无法通过网络共享、服务器本地或 PHP 本身访问。刷新页面导致访问被拒绝错误:

Warning:  rmdir(C:\inetpub\wwwroot\mdblog\public\..\cache\posts\2012) 
[function.rmdir]: Directory not empty in
C:\inetpub\wwwroot\mdblog\public\system\Filesystem.php on line 52

第 52 行是 rmdir($dir);

在“大量”磁盘操作(连续快速刷新页面、一次删除多个文件等)后,问题更为普遍。它是带有 IIS7 和 PHP 5.3.13(使用 FastCGI)的 Windows Server 2008 R2 服务器,在 VM 服务器上运行,没有病毒扫描程序,使用 Web 平台安装程序安装了 PHP。 dxdiag

执行 iisreset 可以暂时解决问题。然而,我正在编写一个静态站点生成函数,这导致每隔几分钟就会出现这个问题。

最佳答案

是否有可能您的脚本 chdir()-ed 到该目录?在 Windows 下,您无法删除任何正在运行的进程的当前目录。有时您会收到奇怪的消息(例如“目录不为空”),而真正的原因是有进程以该目录作为当前目录运行。

我的想法是 IIS 使 PHP 进程保持事件状态(因为在 Windows 下,启动新进程是重量级操作),因此池中未使用的进程会阻止您删除这些目录。通过重新启动 IIS,您可以终止池中的所有进程,从而使删除成为可能。

尝试 chdir() 到 PHP 脚本末尾的默认目录,看看它是否有效。

关于php - 是什么导致 PHP 锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com