运行nginx 1.9.*/PHP 7.0.*(但5.6.*中的完全相同的行为)
尝试在维护期间优雅地停止PHP-FPM/nginx组合以关闭节点.为此,我将SIGQUIT发送到php-fpm,它应该提供正常的关闭.
为了测试这个,我制作了一个愚蠢的剧本
<?php sleep(5); echo 'done';
Run Code Online (Sandbox Code Playgroud)
使用以下卷曲进行本地测试
curl -I x.x.x.x:8080
Run Code Online (Sandbox Code Playgroud)
通常产生输出:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 12 Apr 2016 04:48:00 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Run Code Online (Sandbox Code Playgroud)
期望:在任何正在进行的请求中,当请求正常关闭时,当前请求应该完成,但任何其他请求都将失败.
不幸的是,当我尝试触发此行为时,通过向PHP-FPM主进程发送SIGQUIT(http://manpages.ubuntu.com/manpages/precise/man8/php5-fpm.8.html):
kill -s SIGQUIT $FPMPID
Run Code Online (Sandbox Code Playgroud)
连接立即下降,产生一个ngnix 502
HTTP/1.1 502 Bad Gateway
Server: nginx
Date: Tue, 12 Apr 2016 04:48:07 GMT
Content-Type: text/html
Content-Length: 166
Connection: close
Run Code Online (Sandbox Code Playgroud)
有什么建议?我希望尽可能地使这个系统尽可能无缝.谢谢!
我试图在同一台机器上启用imagick和gmagick扩展(ubuntu 12.04 - 虽然旧版本中的问题相同).
我有一个有效的ImageMagick/Imagick安装 - 支持206种格式......直到我启用gmagick模块 - 然后它报告支持0.由于这个响应,我能够隔离问题:https://stackoverflow.com/a/11350707/543871.启用gmagick后,graphicsmagick运行得非常好,只是牺牲了imagemagick.有任何想法吗?这是启用gmagick之前和之后phpinfo的输出:
BEFORE(只是想象安装):
imagick module enabled
imagick module version 3.0.1
imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
ImageMagick version ImageMagick 6.6.9-7 2012-04-30 Q16 http://www.imagemagick.org
ImageMagick copyright Copyright (C) 1999-2011 ImageMagick Studio LLC
ImageMagick release date 2012-04-30
ImageMagick number of supported formats: 206
ImageMagick supported formats 3FR, A, AAI, AI, ART, ARW, AVI, AVS, B, BGR, BGRA, BMP, BMP2, BMP3, BRF, C, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, …Run Code Online (Sandbox Code Playgroud)