我不太明白什么是PHP进程


I do not understand very well what a PHP process is

我想通过flock锁定文件。我阅读了文档,它说

这些锁仅适用于当前的 PHP 进程。

那么什么是PHP process?如果Web服务器内部有一个PHP项目,并且有许多客户端在计算机的浏览器上打开该项目,那么所有这些客户端计算机是否都启动了不同的PHP进程?如果是这样,那么flock真的锁定了这种情况吗?如果我是第一个访问文件的人,我想要的是将文件锁定在Web服务器上,即使有许多其他客户端计算机试图在页面上启动相同的功能!

这完全取决于哪个操作系统以及如何通过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