php环境解惑

本文不会具体讲php环境怎么搭建,只是记录一个php新手遇到的疑惑与问题,为他人提供参考。

名称解释

CGI:全称是“通用网关接口”(Common Gateway Interface)。程序之间“交谈”的一种方式。

FastCGI:CGI采用fork-and-execute的模式,而FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着。

php-fpm:PHP-FPM(FastCGI Process Manager),FastCGi进程管理器。

访问流程

以nginx+php-fpm为例,请求打到nginx,nginx将请求转发到php-fpm监听的9000接口,php-fpm处理完请求,将结果返回给nginx,然后原路返回。具体流程如下:

php环境解惑_第1张图片
router.png

nginx配置

nginx中需要将请求转发给php-fpm,配置如下:

php环境解惑_第2张图片
nginxconf.png

root:指向php代码的web目录,web目录下有index.php为请求入口。
fastcgi_pass:为php-fpm监听的接口(127.0.0.1:9000 ,可以通过losf -i:9000查询)或者套接字( unix:/tmp/php-fpm.sock netstat -nptl | grep php-fpm查询),

portshow.png

fastcgi_param:php请求需要访问的是网站根目录下php文件,没有这个参数,请求会返回空白。

一句话,php请求会打到root指向的目录下的fastcgi_index指向的文件。

第三方包

php5.3.3之前php-fpm只是一个第三方的包,安装php并不会自动安装php-fpm,之后的版本已经集成了php-fpm。

扩展包

当需要使用某种工具时,必须得添加相应的扩展包,而嫡系的扩展包,安装会比较容易。譬如redis,而一些第三方的就相对麻烦了,譬如lua。

切记,安装之后记得重启php-fpm才会生效。

相关命令

1 关掉php-fpm进程:sudo pkill php-fpm
2 重启好像只能找到php-fpm文件:

php环境解惑_第3张图片
start.png

3 查看扩展 php -m

redis.png

配置文件

php配置文件为php.ini,修改配置文件之后需要重启服务。

phpini.png

安装完扩展之后,需要在php.ini中添加extension=redis.so,然后重启php-fpm才能生效。

你可能感兴趣的:(php环境解惑)