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. linux下如何安装lua

    1.下载lua包并解压 wget -c http://www.lua.org/ftp/lua-5.3.0.tar.gz  tar zxvf lua-5.3.0.tar.gz 2.下载libreadli ...

  2. OpenCL将数组从内存copy到显存

    本来想对上一篇博客做优化,优化效果不明显.但知识点还是要记一下. 初衷是想把上一篇博客中定义域的计算搬到CPU来计算,因为定义域的计算对于每一个kernel都是一样的,所以直接读取应该是可以进一步减小 ...

  3. RabbitMQ 如何保证消息不丢失?

    RabbitMQ一般情况很少丢失,但是不能排除意外,为了保证我们自己系统高可用,我们必须作出更好完善措施,保证系统的稳定性. 下面来介绍下,如何保证消息的绝对不丢失的问题,下面分享的绝对干货,都是在知 ...

  4. IOS UI-模态视图

    一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展⽰出来 Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为⽌ ...

  5. 编写3ds max插件时遇到的问题总结

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/ 这几天在给公司的美术编写3ds max 2009使用的插件,遇到了一些问题,在此记录一下解 ...

  6. RxJava 中的Map函数原理分析

    首先看一段Map函数的使用代码: Observable.create(new Observable.OnSubscribe<Integer>() { @Override public vo ...

  7. Java复习1.基本知识

    Java语言概述 20131003 开头语: 开发领域,重要的编程语言基本都是C/C++,然后就是Java, C/C++就不用说了,另外掌握Java对你是有很大的帮助的,而且也会扩宽你的择业范围.同时 ...

  8. IOC与DI简介

    IOC:控制反转(Inverse Of Control) 在没用spring框架之前我们是这样写程序的: private UserDao userDao = new UserDaoImpl(); 也就 ...

  9. Alpha冲刺(2/10)

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/9960487.html 作业博客:https://edu.cnblogs.com/campus/ ...

  10. igmpproxy源代码学习——配置信息加载 loadConfig

            在igmpproxy主程序运行之前需要先读取配置文件,igmpproxy的配置文件通常为/etc/igmpproxy.conf或者/var/igmpproxy.conf 其内容如下: ...