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 需使用特定配置。
❓
延伸问答
PHP的线程安全和非线程安全有什么区别?
线程安全(TS)采用加锁机制,保证数据一致性,但执行时间较长;非线程安全(NTS)不提供数据保护,执行时间较短,但可能导致数据错乱。
在Linux环境下,PHP通常使用哪种运行方式?
在Linux环境下,通常只有非线程安全(NTS)版本的PHP。
PHP常用的SAPI有哪些?
常用的SAPI包括CLI、CGI、Apache模块和FPM。
什么是性能最佳的PHP部署方式?
性能最佳的组合是Nginx + FPM。
Apache模块的运行方式需要注意什么?
需要根据Apache的多进程模块(MPM)选择PHP的版本。
为什么PHP的内置服务器效率不高?
因为PHP的内置服务器是单进程单线程的,运行效率较低。
➡️