fastcgi

linux编译安装nginx以及各个步骤参数的详解

白昼怎懂夜的黑 提交于 2020-04-06 08:30:32
1.环境以及依赖包的安装 [root@localhost ~]# systemctl stop firewalld && setenforce 0 #首先关闭防火墙和selinux [root@localhost ~]# yum -y install gcc gcc-c++ #安装编译环境 [root@localhost ~]# yum install -y pcre pcre-devel #安装pcre软件包(使nginx支持http rewrite模块) [root@localhost ~]# yum install -y openssl openssl-devel #安装openssl-devel(使nginx支持ssl) [root@localhost ~]# yum install -y zlib zlib-devel #安装zlib [root@localhost ~]# useradd nginx #创建用户nginx [root@localhost ~]# passwd nginx #设置用户密码 2.下载并安装 [root@localhost ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz #下载,你也可以直接去官网上下载压缩包然后rz上传到虚拟机上 [root@localhost ~]# tar

用brew安装nginx并配置

五迷三道 提交于 2020-04-05 18:45:22
安装流程 这里使用 brew 来安装软件。 安装 brew install nginx 查看安装信息(经常用到, 比如查看安装目录等) sudo brew info nginx 安装后,主要看brew把nginx安装到哪里去了,默认是安装到 /usr/local/etc/nginx/nginx.conf 常用命令记录 查看nginx版本 nginx -v 启动nginx服务 brew services start nginx 访问: http://localhost:8080/ 后,看到如下内容就是启动成功了。 如果没有启动成功,查看一下进程, ps -ef|grep nginx : 查看是否有三个进程,如果进程没有启动,答应我,先去看报错文件 好吗!去主配置文件 /usr/local/etc/nginx/nginx.conf ,将报错日志功能打开,相信我,你看报错日志解决的速度,一定比你查百度要快。 重新加载nginx # 答应我,有任何一丁点修改过nginx的配置文件后,都第一时间重新加载一遍nginx 好吗! # 答应我,有任何一丁点修改过nginx的配置文件后,都第一时间重新加载一遍nginx 好吗! # 答应我,有任何一丁点修改过nginx的配置文件后,都第一时间重新加载一遍nginx 好吗!不然你就没法使 你修改的过的功能。 nginx -s reload

PHP生命周期

不羁的心 提交于 2020-04-05 17:04:59
PHP的整个生命周期被划分为以下几个阶段:模块初始化阶段、请求初始化阶段、执行脚本阶段、请求关闭阶段、模块关闭阶段。php的cli模式下每次执行一个脚本都会完整的经历这些阶段,而FastCgi模式下则只会在启动时执行一次模块初始化阶段,然后接下来的各个请求只会执行请求初始化阶段、脚本执行阶段,请求关闭阶段。 MINIT(module init 模块初始化) 启动 PHP 输出、初始化垃圾回收器 启动 Zend 引擎、注册 Zend 核心扩展、Zend 标准常量 解析 PHP.ini,映射 PHP.ini 相关配置 注册静态、动态编译的扩展 回调各扩展定义的 module starup 钩子函数 用一句话来说,就是初始化类、常量、扩展等 PHP 所用到的资源 RINIT(request init 请求初始化) PHP 初始化脚本执行的基本环境,SAPI 将控制权交给 PHP,激活 Zend 引擎,初始化执行器 PHP 脚本执行 Zend 引擎接管控制权,将 PHP 脚本编译成 Opcodes,并顺序执行 RSHUTDOWN (request shutdown 请求结束) PHP 脚本执行完之后进入请求结束阶段,PHP 启动清理程序,这个阶段,将 flush 输出内容,发送 http 响应内容,关闭 PHP 执行器 MSHUTDOWN(module shutdown 模块关闭)

Nginx和多版本PHP共存

