Nginx支持php
2021/12/13 7:20:28
本文主要是介绍Nginx支持php,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 一.简介
- 二.配置
- 三.测试
- 四.参数
一.简介
Nginx本身只能解析html文件,但有些网页是php写的,就需要Nginx连接php,将网页解析成html再发给客户端。
配置中将.php 结尾的请求通过 FashCGI 交给 PHP-FPM 处理,PHP-FPM是PHP的一个FastCGI管理器。
二.配置
1.若没有安装php-fpm,可以看这篇文章安装。
2.在server字段中添加一个location字段
location ~ \.php$ { #匹配php文件,只有php文件才放到这里解析 root html; #php页面地址 #nginx将会连接本地 9000 端口执行PHP文件,使用的tcp/ip协议,速度较慢。若在本地可以换成socket方式,去连接php-fpm的sock文件,改成fastcgi_pass unix:/var/run/phpfpm.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #/usr/local/nginx/html是php文件所在的目录,虽然root那行指定了目录,但通常不靠谱 fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; }
3.编写php测试页面
vim /usr/local/nginx/html/index.php
<?php phpinfo(); ?>
4.重启
nginx -s reload
三.测试
1.浏览器访问http://127.0.0.1/index.php
四.参数
以下均添加到location所在字段
#第一行代码是为FastCGI缓存指定一个文件路径、目录结构等级、关键字区域存储时间和非活动删除时间。 fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m; #指定连接到后端FastCGI的超时时间,默认60秒 fastcgi_connect_timeout 30; #指定向FastCGI传送请求的超时时间,规定时间内后端服务器必须传输完所有数据 fastcgi_send_timeout 30; #指定接收FastCGI应答的超时时间,如果php-fpm迟迟不发送,将超时 fastcgi_read_timeout 30; #用于指定读取nginx的FastCGI去响应php-fpm的响应头要多大的容量 fastcgi_buffer_size 64k; #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16k”、“4 64k”等。 fastcgi_buffers 4 64k; #用于系统很忙是使用的大小,的默认值是fastcgi_buffers的两倍。 fastcgi_busy_buffers_size 128k; #表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍 fastcgi_temp_file_write_size 128k; #表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502错误的发生,但是开启缓存也会引起很多问题,要视具体情况而定。 fastcgi_cache TEST; #fastcgi用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分钟。 fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 301 1d; fastcgi_cache_valid any 1m;
这篇关于Nginx支持php的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享