我想按flock
锁定文件。我阅读了文档并说明了
这些锁只适用于当前的PHP进程。
那么什么是PHP process
?如果Web服务器中有一个PHP项目,并且有许多客户端在他们的计算机浏览器上打开该项目,那么所有这些客户端计算机是否都启动了不同的PHP进程?如果是这样,那么flock
真的会锁定那种情况吗?我想要的是在我第一次访问该文件时将文件锁定在Web服务器上,即使有许多其他客户端计算机试图在页面上启动相同的功能!
答案 0 :(得分:0)
这一切都取决于哪个操作系统以及如何通过Web服务器设置服务器和php。在Windows上,我相信它的一个php.exe进程应该不会太难掌握。在linux上,一个php进程处理每个apache请求。
例如,我发布了>
ps aux | grep php
我得到了:
root 4346 0.0 1.6 345920 19068 pts/0 T Mar12 0:04 emacs mission_insert.php
这个节目我用emacs打开了一个名为mission_insert.php的php文件,它没有显示有关php请求的任何内容,但是它通过httpd / apache处理。
当我发出>
时ps aux | grep httpd
我得到以下内容:
root 3255 0.0 2.3 616964 27720 ? Ss Mar11 0:22 /usr/sbin/httpd -DFOREGROUND
apache 7227 0.0 1.8 723060 22040 ? S 03:35 0:01 /usr/sbin/httpd -DFOREGROUND
apache 7228 0.0 1.7 722828 20752 ? S 03:35 0:01 /usr/sbin/httpd -DFOREGROUND
apache 7229 0.0 1.7 723500 20136 ? S 03:35 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7230 0.0 1.8 723008 22324 ? S 03:35 0:01 /usr/sbin/httpd -DFOREGROUND
apache 7374 0.0 1.7 723136 20868 ? S 09:38 0:01 /usr/sbin/httpd -DFOREGROUND
apache 7380 0.0 2.0 725124 23840 ? S 09:38 0:01 /usr/sbin/httpd -DFOREGROUND
apache 7381 0.0 1.8 725140 21392 ? S 09:38 0:01 /usr/sbin/httpd -DFOREGROUND
apache 7382 0.0 1.9 724620 22880 ? S 09:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 7385 0.0 1.7 723028 20864 ? S 09:38 0:01 /usr/sbin/httpd -DFOREGROUND
apache 7578 0.0 0.9 617232 11396 ? S 10:22 0:00 /usr/sbin/httpd -DFOREGROUND
root 7628 0.0 0.0 112640 960 pts/0 R+ 11:27 0:00 grep --color=auto httpd