Bug #4494: Large numbers of Apache log directives cause PHP to fail
| From: | spencer at wwmg dot com | Date: | Thu, 18 May 2000 01:09:41 +0000 |
| Subject: | Bug #4494: Large numbers of Apache log directives cause PHP to fail | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-18888@lists.php.net to get a copy of this message | ||
From: spencer@wwmg.com
Operating system: Solaris 2.6 (sparc)
PHP version: 3.0.16
PHP Bug Type: Reproduceable crash
Bug description: Large numbers of Apache log directives cause PHP to fail
I have around 1600 virtualhosts configured under
Apache 1.3.12.
The machine has 1 gig of ram, and the
following limits are set in /etc/system:
* set hard limit on file descriptors
set rlim_fd_max = 16384
* set soft limit on file descriptors
set rlim_fd_cur = 16384
(other settings have been tried as well)
Without PHP compiled in, there is (and hasn't been for
over 2 years) no problem.
With PHP compiled into apache (as a module), I
get "Document contains no data" when trying to
open a php file (containing something as simple as
echo("blah"); or phpinfo();)
If I comment out the transferlog directives (there's
one for each virtualhost) it works. If I add in only
a few virtualhosts, it works. Add them all, it bombs.
So, it would seem that I'm running out of file
descriptors, but it doesn't happen without
PHP compiled in. Is PHP using -THAT- many more
file descriptors? I've even bumped
rlim_fd_max = 50000 and still no go.
I've tried raising it by using ulimit -n as well.
Is this a solaris 2.x problem only? I've just
ordered Solaris 8 to see if it will alleviate this
problem.
Additionally, I've trussed a single process (httpd -X)
apache, and seen nothing strange. It's also not
dumping core.
And no, I do not want to run another apache on a
different port, or use less virtualhosts.
If anyone has any idea where this limit is
being hit, I'd like to know.
More: I've tested the same setup under Linux 2.2.15
(on Intel) with the same resource limits, and it worked fine
(PHP compiled in, of course).
Thank you.