Problem v komunikacii medzi apache a fastcgi (php-fpm)

Martin Tirsel lk na blackpage.eu
Úterý Červenec 30 14:28:08 CEST 2013


Zdravim,

mam tu viacero webov, vsetky ok, ale tento jeden dnes zacal zlobit a 
absolutne netusim co s tym, nemam sa vobec coho chytit. Vedel by niekto 
poradit?

Je to nejaky Wordpress web, do dnes ok. Teraz dostavam z apache Internal 
server error, v logoch apache:

[Tue Jul 30 14:13:40 2013] [error] [client 82.100.0.70] FastCGI: comm 
with server "/var/www/uzivatel/www.domena.xy.php5-fcgi" aborted: idle 
timeout (30 sec)
[Tue Jul 30 14:13:40 2013] [error] [client 82.100.0.70] FastCGI: 
incomplete headers (0 bytes) received from server 
"/var/www/uzivatel/www.domena.xy.php5-fcgi"

Avsak v PHP-FPM logu je k tomu takyto zaznam:

- -  30/Jul/2013:14:13:10 +0200 "GET /index.php" 200 
/var/www/uzivatel/webs/www.domena.xy/index.php 793.871 35072 37.79/30.23

To znamena, ze stranka bola vygenerovana korektne (kod 200, odpoved 
prakticky ihned po requeste). Ale apache sa tvari, akoby tu odpoved 
nedostal a caka 30 sekund, nasledne vyhodi timeout.

Co je zaujimave, ze ak ten wordpress odstrihnem pred </body> tagom 
(<?php die(); ?>), tak sa stranka nacita a je to ok.

Konfigurak virtualu je rovnaky ako u dalsich asi 30-40 podobnych webov:

<VirtualHost 1.2.3.4:80>

     ServerName www.domena.xy
     DocumentRoot /var/www/uzivatel/webs/www.domena.xy/
     FastCgiExternalServer /var/www/uzivatel/www.domena.xy.php5-fcgi 
-socket /tmp/php-fpm/php-www.domena.xy.socket -pass-header Authorization
     Action php5-fcgi /php5-fcgi
     Alias /php5-fcgi /var/www/uzivatel/www.domena.xy.php5-fcgi
     AddHandler php5-fcgi .php

     <Directory "/var/www/uzivatel/webs/www.domena.xy/">
         Options ExecCGI FollowSymLinks
         Order Allow,Deny
         Allow From all
     </Directory>


</VirtualHost>


<VirtualHost 1.2.3.4:80>
    ServerName domena.xy
    RedirectPermanent / http://www.domena.xy/
</VirtualHost>



a PHP-FPM:

[www.domena.xy]
user = uzivatel
group = uzivatel
listen = /tmp/php-fpm/php-www.domena.xy.socket
listen.owner = uzivatel
listen.group = uzivatel
listen.mode = 0660
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 300s
pm.max_requests = 1000
access.log = /var/www/uzivatel/.log/$pool.php-fpm.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M 
%C/%{user}C"
slowlog = log/$pool.log.slow
;request_slowlog_timeout = 0
request_terminate_timeout = 600
rlimit_files = 500
security.limit_extensions = .php .php3 .php4 .php5

php_admin_value[memory_limit] = 64M
php_admin_value[open_basedir] = 
/var/www/uzivatel/.tmp/:/var/www/uzivatel/webs/www.domena.xy/
php_admin_value[upload_tmp_dir] = /var/www/uzivatel/.tmp/
php_value[session.save_path] = /var/www/uzivatel/.sessions/www.domena.xy/
;php_value[display_errors] = On


Nestretol sa niekto s niecim podobnym? Pripadne na co by som sa mal 
skusit zamerat? Da sa nejako rozumne debugovat komunikacia medzi apache 
a fastcgi serverom? Rad by som videl, co sa vracia.

Dakujem!
M. Tirsel




Další informace o konferenci Linux