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 需使用特定配置。
➡️