LNMP 一键安装包环境:

Phpmyadmin   登录超时 (1440 秒未活动),请重新登录。

vim /usr/local/php/etc/php.ini

session.gc_maxlifetime = 3600

vim /home/wwwroot/default/phpmyadmin/libraries/config.default.php

$cfg['LoginCookieValidity'] = 3600;

phpmyadmin 执行mysql操作的时候 超时:

vim  /usr/local/nginx/conf/nginx.conf

        fastcgi_connect_timeout ;     // 时间改为  600
fastcgi_send_timeout ; // 时间改为 600
fastcgi_read_timeout ; // 时间改为 600
fastcgi_buffer_size 64k;
fastcgi_buffers 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;

调高上面标红的3个值后,主要是read和send两项(默认Nginx超时为300),完美地解决了504错误
并且可以配置在http,server级别,也可以配置在location级别。
factcgi_connect_{read|send|timeout}是对fastcgi_pass生效   ; proxy_connect_{read|send|timeout}是对proxy_pass生效

执行 myphpadmin 的SQL操作时出现 502 错误 

查看php-fpm的日志: tail /usr/local/php/var/log/php-fpm.log

[-Sep- ::] WARNING: [pool www] child , script '/home/wwwroot/default/phpmyadmin/sql.php' (request: "GET /phpmyadmin/sql.php") execution timed out (125.496217 sec), terminating
[-Sep- ::] WARNING: [pool www] child exited on signal (SIGTERM) after 87935.416668 seconds from start
[-Sep- ::] NOTICE: [pool www] child started

vim  /usr/local/php/etc/php-fpm.conf

pm = dynamic         // 
pm.max_children = 80         //重要参数:一个进程起始为 3M 处理一段时间后大概20-30M  根据自己的配置设,内存要留一半给MYSQL
pm.start_servers =
pm.min_spare_servers =
pm.max_spare_servers =
request_terminate_timeout = // 0为不限制,我改为0s
request_slowlog_timeout =
slowlog = var/log/slow.log

如果设置成static,进程数自始至终都是pm.max_children指定的数量,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers配置将没有作用。如果设置成dynamic,则进程数是动态的,最开始是pm.start_servers指定的数量,如果请求较多,则会自动增加,但不超过 pm.max_children指定的数量,同时保证空闲的进程数不小于pm.min_spare_servers,如果进程数较多,也会进行相应清理, 保证多余的进程数不多于pm.max_spare_servers。当php-fpm启动后,一个php-cgi进程约战3M内存,但是当它们处理过一些请求后,有些内存是释放不掉的,占用的内存能达到20M-30M不等。

内存较大时 可以设成静态, php-fpm不用反复创建进程。 也有人说性能较高 可以设成动态 ,性能低分配控制固定进程。

删除索引大概用了 5分钟  修改过上面两个参数后就没出错了。 估计是 request_terminate_timeout 是这个产生影响

vim /home/wwwroot/www/etc/amh-php.ini

vim /home/wwwroot/www/php-fpm/huitiao.conf

AMH里的amh-php.ini 里的 max_execution_time 是:  max_execution_time = 20    我改成了 600  。

但是  如果在php-fpm.conf 设置了 request_terminate_timeout  则以 request_terminate_timeout 为准 ,因为它优先级高。

解决办法

php.ini中的max_execution_time值 php-fpm.conf中的request_terminate_timeout值 
这两项都是用来配置PHP脚本的最大执行时间。超时时php-fpm会终止脚本的执行,同时还会终止执行脚本的Worker进程。 如上,php-fpm child 18822被terminate后重新生成了新的Worker进程19164,所以nginx发现与自己通信的连接断了,就自然会返回502错误给客户端。客户端需再次发起请求重新建立新的连接,表象是刷新下浏览器即重新发起请求

所以只需将这两项的值适当调大,让PHP脚本不会因为执行时间长而被终止从而与nginx激活连接丢失。

request_terminate_timeout优先级高于max_execution_time,不想改全局的php.ini,只改php-fpm的配置就可以了。这里暂且调到600秒

request_terminate_timeout = 600

补充: nginx也要注意upstream模块中max_fail和fail_timeout。有时nginx与后端服务器(Tomcat、FastCGI)的通信只是偶然断掉,但max_fail设置太小,那么在接下来的fail_timeout时间内,nginx都会认为后端服务器无响应,都会返回502错误。 所以可以将max_fail调大一些,将fail_timeout调小一些