家住魔仙堡 提交于 2020-03-26 10:07:51
3 月,跳不动了?>>> 软件下载 与nginx整合的php需要选择Non Thread Safe(nts)的免安装版本。 NGINX下载。本例下载的是nginx/Windows-1.10.2。下载后解压即可。 PHP7.0下载。本例下载的是PHP 7.0 (7.0.14) VC14 x64 Non Thread Safe。下载后解压即可。 PHP5.2下载。本例下载的是php-5.2.17-nts-Win32-VC6-x86.zip。下载后解压即可。 RunHiddenConsole,用于启动php-cgi,可以实现关闭窗口依然在后台运行。解压后复制RunHiddenConsole.exe到nginx的根目录(nginx.exe文件所在目录)。 配置NGINX 修改nginx.conf配置文件。分别将请求发送到9000、9001端口。 server { listen 80; server_name www.mydomain.com; location / { root D:/php_program; index index.php index.html index.htm; } location ~ \.php$ { root D:/php_program; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi

解决:502 bad gateway

一世执手 提交于 2020-03-21 16:34:16
3 月,跳不动了?>>> 502 Bad Gateway服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 解决办法是:再刷新一下网页或清理一下电脑的缓冲文件在打开你想打开的网页就好了.(一般情况下,这种办法是行得通的,但也不排除你所访问的网页被屏蔽的可能,如果你所访问的网页被屏蔽的话,就不管你怎么刷新也是没用的了) 1.什么是502 bad gateway 报错 简单来说502是报错类型代码bad gateway错误的网关 2.产生502错误的原因 连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错,具体如下: 第一个原因: DNS 缓冲。 这种情况的通常原因是因为你在未开启vpn的情况下访问了facebook这样的网站。 这个时候自然访问不上,同时却在本机留下了缓冲。 这种情况通常在几分钟之内就可以访问了。也可以尝试 在dos窗口运行 ipconfig /flushdns,该命令会刷新DNS缓冲。 第二个原因: 你的浏览器开了代理什么的。确认一下关掉代理。 第三个原因: dns 被劫持了,即使使用国外的dns,也会被劫持。有些机子开vpn能够访问,有些 机子确不能。并且排除了代理、防火墙、本地网络的原因。这个时候同时ping远程网站,比如facebook

第二节:Nginx的简介及三种轮询配置方式

折月煮酒 提交于 2020-03-21 02:46:09
3 月,跳不动了?>>> 一. 简介 1. 前言   Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的,从2004年发布至今,凭借开源的力量,已经接近成熟与完善。相关地址如下:   官网:http://www.nginx.org/   源码:https://trac.nginx.org/nginx/browser    Nginx的常用功能包括:代理、反向代理、负载均衡、Web缓存等等,下面逐个分析。 2. 代理、反向代理    代理:局域网内通过代理服务器,连接外网,分发到不同的外网web服务器。   反向代理: 是指以代理服务器来接受 internet上的连接请求,然后将请求转发给内部(或外部)网络上的服务器,并将从服务器上得到的结果返回给 internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器   Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。 3. 负载均衡 (1).

神秘的.user.ini文件

為{幸葍}努か 提交于 2020-03-20 10:19:01
3 月,跳不动了?>>> 啥? .user.ini 删不掉,是不是觉得自己真的不行了? [root@Tech1024] # rm -rf .user .ini rm : cannot remove ‘ .user .ini ’: Operation not permitted 来看一下,该文件的属性 [root@Tech1024] # lsattr .user .ini ----i--------e-- .user .ini 没错,文件被锁定了,不能修改,那么我们去除文件锁定属性 补充: ##防跨目录设置## LNMP 1.1及之前的版本使用php.ini里面, open_basedir设置 LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改.user.ini 里面的open_basedir的值来设置限制访问的目录或删除来移除防跨目录的设置。 .user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini 可以使用 winscp文件管理 、 vim编辑器 或 nano编辑器 进行修改。 删除的话rm -f /网站目录/.user.ini 就可以。 修改完成后再执行:chattr +i /网站目录/.user.ini .user.ini不需要重启一般5分钟左右生效,也可以重启一下php

访问LNMP虚拟主机出现报错:No input file specified.

断了今生、忘了曾经 提交于 2020-03-18 18:05:55
3 月,跳不动了?>>> 之前一直是使用lnmp一键包,但是访问创建的虚拟主机,并没有出现过的错误:No input file specified. 网上的文章很多,但是都是转载,而且原因也很多,根本不适用 后面在lnmp一键包官网找到解决方案: https://lnmp.org/faq/lnmp-vhost-add-howto.html 这是“ 防跨目录设置 ”导致的问题,根据文档,做出修改: # vi /usr/local/nginx/conf/fastcgi.conf 找到:fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在该行行前添加 #, 删除public目录下.user.ini文件 # chattr -i path to/public/.user.ini # rm -rf path to/public/.user.ini 我电脑安装双系统(win+deepin),这个项目文件在Windows ntfs文件系统磁盘下, chattr -i path to/public/.user.ini 报错:chattr: 无效的参数 while reading flags on .user.ini 发现不能直接解锁文件,网上帖子说chattr只能用于ext文件系统,于是我在这个命令

51.php-fpm的pool 慢日志 open_basedir 进程管理

◇◆丶佛笑我妖孽 提交于 2020-03-18 17:37:19
3 月,跳不动了?>>> 12.21 php-fpm的pool 12.22 php-fpm慢执行日志(测试时报错) 12.23 open_basedir 12.24 php-fpm进程管理 12.21 php-fpm的pool: php-fpm里的pool也叫池子,咱们之前加入过www的配置,这个www就叫pool Nginx可以设置不同的站点,每个站点都可以设置不同的pool。好处是当齐总一个站点502了(资源耗尽了),如果所有的网站都使用了同一个池子,那么其中一个网站发生了故障,就会把资源耗尽,就会造成其他的站点502。所以有必要把每一个站点隔离开来,每一个站点使用单独的pool 设置多个pool的目的是,防止发生502(资源耗尽)。一个pool只能接受50个访问请求如果再有一个请求会502。另外的pool不受影响 vim /usr/local/php-fpm/etc/php-fpm.d///在[global]部分增加 include = etc/php-fpm.d/*.conf mkdir /usr/local/php-fpm/etc/php-fpm.d/ cd /usr/local/php/etc/php-fpm.d/ vim www.conf //内容如下 [www] listen = /tmp/www.sock //相应的在Nginx的虚拟主机文件里(php相关的)

大神教你Nginx常用基础配置方案

谁都会走 提交于 2020-03-16 01:42:00
Nginx的fastcgi模块参数设置 Nginx 有两个配置文件fastcgi_params、fastcgi.conf,两者唯一的区别是,fastcgi.conf 多一个参数 SCRIPT_FILENAME,diff显示如下: $diff fastcgi fastcgi_params < fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; vim 进入/usr/local/nginx/conf/fastcgi_params文件 #请求的参数;如?app=123fastcgi_param fastcgi_param QUERY_STRING $query_string; ##请求的动作(GET,POST) fastcgi_param REQUEST_METHOD $request_method; #请求头中的Content-Type字段 fastcgi_param CONTENT_TYPE $content_type; #请求头中的Content-length字段 fastcgi_param CONTENT_LENGTH $content_length; #脚本名称 fastcgi_param SCRIPT_NAME $fastcgi_script_name; #请求的地址不带参数 fastcgi