Apache зависает при установке php модулем

Labutin

Новичок
Apache зависает при установке php модулем

Имеем следующее:
Apache/2.0.61 (Win32)
PHP Version 4.4.7
Windows 2003 Server
Исторически так сложилось, что PHP работал в CGI режиме. Т.е. в httpd.conf было следующее:
ScriptAlias /php/ "c:/php4/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
Решил настроить php в виде модуля:
LoadModule php4_module "c:/php4/php4apache2.dll"
AddType application/x-httpd-php .php
Вначале все работает. В списке процессов для процесса Apache.exe
В логах:
[Sat Jan 05 21:32:12 2008] [notice] Apache/2.0.61 (Win32) PHP/4.4.7 configured -- resuming normal operations
[Sat Jan 05 21:32:12 2008] [notice] Server built: Sep 5 2007 09:55:35
[Sat Jan 05 21:32:12 2008] [notice] Parent: Created child process 2536
[Sat Jan 05 21:32:12 2008] [notice] Child 2536: Child process is running
[Sat Jan 05 21:32:12 2008] [notice] Child 2536: Acquired the start mutex.
[Sat Jan 05 21:32:12 2008] [notice] Child 2536: Starting 250 worker threads.
В общем все начинает работать. Но примерно через час один из процессов apache.exe начинает забирать 100% процессорного времени и сайт становится недоступным. Причем браузер даже по timeout'у не отваливается - просто типа грузит минут 5 и ничего не происходит.
В логах access.log пишется последний успешный запрос. Каждый раз это разные запросы. Может быть как обращение к php-скрипту, так и к картинке. В error.log
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#51' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#51' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#51' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#51' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
Но эти ошибки у меня вечно были - все никак не дойдут руки поискать инфу, как от них избавиться (но это видимо другая тема, если конечно, это не причина зависаний).
Рестарт apache через сервисы завершается неудачей (после примерно 3 минут ожидания), сервис остается в состоянии stopping. Приходится убивать процесс.
Возврат с cgi режиму избавляет от зависаний.
Подскажите, может быть можно как-то в apache включить дополнительные логи, чтобы понять причину? Что посоветуете покрутить, чтобы хотя бы появилось направление в котором стоит двигаться, чтобы понять причину подвисаний...

-~{}~ 05.01.08 22:03:

Только что все подвисло - только процессор на 100% не загружен. Один процесс apacha забрал 22 метра памяти, второй 7,5 метров. Расход памяти не растет.
 

Pigmeich

Новичок
Labutin
Очевидно, PHP зависал и раньше, просто для CGI это не критично и Apache успевал его убить.

Разберитесь с mysql.
 

Labutin

Новичок
В логах пишет
Starting 250 worker threads
неужели у меня 250 зависших php запросов? По логам access.log до очередного зависания было выполнено всего 138 запросов (с учетом статики). Да и зависшие php.exe в списке процессов я никогда не наблюдал.
Хотя я на 100% не отвергаю эту версию - подскажите, как в ней обедиться или ее отвегнуть.
 

Pigmeich

Новичок
Starting 250 worker threads
неужели у меня 250 зависших php запросов?
Откуда взялся такой перевод?

Вот мне кажется, что 250 - это PID или нечто подобное. Но думаю, в мануале это подробне описанно.

Хотя я на 100% не отвергаю эту версию - подскажите, как в ней обедиться или ее отвегнуть.
Разобраться с mysql. Если после этого ошибка исчезнет - значит моя версия правильна.
 

Labutin

Новичок
Pigmeich
Starting 250 worker threads - это точно 250 тредов. Задается вот этим параметром:
ThreadsPerChild 250
А про ошибки от MySQL я погуглил. Проблема в том, что MySQL у меня 5-й, а клиент в четвертом PHP вообще третий. В общем положил в с:\mysql\share\charsets необходимые файлы чтобы подавить ошибки - но это не помогло. Проблема в силе :(

-~{}~ 23.02.08 10:26:

Проблема в силе при следующих комбинациях :(
Apache/2.0.63 (Win32)
PHP Version 4.4.7

Apache/2.0.63 (Win32)
PHP Version 4.4.8

Причем последняя комбинация составлена из самых новых версий Apache 2.0 и четвертого PHP :(
 
Сверху