This is from one of my configurations, have a look and compare maybe you'll find something you are missing.
<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php #SocketPath /var/lib/apache2/fcgid/sock SocketPath /tmp/fcgid/sock # Communication timeout: Default value is 20 seconds #IPCCommTimeout 60 #FcgidIOTimeout 600 # Connection timeout: Default value is 3 seconds FcgidConnectTimeout 8 FcgidMaxRequestsPerProcess 10000 FcgidFixPathinfo 1 PHP_Fix_Pathinfo_Enable 1 FcgidMaxProcessesPerClass 40 FcgidMaxRequestLen 1073741824 FcgidMaxRequestInMem 20971520 FcgidIdleTimeout 30 FcgidIdleScanInterval 20 FcgidBusyTimeout 300 FcgidBusyScanInterval 120 FcgidErrorScanInterval 3 FcgidZombieScanInterval 3 FcgidProcessLifeTime 60 FcgidSpawnScoreUpLimit 15 FcgidSpawnScore 1 FcgidTerminationScore 2 IPCCommTimeout 600 </IfModule> - The wrapper script [root@vmapache conf.d]# cat /usr/local/bin/php-wrapper #!/bin/sh # Set desired PHP_FCGI_* environment variables. # Example: # PHP FastCGI processes exit after 500 requests by default. PHP_FCGI_MAX_REQUESTS=10000 export PHP_FCGI_MAX_REQUESTS export PHP_FCGI_CHILDREN=0 exec /usr/bin/php-cgi Cheers, Igor On Fri, Dec 6, 2013 at 12:27 PM, James <[email protected]> wrote: > That make sense Jeff. Thanks! > > I have one issue I've noticed on my php application. When my PHP > application is performing some backups, I got the error of the following. > > > "Timed out while waiting for session lock. Wait for your current requests > to finish and try again later." > Internal Server Error > The server encountered an internal error or misconfiguration and was > unable to complete your request. > Please contact the server administrator, [email protected] and inform > them of the time the error occurred, and anything you might have done that > may have caused the error. > More information about this error may be available in the server error log. > > It turns out this is related on timeout. I'm wondering which settings > should be adjusted on fcgid.conf? > > Thanks. > James > > > On Thu, Dec 5, 2013 at 8:04 PM, Jeff Trawick <[email protected]> wrote: > >> On Thu, Dec 5, 2013 at 1:52 AM, James <[email protected]> wrote: >> >>> Thanks Igor. >>> >>> Some said the reason of that error message "mod_fcgid: can't apply >>> process slot" is because it has hitting a global limit of FcgidMaxProcesses >>> and a per-script limit of FcgidMaxProcessesPerClass. With that >>> explanation, I'm curious what is the caused of high FastCGI application >>> processes. Does that mean there are more concurrent web users accessing on >>> domain.com? Or does that mean that since the maximum FastCGI process is >>> 150 to all vhost and each vhost can start up to 16 process as per the value >>> settings of FcgidMaxProcessesPerClass and domain.com had request pf >>> more than 16 processes? >>> >> >> It would be valuable to enable server status (mod_status) and look at the >> mod_fcgid portion of the report near the time this error is occurring. >> That will likely shed light on the problem. >> >> Maybe you see that recently exited PHP processes are hanging around for a >> while, not getting reaped quickly. (Decrease FcgidZombieScanInterval in >> that case.) >> >> You should probably set FcgidZombieScanInterval to 1 anyway so that >> exited processes don't hang around long. >> >> >>> >>> >>> On Thu, Dec 5, 2013 at 12:11 PM, Igor Cicimov <[email protected]>wrote: >>> >>>> From the module man page: >>>> >>>> Description: Max requests handled by *each FastCGI application* >>>> Syntax: FcgidMaxRequestsPerProcess value >>>> Default: FcgidMaxRequestsPerProcess 0 >>>> *Context: server config, virtual host* >>>> Status: External >>>> Module: mod_fcgid >>>> >>>> this setting can be applied on server and/or vhost context and affects >>>> all applications in that server/vhost. So yes you can fine tune this value >>>> per vhost. >>>> >>>> >>>> >>>> >>>> On Thu, Dec 5, 2013 at 2:10 PM, James <[email protected]> wrote: >>>> >>>>> Hi Igor, >>>>> >>>>> Thanks for your reply. >>>>> >>>>> If I will set the value FcgidMaxRequestsPerProcess on virtual host, >>>>> would it be effected for domain.com only and not the rest of domain? >>>>> >>>>> Thanks. >>>>> >>>>> >>>>> >>>>> On Thu, Dec 5, 2013 at 10:46 AM, Igor Cicimov <[email protected]>wrote: >>>>> >>>>>> FcgidMaxRequestsPerProcess must be <= to PHP_FCGI_MAX_REQUESTS >>>>>> >>>>>> >>>>>> On Thu, Dec 5, 2013 at 12:05 PM, James <[email protected]>wrote: >>>>>> >>>>>>> Hi there, >>>>>>> >>>>>>> I have the following: >>>>>>> >>>>>>> *Server specs:* >>>>>>> Memory = 7G >>>>>>> CPU = 2 >>>>>>> >>>>>>> *Packages:* >>>>>>> httpd-2.2.25 >>>>>>> mod_fcgid-2.3.7 >>>>>>> php-5.3.27 >>>>>>> >>>>>>> $ grep -v "#" /etc/httpd/conf.d/fcgid.conf >>>>>>> .............................................. >>>>>>> LoadModule fcgid_module modules/mod_fcgid.so >>>>>>> AddHandler fcgid-script fcg fcgi fpl >>>>>>> FcgidIPCDir /var/run/mod_fcgid >>>>>>> FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm >>>>>>> FcgidFixPathinfo 1 >>>>>>> FcgidMaxRequestLen 1073741824 >>>>>>> FcgidIOTimeout 7200 >>>>>>> FcgidConnectTimeout 30 >>>>>>> FcgidMaxRequestsPerProcess 10000 >>>>>>> FcgidMinProcessesPerClass 0 >>>>>>> FcgidMaxProcessesPerClass 16 >>>>>>> FcgidMaxProcesses 150 >>>>>>> FcgidIdleTimeout 240 >>>>>>> FcgidProcessLifeTime 7200 >>>>>>> FcgidIdleScanInterval 120 >>>>>>> .............................................. >>>>>>> >>>>>>> $ cat /var/www/vhosts/apps/ >>>>>>> domain.com/php-fcgi-scripts/php-fcgi-starter >>>>>>> .............................................. >>>>>>> #!/bin/sh >>>>>>> PHPRC=/var/www/vhosts/apps/domain.com/ >>>>>>> export PHPRC >>>>>>> export PHP_FCGI_MAX_REQUESTS=5000 >>>>>>> export PHP_FCGI_CHILDREN=0 >>>>>>> exec /usr/bin/php-cgi >>>>>>> .............................................. >>>>>>> >>>>>>> *Error(s):* >>>>>>> ........................... >>>>>>> [warn] [client XXX.XXX.XXX.XXX] mod_fcgid: can't apply process slot >>>>>>> for /var/www/vhosts/apps/ >>>>>>> domain.com/php-fcgi-scripts/php-fcgi-starter >>>>>>> ........................... >>>>>>> >>>>>>> >>>>>>> It is always giving me this kind of error even though I increase the >>>>>>> value of *FcgidMaxProcessesPerClass* into *20* for domain.comapache >>>>>>> config file manually. >>>>>>> >>>>>>> $ less /etc/httpd/vhosts/domain.com.conf >>>>>>> .............................................. >>>>>>> <VirtualHost *:80> >>>>>>> ServerName domain.com >>>>>>> ServerAdmin [email protected] >>>>>>> DocumentRoot " /var/www/vhosts/apps/domain.com/httpdocs" >>>>>>> AccessFileName .htaccess >>>>>>> >>>>>>> <Directory " /var/www/vhosts/apps/domain.com/httpdocs"> >>>>>>> Options -Indexes FollowSymLinks >>>>>>> AllowOverride None >>>>>>> Order allow,deny >>>>>>> allow from all >>>>>>> </Directory> >>>>>>> >>>>>>> <IfModule mod_fcgid.c> >>>>>>> SuexecUserGroup username username >>>>>>> *FcgidMaxProcessesPerClass 20* >>>>>>> <Directory " /var/www/vhosts/apps/domain.com/httpdocs"> >>>>>>> Options +ExecCGI >>>>>>> AllowOverride All >>>>>>> AddHandler fcgid-script .php >>>>>>> FCGIWrapper /var/www/vhosts/apps/ >>>>>>> domain.com/php-fcgi-scripts/php-fcgi-starter .php >>>>>>> Order allow,deny >>>>>>> Allow from all >>>>>>> </Directory> >>>>>>> </IfModule> >>>>>>> >>>>>>> Include conf.d/apps.cfg >>>>>>> >>>>>>> ErrorLog logs/domain.com/error.log >>>>>>> CustomLog logs/domain.com/access.log combined >>>>>>> </VirtualHost> >>>>>>> >>>>>>> I would appreciate if anyone could shed me some lights to rectify >>>>>>> this error. >>>>>>> >>>>>>> Thank you. >>>>>>> >>>>>>> Kind regards, >>>>>>> James >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> >> >> -- >> Born in Roswell... married an alien... >> http://emptyhammock.com/ >> > >
