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,然后原路返回。具体流程如下:

router.png

nginx配置

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

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文件:

start.png

3 查看扩展 php -m

redis.png

配置文件

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

phpini.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容