小编Bry*_*ten的帖子

Nginx/PHP FPM优雅停止(SIGQUIT):不那么优雅

运行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)

有什么建议?我希望尽可能地使这个系统尽可能无缝.谢谢!

php nginx

14
推荐指数
1
解决办法
2770
查看次数

启用Gmagick PHP模块会导致ImageMagick(Imagick)模块报告0支持的格式

我试图在同一台机器上启用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)

php ubuntu imagemagick graphicsmagick

7
推荐指数
1
解决办法
1139
查看次数

标签 统计

php ×2

graphicsmagick ×1

imagemagick ×1

nginx ×1

ubuntu ×1