PHP运行模式和(非)线程安全

运行模式

  • CGI模式

HTTP服务器收到用户请求后,启动一个子进程(php / php.exe)去处理,处理完后结束该子进程。

  • FastCGI模式

FastCGI作为HTTP服务器和动态脚本语言(PHP)的通信接口。PHP启动FastCGI进程管理器PHP-FPM,HTTP服务器收到用户请求后转发给PHP-FPM处理。

  • Apache模块模式

 mod_php以Apache模块的形式,在Apache启动时加载进去,Apache服务器收到用户请求后交由mod_php模块处理。

  • CLI

命令行模式,直接执行 php 命令。

  • ISAPI模式

Windows服务器下作为IIS的WEB服务扩展运行。PHP 5.3版本后丢弃 ISAPI 模块支持,使用改进的 FastCGI SAPI模块替代[Link]。

线程安全和非线程安全

PHP以Apache模块模式和ISAPI模式运行时,用Thread Safe版本;其它模式用Non-Thread Safe版。