坑爹的 AMH的配置文件在这里:

/usr/local/nginx-generic-1.6/conf/nginx.conf

/home/wwwroot/web环境名称/php-fpm/域名目录.conf

/home/wwwroot/web环境名称/etc/amh-php.ini

vim /usr/local/mysql-generic-5.5/my.cnf

web 是 AMH下的环境名称,里面可以有多个虚拟主机

教程来源:

http://www.2cto.com/os/201301/184035.html

http://ju.outofmemory.cn/entry/251073

php-fpm设置与 phpMyadmin超时 操作SQL超时的更多相关文章

  1. Mybatis设置sql超时时间

    开始搭建项目框架的时候,忽略了sql执行超时时间的问题. 原本使用.net开发是,默认的超时时间是30s,这个时间一般一般sql是用不到的,但也不排除一些比较复杂或数据量较大的sql. 而java中, ...

  2. ASP.NET- 执行SQL超时的解决方案

    在我们编写程序的时候,有时候要进行复杂的查询时,就会出现执行sql时间过长,引起页面执行不了并提示执行脚本超时,这就是我们遇到超时异常. 超时异常分两种情况:一种,是连接超时:一种,是执行超时.前者, ...

  3. 使用php来访问操作sql server

    使用php来访问操作sql server 在此分成三步走: 第一部:查看配置,下载文件 首先查看自己的php和sql server版本 Php文件输入echo PHP_VERSION  运行脚本就可以 ...

  4. mybatis配置sql超时时间

    mybatis如果不配置,默认超时时间是不做限制的.当系统慢sql很多时,势必会增加数据库压力,系统性能及稳定性降低.所以有必要要设置sql超时设置,下面配置超时时间是5分钟. 第一步:全局配置如下 ...

  5. SQL Server学习之路(七):Python3操作SQL Server数据库

    0.目录 1.前言 2.准备工作 3.简单测试语句 4.提交与回滚 5.封装成类的写法 1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话, ...

  6. C#学习笔记---C#操作SQL数据库

    C#操作SQL数据库 Connection(连接)对象 连接字符串: 形式1.”server=;uid=;pwd=;database=” 形式2.”server=;Intergrated Securi ...

  7. Navicat操作SQL server 2008R2文件.bak文件还原

    项目操作过程中,利用Navicat操作SQL Server2008R2数据备份,结果发现数据丢失了很多,不得不先对数据丢失部分进行差异对比,然后再重新输入. 1.利用Navicat导出的数据格式为sq ...

  8. mybatis 的批量更新操作sql

    转: mybatis 的批量更新操作sql 2018年07月23日 10:38:19 海力布 阅读数:1689   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  9. [转]C#操作SQL Server数据库

    转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlComman ...

随机推荐

  1. 尝试优化骨骼动画计算的意外收获——使用嵌入式汇编对float转int进行优化

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/4984530.html 公司引擎目前是使用CPU计算骨骼动画(采用了D3DX提供的函数 ...

  2. Spring入门5.事务管理机制

    Spring入门5.事务管理机制 20131126 代码下载 : 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 回顾之前的知识,Spring 最为核心的两个部分 ...

  3. 那如何判断页面是在移动端还是PC端打开的

    网上有很多方法,写的或难或简单,实际上一行代码就够了. window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navi ...

  4. JQuery iframe

    子页面获取父页面的元素 function colisetapTJ() { var tapid = $('div:contains("添加档案报送"):last', window.p ...

  5. 《Effective C++》第3章 资源管理(2)-读书笔记

    章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...

  6. idea 配置springmvc+mybatis(图文教程)

    idea配置 spirngmvc+maven+mybatis 数据库采用的是mysql  服务器容器用的是tomcat8 废话不多说直接干! 首先新建一个 maven工程, "File&qu ...

  7. SCRF的简介及防护手段

    CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造. CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求. 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购 ...

  8. 剑指offer--45.二叉树的深度

    时间限制:1秒 空间限制:32768K 热度指数:139716 题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. -- ...

  9. three.js入门系列之材质

    一.基础网孔材料 MeshBasicMaterial 图示(光源是(0,1,0)处的点光源): 二.深度网孔材料 MeshDepthMaterial (由于只是改了材料名,代码将不重复贴出) 在这里, ...

  10. 创建Azure scheduler完成日常任务

    Azure Scheduler 1. 登录portal,创建azure scheduler2. 选择任务类型.azure scheduler支持两种类型的任务.http :定时给一个url发请求sto ...