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


Apache file execution model using PHP exec()

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

我有一个Apache 2.2 web服务器,作为服务在Windows上本地运行(目前),并安装了PHP 5。我使用PHP的exec()来运行服务器上托管的命令行客户端(.exe),该客户端将用户身份验证为数据库,并代表用户进行预定义的SQL查询。

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

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

我很感激能得到的任何帮助,谢谢!

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

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