1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Настройка Apache 2.2 + PHP 5.3 Windows

Тема в разделе 'Запуск и Поддержка', создана пользователем ViperNight, 14 окт 2011.

  1. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Получил несколько сообщений с просьбой показать, как настроить и запустить Apache + PHP самостоятельно, поэтому, это описанию можно считать своего родом продолжением описания по настройке MySQL сервера баз дынных, в котором будем использовать уже принятую ранее систему путей для размещения.


    В данном описании я покажу два варианта как установить PHP: как модуль Apache и как PHP в режиме FastCGI. У каждого из данных способов подключения есть свои определённые фишки и особенности в работе, о которых можно прочесть в инете. Как трещат на просторах интернета, основной особенностью FastCGI метода перед модульным является заметный выигрыш в скорости/производительности. Лично на своих Arch серверах я использую PHP как FastCGI сервер, насколько оправданны данные реализации одна относительно другой под Windows, я сказать затрудняюсь, поэтому, выбирайте сами, какой вариант кому больше нравится.
    * Стоит отметить, что человек с http://blinkgaming.net/ как раз таки использует реализацию PHP в FastCGI через mod_fcgid на сервере, будучи запущенном в системе Windows 2008. Ресурс средней популяцией в 250 человек онлайн (в среднем). Видимо, всё-таки в этом что-то есть.


    Что нам понадобится

    httpd-2.2.21-win32-x86-ssl.zip – собственно сам веб-сервер Apache.
    php-5.3.8-nts-Win32-VC9-x86.zip – PHP 5.3.8 VC9 x86 Non Thread Safe (данный архив необходим в том случае, если вы выбрали установку PHP как FastCGI).
    php-5.3.8-Win32-VC9-x86.zip - PHP 5.3.8 VC9 x86 VC9 x86 Thread Safe (данный архив необходим в том случае, если вы выбрали установку PHP как модуль Apache).
    mod_fcgid-2.3.6-P2-win32-x86.zip – модуль для Apache (необходим в том случае, если вы выбрали установку PHP как FastCGI).

    Как видно из списка файлов к установке, мы будем использовать 32-х битные издания, наряду с этим можно поставить и 64-х битный вариант, взяв по аналогии необходимые компоненты по ниже приведённым ссылкам, при этом процедура установки, настройки и запуска будет идентична рассмотренной здесь 32-х битной версии (лично я попробовал и 32 и 64, считаю, ИМХО, 64 не сдалось тут).

    По данной ссылке находятся Apache, mod_fcgid и прочая приблуда, как для 64 бит, так и 32:
    http://www.apachehaus.com/cgi-bin/download.plx
    Тут можно взять PHP 5.3.8 x64 Non Thread Safe и Thread Safe:
    http://www.anindya.com/php-5-3-8-x64-64-bit-for-windows/


    Приступая к работе...

    ... скажу пару слов по поводу окружения.

    В качестве подопытного для этого описания был выбран один из серверов с операционной системой Windows Server 2003 R2 Standard x64 Edition на борту, но это не главное…

    А теперь главное:
    Помимо всего прочего в системе установлены пакеты Visual C++ 2008 SP1 Redistributable Package (x86) и Visual C++ 2008 SP1 Redistributable Package (x64), которые необходимы для безболезненного запуска 32-битной и 64-х битной реализаций Apache + PHP соответственно, скомпиленных в MVS 2008, поэтому, в зависимости от выбранной реализации, необходимо убедиться о наличии того или иного пакета в вашей системе, и в случае отсутствия оного скачать и доустановить.

    Также в системе имеется архиватор 7-Zip, для манипуляций с архивами.



    Итак, приступаем…


    Шаг 1

    Скачиваем необходимые компоненты (httpd-2.2.21-win32-x86-ssl.zip и (mod_fcgid-2.3.6-P2-win32-x86.zip + php-5.3.8-nts-Win32-VC9-x86.zip) для CGI или php-5.3.8-Win32-VC9-x86.zip для PHP в качестве модуля) и помещаем их в директорию под названием server на диске C:.


    Шаг 2

    Распаковываем скачанные архивы.

    Для PHP как php5_module:

    httpd-2.2.21-win32-x86-ssl.zip - Распаковать здесь
    php-5.3.8-Win32-VC9-x86.zip - Распаковать в "php-5.3.8-Win32-VC9-x86\"

    Для PHP как FastCGI:

    httpd-2.2.21-win32-x86-ssl.zip - Распаковать здесь
    php-5.3.8-nts-Win32-VC9-x86.zip - Распаковать в "php-5.3.8-nts-Win32-VC9-x86\"
    mod_fcgid-2.3.6-P2-win32-x86.zip – Распаковать здесь (заменить ReadMe.txt или не заменять, без разницы)


    Шаг 3

    Запускаем утилиту cmd.exe (Win-R, cmd, [Enter]) и переходим в директорию server на диске C::

    Код:
    Microsoft Windows [Version 5.2.3790]
    (C) Copyright 1985-2003 Microsoft Corp.
    
    C:\Documents and Settings\Administrator>cd \server

    Шаг 4

    Переименовываем директории, копируем необходимые файлы и удаляем более ненужные файлы и директории, выполняя нижеследующие команды.

    Для PHP как php5_module:

    Код:
    C:\server>ren Apache2 apache
    C:\server>ren php-5.3.8-Win32-VC9-x86 php
    C:\server>del httpd-2.2.21-win32-x86-ssl.zip php-5.3.8-Win32-VC9-x86.zip
    Для PHP как FastCGI:

    Код:
    C:\server>ren Apache2 apache
    C:\server>ren php-5.3.8-nts-Win32-VC9-x86 php
    C:\server>copy "mod_fcgid 2.3.6-P2\mod_fcgid.so" apache\modules
    C:\server>del httpd-2.2.21-win32-x86-ssl.zip php-5.3.8-nts-Win32-VC9-x86.zip mod_fcgid-2.3.6-P2-win32-x86.zip Readme.txt
    C:\server>rd "mod_fcgid 2.3.6-P2" /S/Q

    Шаг 5

    Копируем файл php.ini-production, располагающийся в директории php, с переименованием в php.ini:

    Код:
    C:\server>copy php\php.ini-production php\php.ini

    Шаг 6

    Откроем файл php.ini в удобном текстовом редакторе и внесём некоторые изменения.

    Строка 226, переключить из положения Off в положение On. Позволит нам включить поддержку скриптов (например, DotA OpenStats), написанных ленивыми и/или некомпетентными разработчиками, с применением short_open_tag’ов (<? ?>).

    Код:
    short_open_tag = Off
    Строка 514, включаем обработку всех ошибок, изменить с:

    Код:
    error_reporting = E_ALL & ~E_DEPRECATED
    на:

    Код:
    error_reporting = E_ALL
    Строка 728, сменим с 8M на 32M:

    Код:
    post_max_size = 8M
    Строка 772, изменяем с:

    Код:
    ;default_charset = "iso-8859-1"
    на:

    Код:
    default_charset = "utf-8"
    Строка 787, изменяем с:

    Код:
    ;include_path = ".;c:\php\includes"
    на:

    Код:
    include_path = ".;c:\server\php"
    Строка 809, изменяем с:

    Код:
    ; extension_dir = "ext"
    на:

    Код:
    extension_dir = "C:\server\php\ext"
    Строка 875, меняет с:

    Код:
    ;upload_tmp_dir =
    на:

    Код:
    upload_tmp_dir = C:\server\tmp
    Строка 879, меняем с 2M на 28M:

    Код:
    upload_max_filesize = 2M
    В промежутке между строками 947987 включительно, ищем, и убирает точку с запятой (;) перед следующими директивами:

    Код:
    ;extension=php_curl.dll
    ;extension=php_gd2.dll
    ;extension=php_mbstring.dll
    ;extension=php_mysql.dll
    ;extension=php_mysqli.dll
    ;extension=php_pdo_mysql.dll
    ;extension=php_pdo_sqlite.dll
    Также, при желании, можно раскомментировать следующие директивы:

    Код:
    ;extension=php_sqlite.dll
    ;extension=php_sqlite3.dll
    ;extension=php_xmlrpc.dll
    ;extension=php_xsl.dll
    Строка 996, раскомментировать, выбрать и вписать в качестве значения одну из временных зон, наиболее удовлетворяющую вашему месторасположению, из данного списка возможных http://php.net/manual/ru/timezones.php, например:

    Код:
    date.timezone = "Europe/Moscow"
    Можно задать значение широты и долготы точного месторасположения вашего вашего компьютера/сервера, юридического адресе или того, чего сочтёте нужным, раскомментировав и указав соответствующие значения в строках 999 и 1002 соответственно. Значения можно получить, например, посредством сервиса Google Maps, найдя необходимое место, щёлкнуть правой кнопкой мыши по данному месту и выбрать из контекстного меню пункт "What’s Here? " ("Что здесь?"), значения широты и долготы появятся строке задания адреса, разделённые запятой соответственно.

    Код:
    ; http://php.net/date.default-latitude
    ;date.default_latitude = 31.7667
    
    ; http://php.net/date.default-longitude
    ;date.default_longitude = 35.2333
    Строка 1478, заменить с:

    Код:
    ;session.save_path = "/tmp"
    на:

    Код:
    session.save_path = "C:/server/tmp"
    Сохраняем изменения и закрываем файл php.ini.


    Шаг 7

    Создаём директорию для логов и директорию для конфигурационных файлов виртуальных хостов

    Код:
    C:\server>md logs apache\conf\vhosts

    Шаг 8

    Открываем текстовом редакторе для редактирования основной конфигурационный Apache - httpd.conf, расположенный в C:\server\apache\conf\
    Полностью удаляем всё, что в этом файле находится, и вставляем туда следующий текст (в конце данного мануала прицепляю точно такой же текст, но с краткими комментариями, для того, чтобы понять, что тут мы вставили):

    Код:
    ServerRoot "C:/server/apache"
    Listen 80
    
    LoadModule actions_module modules/mod_actions.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule asis_module modules/mod_asis.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule auth_digest_module modules/mod_auth_digest.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule env_module modules/mod_env.so
    LoadModule include_module modules/mod_include.so
    LoadModule isapi_module modules/mod_isapi.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule mime_module modules/mod_mime.so
    #LoadModule mime_magic_module modules/mod_mime_magic.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule setenvif_module modules/mod_setenvif.so
    
    <IfModule !mpm_netware_module>
    <IfModule !mpm_winnt_module>
    User daemon
    Group daemon
    </IfModule>
    </IfModule>
    
    ServerName localhost
    ServerAdmin root@localhost
    
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    
    <FilesMatch "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </FilesMatch>
    
    ErrorLog "C:/server/logs/apache_error.log"
    LogLevel warn
    
    <IfModule log_config_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        LogFormat "%h %l %u %t \"%r\" %>s %b" common
    </IfModule>
    
    DefaultType text/plain
    
    <IfModule mime_module>
        TypesConfig conf/mime.types
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
    </IfModule>
    
    
    # Name-based VirtualHosts
    NameVirtualHost *:80
    Include conf/vhosts/localhost.conf
    В случае того, если надо что-то посмотреть из директив, поправить, то точная копия файла httpd.conf, который мы затёрли, находится по адресу C:\server\apache\conf\original\.


    Шаг 9

    Создаём конфигурационный файл для виртуального хоста localhost:

    Код:
    C:\server>copy NUL apache\conf\vhosts\localhost.conf
    Открываем свежесозданный файл localhost.conf в текстовом редакторе, копируем и вставляем туда следующий текст:

    Код:
    <VirtualHost *:80>
        ServerName localhost
        ServerAlias local
        ServerAdmin root@localhost
    
        ErrorLog "C:/server/logs/vh_localhost_error.log"
        CustomLog "C:/server/logs/vh_localhost_access.log" common
    
        DocumentRoot "C:/server/www/localhost/public_html"
    
        <Directory "C:/server/www/localhost/public_html">
            Options Indexes FollowSymLinks ExecCGI
            AllowOverride All
            Order allow,deny
            Allow from all
            IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
        </Directory>
    
        <IfModule dir_module>
            DirectoryIndex index.html index.php index.htm
        </IfModule>
    
        <IfModule alias_module>
            ScriptAlias /cgi-bin/ "C:/server/www/localhost/cgi-bin/"
        </IfModule>
    
        <Directory "C:/server/www/localhost/cgi-bin">
            AllowOverride None
            Options None
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>

    Создаём необходимые директории для виртуально хоста по имени localhost:

    Код:
    C:\server>md www\localhost\public_html www\localhost\cgi-bin

    Шаг 10

    Прикручиваем PHP к серверу Apache.

    Для PHP как php5_module:

    В начале файла httpd.conf найти строки начинающиеся с LoadModule и включить в данный список (можно в конец списка) ниже следующие строки:

    Код:
    PHPIniDir "C:/server/php"
    LoadModule php5_module "C:/server/php/php5apache2_2.dll"
    В файл виртуально хоста localhost.conf вставить, с новой строки, перед закрывающим тегом </VirtualHost>, следующие строки:

    Код:
    <IfModule php5_module>
        AddType application/x-httpd-php .php 
        AddType application/x-httpd-php-source .phps
    </IfModule>
    Указываем месторасположение директории php в системных переменных:

    1. Перейти
      для русс. XP/2003: Меню "Пуск" -> Контрольная панель -> Система -> вкладка Дополнительно -> Переменные среды
      для англ. XP/2003: Start -> Control Panel -> System -> Advanced -> Environment Variables
      для русс. Win7/2008: Меню "Пуск" -> Контрольная панель -> Система -> Дополнительные параметры системы -> Переменные среды
      для англ. Win7/2008: Start -> Control Panel -> System -> Advanced system setting -> Environment Variables
    2. В нижнем поле (Системные переменные (System variables)), крутим вниз и находим переменную под названием Path.
    3. Выбираем данную переменную, нажимаем кнопку Изменить... (Edit...).
    4. В поле Значение (Variable value) двигаем курсор в самый конец, ставим точку с запятой ( ; ) и пишем: C:\server\php
    5. Применяем: Ок-Ок-Ок, закрываем окно Система.


    Для PHP как FastCGI:

    В начале файла httpd.conf найти строки начинающиеся с LoadModule и включить в данный список (можно в конец списка) ниже следующую строку:

    Код:
    LoadModule fcgid_module modules/mod_fcgid.so
    В файл виртуально хоста localhost.conf вставить, с новой строки, перед закрывающим тегом </VirtualHost>, следующие строки:

    Код:
    <IfModule fcgid_module>
        FcgidInitialEnv PHPRC "C:/server/php"
        FcgidInitialEnv PATH "C:/server/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
        MaxRequestLen 33554432
        FcgidMaxRequestsPerProcess 500
    
        <Files ~ "\.php$">
            AddHandler fcgid-script .php
            FcgidWrapper "C:/server/php/php-cgi.exe" .php
        </Files>
    </IfModule>

    Шаг 11

    Переходим в директорию с демоном Apache:

    Код:
    C:\server>cd apache\bin
    Устанавливаем сервис:

    Код:
    C:\server\apache\bin>httpd -k install
    Ответом об успешной установке будет:

    Запускаем сервис Apache2.2:

    Код:
    C:\server\apache\bin>net start apache2.2
    Ответом об успешном запуске будет:


    В заключении...

    Вот похоже и всё. Если вдругВот, похоже и всё. Если вдруг, по прошествии всех шагов никаких ошибок замечено не было, всё запустилось, но работает как-то не так - не устанавливается соединение с MySQL сервером, некоторые расширения PHP не работают (при этом в логе apache'a нет ошибок о неверных), то рекомендуется перезагрузиться и проверить ещё раз. По каким-то причинам системные переменные могут не подхватываться операционной системой (в частности при установке PHP как модуль Apache) без перезагрузки. Но после перезагрузки всё должно начать нормально функционировать. по прошествии всех шагов никаких ошибок замечено небыло, всё запустилось, но работает как-то не так - не устанавливается соединение с MySQL сервером, некоторые расширения PHP не работают (при этом в логе apache'a нет ошибок о неверных), то рекомендуется перезагрузится и проверить еще раз. По каким-то причинам системные переменные могут не подхватываться операционной системой (в частности при установке PHP как модуль Apache) без перезагрузки. Но после перезагрузки всё должно начать нормально функционировать.



    Прицеплено

    Конфигурационные файлы httpd.conf и localhost.conf с паршивенькими русскими комментариями.

    httpd.conf
    Код:
    # Указываем путь до корневой директории Apache
    ServerRoot "C:/server/apache"
    
    # Вешаем Apache слушать на 80-й порт по всем адресам
    Listen 80
    
    # Список загружаемые модули
    LoadModule actions_module modules/mod_actions.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule asis_module modules/mod_asis.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule auth_digest_module modules/mod_auth_digest.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule env_module modules/mod_env.so
    LoadModule include_module modules/mod_include.so
    LoadModule isapi_module modules/mod_isapi.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule mime_module modules/mod_mime.so
    #LoadModule mime_magic_module modules/mod_mime_magic.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule setenvif_module modules/mod_setenvif.so
    
    # Это вообще непонятно зачем тут нужно, вообще работает ли оно? но пусть будет
    <IfModule !mpm_netware_module>
    <IfModule !mpm_winnt_module>
    User daemon
    Group daemon
    </IfModule>
    </IfModule>
    
    # 'Main' server configuration
    # Объявляем имя хоста и мыло админа, для всего, что не относится к виртуальным хостам
    ServerName localhost
    ServerAdmin root@localhost
    
    # Здесь задаются права для всех директорий по умолчанию
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    
    # Закрываем файлы .ht семейства (.htaccess, .htpasswd и пр.) от прямого к ним обращения
    <FilesMatch "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </FilesMatch>
    
    
    # Лог для ошибок, куда будут писать непосредственно ошибки с HTTP демона
    ErrorLog "logs/error.log"
    
    # Устанавливаем уровень логирования
    LogLevel warn
    
    # Указываем детализацию лог файлов (что именно в них будет отображаться)
    <IfModule log_config_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        LogFormat "%h %l %u %t \"%r\" %>s %b" common
    </IfModule>
    
    # Указываем для всех файлов, типы которых не определённы в MIME файле,
    # что обслуживать их надо как обычные текстовые файлы (тип по умолчанию)
    DefaultType text/plain
    
    # Подключаем файл с MIME-типами (сопоставление файлов по расширениям
    # и последующего их обслуживания сервером, в зависимости от типа)
    <IfModule mime_module>
        TypesConfig conf/mime.types
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
    </IfModule>
    
    
    # Name-based VirtualHost
    #Обявляем поименованные виртуальные хосты
    NameVirtualHost *:80
    
    # Инклюдим конфигурационный файл с одним из хостов.
    Include conf/vhosts/localhost.conf
    
    # Если хостов несколько, можно несколько раз сделать отдельных инклюдов
    #
    # Include conf/vhosts/localhost.conf
    # Include conf/vhosts/test.conf
    #
    # а можно взять заинклюдить сразу все конфиги находящиеся в директории vhosts
    #
    # Include conf/vhosts/*.conf
    #
    # или даже так:
    #
    # Include conf/vhosts/*
    #
    # если принять во внимание, что в директории расположены vhost только
    # правильно сконфигурированные и необходимые хосты.

    localhost.conf
    Код:
    <VirtualHost *:80>
    # Здесь задаём имя (доменное), по которому будет откликаться данный виртуальный хост
    ServerName moydomen.ru
    
    # Псевдонимы, по которым также будет откликаться данный виртуальный хост
    ServerAlias localhost
    
    # Email администратора сервера для контакта,
    # будет выводиться на странице при критической ошибке сервера
    ServerAdmin root@localhost
    
    # Подключаем лог ошибок и лог обращений для данного виртуального хоста
    ErrorLog "C:/server/logs/vh_localhost_error.log"
    CustomLog "C:/server/logs/vh_localhost_access.log" common
    
    # Абсолютный путь до корневой директории для виртуального хоста
    DocumentRoot "C:/server/www/localhost/public_html"
    
    # Объявление правил для корневой директории виртуально хоста
    <Directory "C:/server/www/localhost/public_html">
        Options Indexes FollowSymLinks ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
    </Directory>
    
    # Задаются индексные файлы в порядке убывания по приоритету
    <IfModule dir_module>
        DirectoryIndex index.html index.php index.htm
    </IfModule>
    
    # Здесь указываем псевдонимы для необходимых директорий.
    # Чтобы лучше понять, как оно работает, небольшой пример.
    # Допустим, мы хотим чтобы содержимое директории C:\Program Files\Warcraft III\replays
    # отображалось при переходе по следующему адресу - http://мойдомен.ru/replays/
    # Для этого в качестве псевдонима указываем /replays/, а в качестве физического
    # пути - C:/Program Files/Warcraft III/replays/
    #
    # Готовая запись будет выглядеть следующим образом:
    # Alias /replays/ "C:/Program Files/Warcraft III/replays/"
    
    <IfModule alias_module>
        ScriptAlias /cgi-bin/ "C:/server/www/localhost/cgi-bin/"
    </IfModule>
    
    # Объявляем правила для директории CGI сценариев,
    # которая откликается по псевдониму /cgi-bin/
    <Directory "C:/server/www/localhost/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
    </VirtualHost>
    
  2. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Re: Настройка Apache 2.2 + PHP 5.3

    Отлично, это для тех кто не признает готовые сборки типа XAMPP VAMP Denwer...
    Самый надежный вариант.