Nginx 默认情况下不会运行 PHP,需要借助第三方模块来实现。
常见的运行 PHP 的方式是使用 FastCGI 模式,这种模式下,Nginx 会将 PHP 脚本交给外部的 FastCGI 进程来处理,然后将处理结果返回给客户端。
具体来说,Nginx 通过 FastCGI 协议与 FastCGI 进程进行通信,将 HTTP 请求转发给 FastCGI 进程,然后等待 FastCGI 进程处理完毕后将结果返回给客户端。在 FastCGI 模式下,Nginx 会启动一个或多个 FastCGI 进程,用于处理 PHP 脚本,这些进程可以运行在同一台机器上,也可以运行在不同的机器上。
通常情况下,Nginx 会使用 FastCGI 模块来与 FastCGI 进程进行通信,并通过配置文件将 PHP 脚本和 FastCGI 进程进行绑定。例如:
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
这段配置代码将以正则表达式匹配所有以 .php 结尾的请求,将请求交给 FastCGI 进程处理。其中,fastcgi_pass 指令指定了 FastCGI 进程监听的地址,这里使用的是 Unix 套接字;fastcgi_index 指令指定了默认的 PHP 文件名,即 index.php;fastcgi_param 指令指定了 PHP 脚本的路径;include 指令用于引入 FastCGI 参数配置。
总之,Nginx 默认不会运行 PHP,但可以通过借助第三方模块来实现运行 PHP 的功能,常见的方式是使用 FastCGI 模式,通过与 FastCGI 进程进行通信来处理 PHP 脚本。