apache vhost's proxying to php-fpm hangs

[email protected] (Nikolaos Milas)
Newsgroups php.general
Organization National Observatory of Athens
Message-ID <[email protected]>
Hello,

I am running httpd-2.4.6-45.el7.centos.x86_64 with 
php-fpm-7.0.22-1.el7.remi.x86_64 (on CentOS 7).

My main problem: On this httpd server I have several vhosts running, but 
apparently I am facing problems with php-fpm communication on only one 
of them.

(All vhost configurations on the server are quite similar.)

Most of the sites are WordPress or Joomla Applications (running with 
mysql). Everything seems right: low load, all websites are operating 
fine, except this one, intermittently in the past, now almost continuously.

When the problem starts, the users receive "503 Service Unavailable" 
pages for many hours/days, and in the error log I see only such errors 
(logged by apache):

    [Tue Aug 08 08:27:31.742640 2017] [proxy_fcgi:debug] [pid 29259]
    mod_proxy_fcgi.c(963): [client 180.76.15.139:30619] AH01076: url:
fcgi://127.0.0.1:9000/var/webs/wwwgreekgeo/www/wp/index.php
    proxyname: (null) proxyport: 0
    [Tue Aug 08 08:27:31.742642 2017] [proxy_fcgi:debug] [pid 29259]
    mod_proxy_fcgi.c(970): [client 180.76.15.139:30619] AH01078: serving
    URL fcgi://127.0.0.1:9000/var/webs/wwwgreekgeo/www/wp/index.php
    [Tue Aug 08 08:27:31.742645 2017] [proxy:debug] [pid 29259]
    proxy_util.c(2203): AH00942: FCGI: has acquired connection for (*)
    [Tue Aug 08 08:27:31.742661 2017] [proxy:debug] [pid 29259]
    proxy_util.c(2256): [client 180.76.15.139:30619] AH00944: connecting
fcgi://127.0.0.1:9000/var/webs/wwwgreekgeo/www/wp/index.php to
    127.0.0.1:9000
    [Tue Aug 08 08:27:31.742690 2017] [proxy:debug] [pid 29259]
    proxy_util.c(2422): [client 180.76.15.139:30619] AH00947: connected
    /var/webs/wwwgreekgeo/www/wp/index.php to 127.0.0.1:9000
    [Tue Aug 08 08:27:31.742739 2017] [proxy:debug] [pid 29259]
    proxy_util.c(2798): AH02824: FCGI: connection established with
    127.0.0.1:9000 (*)
    [Tue Aug 08 08:27:52.347960 2017] [proxy_fcgi:error] [pid 29259]
    (104)Connection reset by peer: [client 180.76.15.139:30619] AH01075:
    Error dispatching request to :
    [Tue Aug 08 08:27:52.348021 2017] [proxy:debug] [pid 29259]
    proxy_util.c(2218): AH00943: FCGI: has released connection for (*)

The problem is NOT resolved by restarting apache and/or php-fpm.

The config of the vhost is as follows:

    <VirtualHost *:80>
             DocumentRoot "/var/webs/wwwgreekgeo/www"

             ServerName www.greekgeo.noa.gr

             ServerAdmin [email protected]

             DirectoryIndex index.php index.html index.htm

             Redirect 301 /en.index.html http://www.greekgeo.noa.gr/wp/

             RewriteEngine on

             RedirectMatch ^/index.html$ /wp/

         <Directory "/var/webs/wwwgreekgeo/www">
             Options -Indexes +FollowSymLinks
             AllowOverride All
             Require all granted
         </Directory>

             <Files ~ "^\.ht">
                Require all denied
             </Files>

         <FilesMatch \.php$>
             SetHandler "proxy:fcgi://127.0.0.1:9000"
         </FilesMatch>

         ErrorLog /var/webs/wwwgreekgeo/log/error_log
         LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" 
\"%{User-agent}i\"" combined
         CustomLog /var/webs/wwwgreekgeo/log/access_log combined
         LogLevel debug

    </VirtualHost>

I've also followed these directions to enable Wordpress php logging: 
https://codex.wordpress.org/WP_DEBUG.

For your reference, I am also including the php-fpm configuration:

    # cat /etc/php-fpm.d/www.conf

    [www]

    user = apache
    group = apache

    listen = 127.0.0.1:9000
    listen.allowed_clients = 127.0.0.1

    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 2
    pm.min_spare_servers = 2
    pm.max_spare_servers = 4
    pm.process_idle_timeout = 10s;
    pm.max_requests = 500
    pm.status_path = /fpm-status

    slowlog = /var/log/php-fpm/www-slow.log
    request_slowlog_timeout = 5s
    request_terminate_timeout = 20s

    catch_workers_output = yes

    security.limit_extensions = .php .php3 .php4 .php5 .php7 .htm .html

    php_admin_value[error_log] = /var/log/php-fpm/www-error.log
    php_admin_flag[log_errors] = on
    php_admin_value[error_reporting] = 32767
    php_value[session.save_handler] = files
    php_value[session.save_path]    = /var/lib/php/session
    php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache

    php_admin_value[post_max_size] = 40M
    php_admin_value[short_open_tag] = On

    php_value[date.timezone] = "Europe/Athens"

While searching in php-fpm log file (/var/log/php-fpm/www-error.log) I 
only found two PHP records about this website in two weeks, with the 
following content:

----------------------------------------------------------------------------------------------
...
[08-Aug-2017 05:11:45 Europe/Athens] PHP Fatal error: Uncaught Error: 
Call to undefined function get_header() in 
/var/webs/wwwgreekgeo/www/wp/wp-content/themes/nirvana/404.php:10
Stack trace:
#0 {main}
   thrown in 
/var/webs/wwwgreekgeo/www/wp/wp-content/themes/nirvana/404.php on line 10
[08-Aug-2017 05:11:45 Europe/Athens] PHP Fatal error: Uncaught Error: 
Call to undefined function get_header() in 
/var/webs/wwwgreekgeo/www/wp/wp-content/themes/nirvana/404.php:10
Stack trace:
#0 {main}
   thrown in 
/var/webs/wwwgreekgeo/www/wp/wp-content/themes/nirvana/404.php on line 10
...
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

It appears as a single entry recorded twice (for some unknown reason).

So, even this one (double) entry means that THERE IS (at least some) PHP 
logging about this website!

But there are many questions:

- Why there is only one error entry about this website (in two weeks)?
- Why is it double?
- Why there is nothing else (PHP-related) logged about this website?
- Why no other debugging info is being logged?
- Could php-fpm somehow be "blacklisting" the website PHP application 
(WordPress) due to this (and possible other) errors?

In essence, why is this vhost's php-fpm communication hanging without 
any errors logged by php-fpm?

Any ideas?

Please, help me to find out how to troubleshoot further.

If you can't help, please let me whom I should contact to get some 
efficient help (mailing list, forum etc.)

Thanks in advance,
Nick
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.