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版。

 

PHP和HTTP Authentication

# 获取认证用户名和密码

$_SERVER['PHP_AUTH_USER'];
$_SERVER['PHP_AUTH_PW'];

参考资料:

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication
    https://www.nginx.com/resources/admin-guide/restricting-access-auth-basic/
    http://php.net/manual/fa/features.http-auth.php