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/
>>
>
>

Reply via email to