0

潜伏许久的新注册用户!

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

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

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

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

4

1 回答 1

2

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

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

于 2012-07-14T04:11:21.260 回答