It seems that Apache resolves the path to it's long version before passing it to PHP encoded in UTF-8. PHP file functions use the ANSI API of Windows and is unable to deal with Unicode in filenames.
I remember facing a similar problem with Apache/PHP. One solution would be to create some sort of NTFS symbolic link to your folder using a name that solely avoids Unicode characters.
eg.: E:\sites => E:\gonzález\sites
NTFS symbolic link on Wikipedia:
http://en.wikipedia.org/wiki/NTFS_symbolic_link
You can get the mklink.exe utility from Microsoft to create such links from the command-line:
http://technet.microsoft.com/en-us/library/cc753194(WS.10).aspx
You could try the following command:
mklink /D E:\sites E:\gonzález\sites
Link Shell Extension is a free software that integrates with Windows shell to manage symbolic links on NTFS volumes (you'll find the link in the Wikipedia article above, or you can lookup for "Link Shell Extension" on any good search engine).
I don't think your server configuration is related to your problem, but let's tackle this first : mod_fastcgi will take care of spawning PHP processes and only feed one request at once for each process (AFAIK, I'm a mod_fcgid user). Thus it is useless to ask PHP to fork other processes, you'd rather have PHP_FCGI_CHILDREN=0 to turn this feature off.
Lately the apache logs have been telling me that MaxClients is being reached frequently, even though it's already pretty high.
Your MaxClients is 20, on my MPM-worker sites it's in the 5000-10,000 ballpark ! This is very low.
Keep in mind that MaxClients only regulates the Apache process pool, and Apache scales very well up to serving thousands of concurrent connections.
You can regulate separately your FastCGI process pool with mod_fastcgi options. I can only help with solid experience on mod_fcgid, sorry. This process pool has most of the time a size which is between 1x and 4x the number of CPU cores.
[Sun Mar 06 04:25:40 2011] [error] [client 50.16.83.115] FastCGI: comm with (dynamic) server "/var/local/fcgi/php-cgi-wrapper.fcgi" aborted: (first read) idle timeout (20 sec)
Your application could not send a single byte in 20 seconds, that's pretty slow. You will have to find the bottleneck. As a rule of thumb, if the load average is high, there's a good change it's CPU or I/O bound (then proceed to check CPU usage); otherwise if load is low, check waits on remote ressources (database server, 3rd part APIs, and so on).
Best Answer
I don't assume that PHP uses the PATH variable to resolve the path of the extensions. So try adding the whol path in the
extension_dir
variable like