PHP各种运行方式的不完整总结
💡
原文中文,约3300字,阅读约需8分钟。
📝
内容提要
PHP 的运行方式主要有线程安全(TS)和非线程安全(NTS),适用于不同环境。常见的 SAPI 包括 CLI、CGI、Apache 模块和 FPM。流行的部署方式是 Nginx + FPM 和 Apache + Apache 模块,其中性能最佳的组合是 Nginx + FPM。
🎯
关键要点
-
PHP 的运行方式主要有线程安全(TS)和非线程安全(NTS)。
-
TS 采用加锁机制,保证数据一致性,但执行时间较长。
-
NTS 不提供数据访问保护,执行时间较短,但可能导致数据错乱。
-
在 Windows 环境下通常会区分 TS 和 NTS,而 Linux 环境下通常只有 NTS。
-
PHP 常用的 SAPI 包括 CLI、CGI、Apache 模块和 FPM。
-
流行的部署方式是 Nginx + FPM 和 Apache + Apache 模块。
-
PHP 的内置服务器是单进程单线程,效率不高。
-
CGI 模式性能较差,现已很少使用。
-
FastCGI 模式通过 php-cgi 对接 HTTP 服务器,性能较好。
-
Apache 模块的运行方式流行,但需根据 MPM 选择 PHP 版本。
-
常用的 MPM 模式包括 prefork、worker、event 和 winnt。
-
PHP 官方不建议使用线程化 MPM 的 Apache 来运行 PHP。
-
性能最佳的组合是 Nginx + FPM,支持 HTTP/2 的 Apache 需使用特定配置。
➡️