使用PHP exec()的Apache文件执行模型

时间:2012-07-14 01:10:58

标签: php apache exec

在长期潜伏之后,新注册的用户在这里!

我在本地(现在)作为服务在Windows上运行的Apache 2.2 Web服务器安装了PHP 5。我正在使用PHP的exec()来运行服务器上托管的命令行客户端(.exe),它将用户验证到数据库并代表用户进行预定义的SQL查询。

我的问题是:Apache如何通过(相同的)PHP exec()命令运行多个用户请求的程序?在这种情况下,Apache是​​否会为将要访问它的所有用户使用相同的客户端实例,或者Apache是​​否会为每个用户创建客户端的新实例?

由于客户端是为单个用户设计的,如果Apache确实重用了同一个客户端实例,它将遇到很多并发问题。

我感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

每次PHP调用exec()时,PHP都会启动该进程,并且只要完成它就会一直运行。因此,如果多个用户同时访问您的网站触发它的脚本,您最终会立即运行多个流程副本。

除非您使用一些非常奇怪的数据库,否则可能有一种更好的方法来查询它而不是启动命令行工具。例如,如果您的数据库有可用的ODBC驱动程序,则可以通过PHP ODBC扩展名直接使用它。