Intereting Posts
Любой способ указать дополнительные значения параметра в PHP? CakePHP: как обновлять несколько записей одновременно с помощью помощника формы Включить SSL в PHP fsockopen () какая единичная платформа для PHP: simpletest, phpunit или? Где именно я помещаю SESSION_START? PHP сгенерированная форма не отправляет AJAX Как обнаружить второе появление с помощью регулярного выражения? (РНР) Поведение «header» в if-statement Заголовки для вывода изображения PNG, чтобы убедиться, что он кэшируется в браузере? PHP HybridAuth социальный signin не работает вообще. Перенаправление на? Hauth.start = Facebook & hauth.time Как использовать несколько баз данных с помощью php? Последний элемент в цикле foreach – это массив, который он перемещает получение карт для приема динамически созданного KML-файла? Не найдено ни одного результата для запроса, хотя ожидалась хотя бы одна строка PHP считает, что нуль равен нулю

php-fpm для Windows?

На домашней странице PHP-FPM http://php-fpm.org/ указано, что она является частью PHP с PHP 5.3.3. Теперь мне было интересно, когда я загружаю новейшие двоичные файлы PHP из php.net, в нем нет php-fpm. Как мне это получить? Он даже доступен для Windows?

Здесь, как настроить php-fpm в Windows:

  1. Загрузите .zip-файл из http://windows.php.net/download/ . Файл .zip должен быть VC9 с файлом FastCGI (php-cgi.exe). Не загружайте VC6 и не загружайте файл .msi, потому что для установки php-fpm требуется установка IIS. Zip-файл содержит php-cgi.exe, который вам нужен для php-fpm. Я загрузил несколько более старую версию, php-5.3.10-Win32-VC9-x86.zip, отсюда http://windows.php.net/downloads/releases/archives/, потому что я хотел соответствовать версии, запущенной на моем производстве сервер.

  2. Разархивируйте файл, например распакуйте в C: \ php-5.3.10-Win32-VC9-x86

  3. Отредактируйте файл php.ini по мере необходимости. Что я сделал:

    # nginx security setting cgi.fix_pathinfo=0 extension_dir = "C:\php-5.3.10-Win32-VC9-x86\ext" 

    разрешите следующие модули, раскомментируя их:

     extension=php_curl.dll extension=php_mbstring.dll extension=php_mysqli.dll 
  4. Создайте файл .bat где-нибудь, например start-php-fcgi.bat, в каталоге веб-сервера или в каталоге PHP:

     @ECHO OFF ECHO Starting PHP FastCGI... set PATH=C:\php-5.3.10-Win32-VC9-x86;%PATH% C:\php-5.3.10-Win32-VC9-x86\php-cgi.exe -b 127.0.0.1:9123 -c C:\php-5.3.10-Win32-VC9-x86\php.ini 
  5. Дважды щелкните файл .bat, чтобы запустить php-fpm. Окно будет всплывать и оставаться открытым во время его запуска. Его вид раздражает, но просто не заглянул в настройку его как сервис еще.

  6. Настройте свой веб-сервер. Если вы хотите использовать его с nginx, здесь пример конфигурации для 127.0.0.1:9123:

     location ~ \.php$ { fastcgi_pass 127.0.0.1:9123; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 

Ответ Дерексона – отличное начало. Однако для Apache 2.4 и более поздних версий вам не нужно запускать PHP-FPM в качестве отдельной службы, вы можете использовать mod_fcgid для обработки всего в Apache.

Вот пример конфигурации:

 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 16 FcgidMaxRequestsPerProcess 500 <Files ~ "\.php$"> AddHandler fcgid-script .php FcgidWrapper c:/php/php-cgi.exe .php </Files> 

Обратите внимание, что это основано на сообщении в Apache Lounge . Насколько они были полезны, их версия имела цитаты вокруг c: /php/php-cgi.exe, и если вы это сделаете, она НЕ ЗАПУСТИТ php-cgi.exe, по крайней мере, на Windows Server 2012, и вы получите HTTP 500. Взять мне несколько дней, чтобы понять это.

Начиная PHP v5.3.3, поддержка FPM Server-API [SAPI] была интегрирована в основной PHP. Это означает, что вы можете использовать исходные коды PHP и компилировать их с помощью FPM-SAPI [using --enable-fpm configuration parameter], а не Apache SAPI [ --enable-apx2 ]. Как показано в PHP-Wiki, вы можете создавать PHP почти так же, как в системах * nix, то есть конфигурироваться. Я бы посоветовал вам сначала изучить все возможности создания PHP в системах * nix и даже попытаться сделать это самостоятельно [обычная configure , make и make install шаблона make install ], а затем попытаться использовать опыт, полученный от него, для создания на Windows Окружающая среда.

В дополнение к параметру конфигурации --enable-fpm есть еще два дополнительных параметра: --with-fpm-user=USERNAME_HERE и --with-fpm-group=USERGROUPNAME_HERE . Эти два работают в среде * nix, но могут быть недоступны в Windows.

В целом, я уверен, что вы можете создать собственное приложение для PHP-FPM-сервера в Windows с помощью Visual Studio IDE. На момент написания этой статьи нет официальных сборников PHP-FPM.

РЕДАКТИРОВАТЬ 1: Хорошо, предположим, что я могу ошибаться в возможности создания PHP-FPM в Windows, поскольку этот SAPI использует компонент libevent из среды * nix. Угадайте, что вам придется придерживаться установки Cygwin в комплекте .

PHP-FPM доступен только для Linux. Есть некоторые сайты, в которых содержится учебник о том, как запустить php-fpm для работы в окнах под cygwin. Вы можете попробовать эти руководства.