Èç¹ûÄãÔÚwebminÃæ°åµÄapache´íÎóÈÕÖ¾Àï¿´µ½mod_fcgid: read data timeout in 31 seconds£¬ÄÇô°Ë³ÉÊÇphpÖ´ÐÐʱ¼äÌ«¶Ìµ¼Öµģ¬ÎÒÃÇͨ³£»á¼Ó´óphp²ÎÊýmax_execution_time£¨ÉèÖ÷½·¨£º ÈçºÎÐÞ¸ÄÉÏ´«ÎļþµÄ´óСÏÞÖÆ£¿ÔõôÐÞ¸ÄphpmyadminÉÏ´«Êý¾Ý¿â´óСÏÞÖÆ£¿£©µ«ÊÇ£¬ÎÒÃÇ¿ÉÄÜ»¹ÊÇÔÚÉÏ´«´óÎļþµÄʱºò£¬·¢ÏÖÖ´ÐÐʱ¼ätimeout´íÎó£¬Ôõô»ØÊ£¿¾¹ýÑо¿£¬ÎÒÃÇ·¢ÏÖwebmin»¹ÓÐÒ»¸öphp³ÌÐòµÄÖ´ÐÐʱ¼äµÄ²ÎÊýÐèÒªÐ޸ģ¬Õâ¾ÍÊÇIPCCommTimeout£¬ÈçºÎÐÞ¸ÄIPCCommTimeout£¿Çë¿´ÏÂͼ£º
µã»÷±à¼Ö¸ÁÕÒµ½IPCCommTimeout£¬Ä¬ÈÏÊÇ31£¬¸Ä³É351ÊÔÒ»ÊÔ£¬È»ºó±£´æ£¬ÖØÆôapache
Ìáʾ£ºÉÏÊöÉèÖÃÖØÆôapacheºó£¬Èç¹û²âÊÔ»¹ÓÐÀàËÆ´íÎ󣬿ÉÒÔÔÚapacheÅäÖÃÎļþµÄ×îµ×²¿£¬Ö±½Ó¼ÓÉÏ IPCCommTimeout 633 È»ºóÖØÆôapacheÔÚÊÔÒ»ÊÔ¡£
IPCCommTimeout²ÎÊýÔÀí·ÖÎö·¶Àý£º
webminµÄPHP½«Ê¹ÓÃFastCGIÄ£¿éÀ´¼ÓÔØ£¬Ò²¾ÍÊÇmod_fcgid¡£
²»¹ý×î½üÓöµ½Ò»¸öÍ·ÌÛµÄÎÊÌ⣬¾ÍÊÇ·ÃÎÊһЩִÐÐʱ¼ä½Ï³¤µÄPHP³ÌÐòµÄʱºò£¬·þÎñÆ÷»á·µ»Ø500´íÎó¡£½«PHPµÄ´íÎóÊä³ö¹¦ÄÜ´ò¿ª£¬ÔÚ500´íÎó֮ǰδ¼ûµ½ÈκδíÎóÐÅÏ¢Êä³ö¡£¼ì²éApacheµÄÈÕÖ¾ÎļþҲûÓз¢ÏÖPHP±¨´í¡£
Èç´Ë·´¸´µÄ¼ì²éÁ˼¸´Îºó£¬¶ÔPHPÎļþȨÏÞºÍĿ¼ȨÏÞ½øÐÐÁ˵÷Õû£¬Ò²¼ì²éÁËphp³ÌÐòûÓÐÎÊÌ⣨֮ǰ¶¼Ò»Ö±Õý³£µÄ£©¡£¹ÖÊÂÁË£¬ÄѵÀÕâ500´íÎó½â¾ö²»ÁËÁËÂ𣿿϶¨»¹ÓÐʲôÔÒò£¡
ÓÚÊÇ£¬×ÐϸÔÙ²éÔÄÁËapacheµÄ´íÎóÈÕÖ¾£¬·¢ÏÖÁËÒ»ÐÐÌáʾ£º
[warn] mod_fcgid: read data timeout in 40 seconds
Õâ¸ö˵Ã÷fcgidÄ£¿éÔÚ¶ÁÈ¡Êý¾ÝµÄʱºò³¬Ê±ÁË¡£¾¹ý¶à´Î²âÊÔ£¬Ö¤Ã÷500´íÎóµÄʱºò»á²úÉúÕâÌõ¼Ç¼£¬¿´À´×ï¿ý»öÊ×¾ÍÊÇÕâ¸öÄ£¿éÁË¡£Á¢ÂíÊäÈëÃüÁ
#vim /etc/apache2/mods-available/fcgid.conf
´ò¿ªºóĬÈϵÄÇé¿öÈçÏ£¨ÎÒÔÚÅäÖÃApache WorkerģʽµÄʱºò£¬Ö»½«PHP½âÎöÐ޸ĹýÀ´ÁË£¬±ðµÄ²ÎÊý¶¼±£³ÖĬÈÏδ¶¯£©£º
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php .py .pl .fcgi
SocketPath /var/lib/apache2/fcgid/sock
IPCConnectTimeout 20
</IfModule>
¿ªÊ¼¾õµÃIPCConnectTimeout 20µÄֵ̫СÁË£¬ÓÚÊǵ÷Õûµ½300£¬ÖØÆôApacheºóÖ´Ðгö´íµÄphp½Å±¾Îļþ£¬½á¹û»¹ÊDZ¨500´íÎó¡£ÉÏÍø×Ðϸһ²é£¬Õâ¸öÄ£¿éÏ¿ÉÓõIJÎÊý»¹Õæ²»ÉÙ¡£ÁíÍâÒ»¸ö½Ð×ö“IPCCommTimeout”µÄ²ÎÊýÎüÒýÁËÎÒµÄ×¢ÒâÁ¦£¬ÕâÊÇFastCGIÄ£¿éÔÚÓë³ÌÐòͨѶµÄʱºòµÄ³¬Ê±Ê±¼ä¡£²»¹ÜÈýÆß¶þʮһ£¬ËÀÂíµ±»îÂíÒ½£¬½«Õâ¸ö²ÎÊýÌí¼Óºó£¬Ò²ÉèÖÃΪ300£¬ÕâÑùÒ»À´ÎļþµÄÄÚÈݾÍÈçÏÂÁË£º
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php .py .pl .fcgi
SocketPath /var/lib/apache2/fcgid/sock
IPCConnectTimeout 300
IPCCommTimeout 300
</IfModule>
ÔÙ´ÎÖØÆôapache£¬ÔËÐгö´íµÄphp½Å±¾²âÊÔ£¬³É¹¦µÃµ½½á¹û£¬Ã»ÓÐÔÙ³öÏÖ500´íÎó£¬ÎÊÌâ½â¾ö¡£ÎªÁ˲»Ê¹FastCGIÄ£¿éÒòΪÁ¬½Ó³¬Ê±Ê±¼ä¹ý³¤¶øÕ¼¾Ý·þÎñÆ÷Äڴ棬ÓÖ½«IPCConnectTimeout²ÎÊý»Ö¸´ÎªÄ¬ÈϵÄ20¡£
×ܽáһϣ¬±¾´ÎÎÊÌâ³öÏֵĹؼü¾ÍÊÇ£¬PHP½Å±¾ÖÐÐèÒªÓë±ðµÄÍøÖ·½øÐÐͨѶ£¬¶ø¿ÉÄÜÖмäʱ¼ä¶ÁÈ¡¹ý³¤µ¼Ö³¬Ê±¡£ËäÈ»php½Å±¾ÖÐʹÓú¯ÊýÉèÖÃÁ˽ű¾³¬Ê±Ê±¼ä£¬phpÉèÖÃÖг¬Ê±µÄÉèÖÃÒàºÜ³¤£¬²»¹ýFastCGIÄ£¿é»¹Êǰ´ÕÕËü×Ô¼ºµÄÉèÖÃÔÚ¹¤×÷×Å£¬µ¼ÖÂ40Ã볬ʱ´íÎó¡£¾¹ý²ÎÊýµÄÌí¼Óºó£¬ÉèÖÃΪ300Ã볬ʱʱ¼ä£¬×ã¹»½Å±¾Ö´ÐÐÍê±ÏÁË¡£
´ËÍ⣬FastCGIÏÂÃæ»¹Óжà¸ö²ÎÊý£¬³£ÓõIJÎÊýµÄÒâÒåÈçÏ£º
IdleTimeout ·¢´ôʱÏÞ
ProcessLifeTime Ò»¸ö½ø³ÌµÄ×ÉúÃüÖÜÆÚ£¬¹ýÆÚÖ®ºóÎÞÌõ¼þkill
MaxProcessCount ×î´ó½ø³Ì¸öÊý
DefaultMinClassProcessCount ÿ¸ö³ÌÐòÆô¶¯µÄ×îС½ø³Ì¸öÊý
DefaultMaxClassProcessCount ÿ¸ö³ÌÐòÆô¶¯µÄ×î´ó½ø³Ì¸öÊý
IPCConnectTimeout ³ÌÐòÏìÓ¦³¬Ê±Ê±¼ä
IPCCommTimeout Óë³ÌÐòͨѶµÄ×ʱ¼ä£¬ÉÏÃæµÄ³¬Ê±´íÎó¾ÍÊÇÕâ¸öÖµÉèÖùýСÔì³ÉµÄ
MaxRequestsPerProcess ÿ¸ö½ø³Ì×î¶àÍê³É´¦Àí¸öÊý£¬´ï³Éºó×Ôɱ
Áô×ö±¸Óã¬ÒÔºóÈç¹û»¹ÓÐFastCGIµÄÎÊÌ⣬ÔÙ½øÐмì²é¡£