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. yum 数据库报错与重构

    [root@dhcp yum.repos.d]# cd /var/lib/rpm/ [root@dhcp rpm]# rm __db.* -rf[root@dhcp rpm]# rpm --rebui ...

  2. vue创建组件

    vue创建组件是很容易的: js: Vue.component("component-item",{   //component-item就是我们在HTML页面上引用的组件,它会在 ...

  3. matlab eye 函数

    eye(n,n) 产生一个n*n的单位矩阵 eye(n,m) 产生一个n*m的单位矩阵 eye(3,3) ans = 1 0 0 0 1 0 0 0 1 eye(3,4) ans = 1 0 0 0 ...

  4. nfc功能读写 demo

    点此下载//这个demo是把这个程序作为一个手机启动选择的,只要一扫到卡片就会跳转到这个Activity. 只在当前Activity中有效参考:http://blog.csdn.net/zoeice/ ...

  5. js 时差转换 getTimezoneOffset()

    如果我们的应用是针对世界各地的,当要把后台(服务器)存的时间展示给不同地区的用户时,这个时间应该经过时差转换. 转成用户客户端本地的时间,然后呈现给用户,即下面用到的getTimezoneOffset ...

  6. C++STL内存配置的设计思想与关键源码分析

    说明:我认为要读懂STL中allocator部分的源码,并汲取它的思想,至少以下几点知识你要了解:operator new和operator delete.handler函数以及一点模板知识.否则,下 ...

  7. L161

    The robot arm made for gentle undersea explorationA soft robotic arm which will allow underwater sea ...

  8. Python中的数据结构 --- 列表(list)

      列表(list)是Python中最基本的.最常用的数据结构(相当于C语言中的数组,与C语言不同的是:列表可以存储任意数据类型的数据). 列表中的每一个元素分配一个索引号,且索引的下标是从0开始. ...

  9. Shell 命令行,实现对若干网站状态批量查询是否正常的脚本

    Shell 命令行,实现对若干网站状态批量查询是否正常的脚本 如果你有比较多的网站,这些网站的运行状态是否正常则是一件需要关心的事情.但是逐一打开检查那简直是一件太糟心的事情了.所以,我想写一个 sh ...

  10. angular 全局 监听路由变化

    app.run(['$rootScope', '$location', function($rootScope, $location) { /* 监听路由的状态变化 */ $rootScope.$on ...