在长期潜伏之后,新注册的用户在这里!
我在本地(现在)作为服务在Windows上运行的Apache 2.2 Web服务器安装了PHP 5。我正在使用PHP的exec()来运行服务器上托管的命令行客户端(.exe),它将用户验证到数据库并代表用户进行预定义的SQL查询。
我的问题是:Apache如何通过(相同的)PHP exec()命令运行多个用户请求的程序?在这种情况下,Apache是否会为将要访问它的所有用户使用相同的客户端实例,或者Apache是否会为每个用户创建客户端的新实例?
由于客户端是为单个用户设计的,如果Apache确实重用了同一个客户端实例,它将遇到很多并发问题。
我感谢任何帮助,谢谢!
答案 0 :(得分:2)
exec()
时,PHP都会启动该进程,并且只要完成它就会一直运行。因此,如果多个用户同时访问您的网站触发它的脚本,您最终会立即运行多个流程副本。
除非您使用一些非常奇怪的数据库,否则可能有一种更好的方法来查询它而不是启动命令行工具。例如,如果您的数据库有可用的ODBC驱动程序,则可以通过PHP ODBC扩展名直接使用它。