谈谈php中的fastcgi和php-fpm!
fastcgi 是一个与平台无关,与语言无关,任何语言只要按照它的接口来实现,就能实现自己语言的fastcgi能力和web server 通讯。
FastCGI 是一个协议,它是应用程序和 WEB 服务器连接的桥梁。Nginx 并不能直接与 PHP-FPM 通信,而是将请求通过 FastCGI 交给 PHP-FPM 处理。
php$ { try_files $uri /index.php =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }" title="" data-original-title="复制">
location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
这里 fastcgi_pass 就是把所有 php 请求转发给 php-fpm 进行处理。通过 netstat 命令可以看到,127.0.0.1:9000 这个端口上运行的进程就是 php-fpm.
开启php-fpm方式:
php-fpm -R >/dev/null 2>&1 &" title="" data-original-title="复制">
# nohup /usr/sbin/php-fpm -R >/dev/null 2>&1 &
查看php运行目录命令:
php /usr/bin/php" title="" data-original-title="复制">
which php /usr/bin/php
重启php-fpm:
php-fpm restart" title="" data-original-title="复制">
/etc/init.d/php-fpm restart
相关教程推荐:《PHP教程》