Назад | Перейти на главную страницу

memcache fast-cgi php apache 2.2 windows 7 создает проблемы

Я пытаюсь запустить memcache, fast-cgi с apache 2.2 + php на машине с Windows 7. Если я не использую memcache, все работает нормально.

В тот момент, когда я отключаю extension=php_memcache.dll в php.ini все возвращается в норму.

Как только я запускаю apache, журналы apache говорят:

[Wed Jan 12 18:19:23 2011] [notice] Apache/2.2.17 (Win32) mod_fcgid/2.3.6 configured -- resuming normal operations
[Wed Jan 12 18:19:23 2011] [notice] Server built: Oct 18 2010 01:58:12
[Wed Jan 12 18:19:23 2011] [notice] Parent: Created child process 412
[Wed Jan 12 18:19:23 2011] [notice] Child 412: Child process is running
[Wed Jan 12 18:19:23 2011] [notice] Child 412: Acquired the start mutex.
[Wed Jan 12 18:19:23 2011] [notice] Child 412: Starting 64 worker threads.
[Wed Jan 12 18:19:23 2011] [notice] Child 412: Starting thread to listen on port 80.

и после доступа к странице (страница только что echo phpinfo()) Я получаю эту ошибку в error.log:

[Wed Jan 12 18:20:54 2011] [warn] [client 127.0.0.1] (OS 109)The pipe has been ended.  : mod_fcgid: get overlap result error
[Wed Jan 12 18:20:54 2011] [error] [client 127.0.0.1] Premature end of script headers: index.php

У меня есть php_memcache.dll в моем каталоге ext, а httpd.conf выглядит так:

LoadModule fcgid_module modules/mod_fcgid.so

FcgidInitialEnv PHPRC "c:/php"
FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
FcgidInitialEnv TMP "C:/WINDOWS/Temp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 32
FcgidMaxRequestsPerProcess 500

<Files ~ "\.php$>"
  AddHandler fcgid-script .php
  FcgidWrapper "c:/php/php-cgi.exe" .php
</Files>

Таким образом, проблема должна быть связана с memcache, потому что, если я отключу его, fast-cgi, похоже, будет работать нормально. Есть ли для этого возможные причины ??

Сервис memcache запущен ... Я могу проверить это через панель управления-> сервисы.

У меня все заработало. Проблема была с версией dll и версией php. Я обновил php до 5.3, и теперь все в порядке.

Вы также должны быть осторожны с потоковой и небезопасной версией ... любая несовместимость не позволит вам запустить memcache.

Запустите PHP вручную (найдите php.exe и дважды щелкните по нему). Часто случается, что PHP не может загрузить расширение по какой-либо причине и пытается вывести всплывающее окно с сообщением об этом. Поскольку никто не видит окно сообщения, когда оно работает как служба, никто не знает, что происходит.