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

Не удается заставить PHP работать как FastCGI в Apache и Windows

Я безуспешно пытаюсь запустить PHP как FastCGI.

Я сделал такой файл * .conf на страница mod_fcgid но без сценария-оболочки.

Вот мой конф:

# php5 as FastCGI executable
FcgidMaxRequestsPerProcess 10000

# Uncomment the following line if cgi.fix_pathinfo is set to 1 in
# php.ini:
# FcgidFixPathinfo 1

<Location "D:/www">
    AddHandler fcgid-script .php
    Options +ExecCGI
    FcgidWrapper "C:/php/php-cgi.exe" .php

    # Customize the next two directives for your requirements.
    Order allow,deny
    Allow from all
</Location>

Сервер запускается нормально, и fcgid_module отображается с httpd -M, но файлы php являются серверными как обычный текст.

Из любопытства попробуйте изменить строчку:

AddHandler fcgid-script .php

к

AddHandler fcgid-script php

Чтобы начать работу, вы также можете рассмотреть возможность использования mod_fastcgi (обратите внимание, не mod_fcgid от Apache). DLL доступна здесь http://www.fastcgi.com/dist/mod_fastcgi-2.4.6-AP22.dll Обратите внимание, что это для Httpd 2.2. (Также доступна dll для 2.4.)

Запись вашей конфигурации будет выглядеть примерно так:

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fastcgi.c>
    Alias /fcgi-bin "C:/www/cgi-bin"
    FastCgiServer "C:/www/cgi-bin/php-cgi.exe" -initial-env PATH=C:/php -initial-env PHPRC=C:/php
    AddHandler php-fastcgi .php
    <Location /fcgi-bin/>
        Options ExecCGI
        SetHandler php-fastcgi
    </Location>
    AddType application/x-httpd-fastphp .php
    Action php-fastcgi /fcgi-bin/php-cgi.exe
</IfModule>

Возможно, вам удастся обойтись меньшим, но это работает для меня в окнах.