Apache настройка cgi windows

Обновлено: 05.07.2024

Этот раздел содержит инструкции по установке PHP для Apache 2.x на системы Microsoft Windows. Мы также имеем инструкции для пользователей Apache 1.3.x на отдельной странице.

Замечание: Поддержка Apache 2.2

Пользователям Apache 2.2 следует обратить внимание на то, что DLL файл для Apache 2.2 называется php5apache2_2.dll , а не php5apache2.dll и он доступен только для PHP 5.2.0 и более поздних версий.

Вам настоятельно рекомендуется ознакомиться с » Документацией по Apache, чтобы получить базовые знания о Apache 2.x Server. Также перед чтением данной справки обратите внимание на » Рекомендации для Windows по Apache 2.x.

Apache 2.x предназначен для работы в серверных версиях Windows, таких как Windows NT 4.0, Windows 2000, Windows XP или Windows 7. Хотя Apache 2.x может использоваться на Windows 9x, эти платформы не поддерживаются полностью, и некоторые функции не будут работать правильно. Исправление этой ситуации не планируется.

Скачайте наиболее актуальную версию » Apache 2.x и подходящую версию PHP. Следуйте Пошаговому руководству по установке и вернитесь для продолжения интеграции PHP и Apache.

Существует три пути установки PHP для Apache на Windows. Вы можете запустить PHP как обработчик, как CGI, или под FastCGI.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слеши, например, c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext . Для путей с директориями также может понадобиться слеш в конце.

Установка PHP как обработчика под Apache

Замечание: Не забудьте указать актуальный путь к директории PHP вместо C:/php/ в приведенном примере. Позаботьтесь, чтобы в директиве LoadModule использовались либо php5apache2.dll либо php5apache2_2.dll и удостоверьтесь, что указанный файл фактически находится по пути, который вы указали в директиве.

Приведенная выше конфигурация позволит PHP обработать любой файл, который имеет расширение .php, даже если имеются другие расширения. К примеру, файл с именем example.php.txt будет запущен обработчиком PHP. Чтобы гарантировать, что только файлы, которые имеют расширение .php будут запущены, используйте следующую конфигурацию:

Запуск PHP как CGI

Вы должны обратиться к документации » Apache CGI для более полного понимания о запуске CGI под Apache.

Для запуска PHP как CGI, вам необходимо поместить ваши php-cgi файлы в директорию, обозначенную как директория CGI, используя директиву ScriptAlilas.

Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от таких атак.

Запуск PHP под FastCGI

Запуск PHP под FastCGI имеет ряд преимуществ по сравнению с запуском как CGI. Установка же довольно проста:

Настроить свой веб сервер как указано ниже, позаботившись о соответствии всех путей установки на вашей конкретной системе:

Основной файл конфигурации этого сервера - "httpd.conf". Лежит он в каталоге "conf" в root-директории Apache. Вот над ним вам и придеться издеваться. Скажу сразу, если вы не понимаете английского, удалите из этого файла все комментарии и пояснения, оставьте только сами директивы (и закоментированные тоже); таким образом вы сможете быстрее находить нужную директиву, не роясь среди множества непонятных вам пояснений. Синтаксис файла очень простой: "директива значение", все строки не соответствующие этому виду можно удалить.

Внимане! Некоторые директивы могут выглядеть так:

и т. п. Эти строки удалять не нужно!

Общие настройки

Вам нужно будет сделать правку файла "httpd.conf". У некоторых директив изменить значение, другие раскомментировать, третьи добавить. Далее я приведу список директив и их значений, которые должны присутствовать в файле конфигурации Apache.

Каталог с файлами сервера (не путать с "DocumentRoot"):

Привязывает Apache к конкретному порту:

Имя сервера (на работу это не влияет):

Администратор сервера. Содержит ваш адрес электронной почты, который будет отображаться при некоторых ошибках сервера:

Вам необходимо создать папки, где будут храниться ваши сайты. По умолчанию Apache устанавливает "DocumentRoot" - "%ServerRoot%/htdocs" (т. е. если вы установили Apache в папку "C:\Server\Apache", то "DocumentRoot" будет выглядеть так: "C:/Server/Apache/Apache2/htdocs"). Вы должны изменить значение "DocumentRoot" на "C:/Sites/home/localhost/www".

Строго следуйте моим инструкциям, чтобы быть уверенными, что все это у вас потом заработает. Создайте на диске "C:" папку "Sites". В ней создайте каталог "home", уже в нем - "localhost", "neebet", "mysite". В каждую из этих папок ("localhost", "neebet", "mysite") положите каталоги "www" (для хранения html документов), "cgi" (для хранения cgi-скриптов), пустые файлы access.log (журнал доступа к серверу) и error.log (журнал ошибок сервера). Т. о. структура каталогов, в которых будут храниться ваши сайты должна выглядеть так:

Зачем это нужно, поймете потом, а сейчас просто сделайте как я говорю.

Далее замените блок "<Directory "C:/Server/Apache/Apache2/htdocs">" на следующее:

Этими директивами вы разрешите просмотр содержимого каталога в браузере при отсутствии индексных файлов, включите поддержку SSI, разрешите использовать файлы .htaccess для настройки каталогов и разрешите доступ для всех к сайту.

Задание индексного файла для директории (этот файл сервер будет отображать при обращении к каталогу без указания имени файла):

Настройки CGI

Задание псевдонима для каталога с cgi-скриптами "C:\Sites\home\localhost\cgi". При указании пути вида http://localhost/cgi/ или http://localhost/cgi-bin/, Apache будет обращаться к каталогу "C:\Sites\home\localhost\cgi":

Указывает Apache, что файлы с расширением "cgi", "bat", "exe" нужно воспринимать как cgi-скрипты:

Блок "<Directory "C:/Server/Apache/Apache2/cgi-bin">" замените на:

Языковые настройки

Остальные строки вида "AddLanguage lang .lang" можете закомментировать (если конечно вам не нужна поддержка этих языков):

Устанавливает языковой приоритет:

Настройки PHP

Настройки SSI

Теперь основные дерективы заданы. Для вступления изменений в силу - перезапустите Apache.

Виртуальные хосты

Итак, вы создали каталог "localhost" для хранения и тестирования документов вашего сайта. Но если у вас не один сайт? Можно конечно создать каталоги для других сайтов внутри "localhost" и обращаться к ним "http://localhost/site", но это не совсем удобно. Тем более, что Apache дает возможность решить эту проблему с помощью виртуальных хостов. Есть два вида виртуальных хостов: отдельные для каждого IP адреса и использующие один IP (name-based хосты). Я объясню как настроить последние.

Вы уже создали ранее папки "neebet" и "mysite" в директории "home". Это и есть корни ваших виртуальных хостов. В них должны быть папки "www" и "cgi", файлы access.log и error.log. Т. е. все так же как и с каталогом "localhost". Все ваши виртуальные хосты будут использовать IP "127.0.0.1".

Добавьте в файл "httpd.conf" следующее:

Можно добавить в блоки "<VirtualHost>" и другие параметры, однако лучше управлять виртуальными хостами с помощью .htaccess. Также стоит отметить, что все параметры, не указанные в блоках "<VirtualHost>" или в .htaccess, наследуются от главного хоста (т. е. от "localhost").

Т. о. вы настроили Apache для работы с виртуальными хостами. Имена, естесственно, можно изменить, но при этом будте внимательны с путями!

В этой статье расказано как установить и настроить Apache-сервер на стандартный домашний компьютер, работающий под управлением Windows, чтобы на нём можно было заняться разработкой и написанием CGI-программ. Выполнив все приведённые здесь этапы, вы сможете запускать и проверять на своем компьютере все программы, представленные на этом сайте в качестве примеров.

1. Скачайте Web-сервер Apache

2. Установите Web-сервер Apache

После того как пакет установки загружен, вам следует установить программу. Сервер Apache использует стандартную процедуру установки, поэтому вам нужно лишь дважды щелкнуть на файле пакета установки, принять условия лицензии, указать папку для программы и выбрать тип установки.

Рекомендуем установить сервер так (шесть шагов):

  1. Определитесь с директорией, в которую Вы будете устанавливать Apache. Все дальнейшие рассуждения основаны на том, что Вы выбрали для этой цели такой каталог: f:usrlocalapache Если диска F: у Вас нет, или если Вы не хотите его захламлять, советуем сделать одно из трех:
    1. Создайте диск F: с помощью какой-нибудь программы для виртуальных разделов (например, с помощью встроенной в Windows 95/98 программы DriveSpace). Это самое лучшее решение, и с точки зрения экономии памяти, и с точки зрения быстродействия. Ведь что такое Web-сайт, как не набор очень небольших файлов? А DriveSpace как раз и оптимизирует работу с такими файлами.
    2. Сделайте виртуальный диск F:. Для этого создайте где-нибудь на любом диске директорию, которая в будущем будет являться корневой для диска F:. Предположим, Вы выбрали C:INTERNET. Далее, в начале файла c:autoexec.bat пропишите такую строку:

    и перезагрузите компьютер. У вас должен появиться виртуальный пустой диск F:.

    3. Настройте файла конфигурации Apache mime.types

    1. Откройте директорию f:usrlocalapacheconf. Откройте находящийся там файл mime.types.
    2. Найдите в нем такую строчку:

    Но, поскольку у меня PHP установлен как модуль Apache, эти изменения затронули все виртуальные хосты. Из-за этого перестал работать phpMyAdmin. Пришлось устанавливать PHP как FastCGI, чтобы для каждого виртуального хоста был свой файл php.ini .

    Интерфейс FastCGI — клиент-серверный протокол взаимодействия вебсервера и приложения, дальнейшее развитие технологии CGI. По сравнению с CGI является более производительным и безопасным.

    FastCGI ликвидирует множество ограничений CGI-программ. Проблема CGI-программ в том, что они должны быть перезапущены веб-сервером при каждом запросе, что приводит к понижению производительности.

    FastCGI убирает это ограничение, сохраняя процесс запущенным и передавая запросы этому постоянно запущенному процессу. Это позволяет не тратить время на запуск новых процессов.

    В то время как CGI-программы взаимодействуют с сервером через STDIN и STDOUT запущенного CGI-процесса, FastCGI-процессы используют Unix Domain Sockets или TCP/IP для связи с сервером. Это значит, что FastCGI-программы могут быть запущены не только на этом же сервере, но и где угодно в сети. Также возможна обработка запросов несколькими FastCGI-процессами, работающими параллельно.

    В конец файла дописываем:

    Последняя директива означает, что файл php.ini расположен в директории C:/wamp/php71 . Это будет файл конфигурации PHP по умолчанию. Строки, которые отвечают за работу PHP как модуля Apache, удаляем или комментируем:

    Для каждого виртуального хоста добавляем одну строчку, которая переопределяет переменную среды PHPRC . После этого берем дефолтный php.ini из директории C:/wamp/php71 и копируем в директорию каждого хоста. У меня это

    • D:/work/localhost
    • D:/work/localhost1
    • D:/work/localhost2
    • D:/work/localhost3

    В каждом файле php.ini находим строки

    и установливаем значение doc_root :

    Теперь у каждого виртуального хоста будет свой php.ini . Осталось только перезапустить Apache, чтобы изменения вступили в силу.

    Разные версии PHP

    У меня PHP 5.6 установлен в директории C:/wamp/php56 , поэтому именно оттуда я взял php.ini и скопировал в D:/work/localhost4 .

    Чуть позже столкнулся с ошибкой при тестировании системы в Битрикс (Настройки • Инструменты • Проверка системы):

    Проверил настройки php.ini , связанные с загрузкой файлов:

    Вроде все в порядке. Тогда посмотрел еще логи Apache, и там увидел ошибку:

    1) В корне диска R: создаем папку Server и в ней создаем подкаталог PHP.


    • Клацаем правой кнопкой мыши по иконке "Мой Компьютер" и выбираем из контекстного меню пункт "Свойства"
    • Переходим на вкладку дополнительно и клацаем по кнопке "Переменные среды"
    • В окошке системные переменные находим параметр Path, клацаем по нему и к концу строки добавляем наш путь (с точкой запятой перед нашей строкой ) - ;R:\Server\PHP
    • Затем клацаем везде ОК и делаем выход из системы и снова входим. Это нужно для того чтобы переменная Path получила новое значение.
    • Запускаем cmd.exe и проверяем что переменная Path получила новое значение введя команду set и жмакнув по Enter

    4) В папке X:\Sites создаем два подкаталога localhost и testru и далее в каждом из них свои подкаталоги www и cgi .


    5) Скачиваем дистриб Apache под Win32 с поддержкой SSL. На момент установки последним был файлик apache_2.2.14-win32-x86-openssl-0.9.8k.msi. И запускаем на выполнение.

    6) На этом окошке смело жмем Next


    7) Принимаем лицензионное соглашение.


    8) Внимательно и вдумчиво читаем вот это.


    9) Заполняем все поля как на скриншоте


    10) Выбираем Custom


    11) Выбираем опции как на скриншоте и путь установки R:\Server\Apache


    12) Жмакаем Install.

    13) После установки в трее должен появиться значек консоли управления сервисом - Apache Service Taskbar

    14) Проверяем установку запустив браузер и введя в строке адреса localhost. Видим страницу с надписью It Works!. Радуемся жизни. Что-то уже работает.

    16) Теперь будем прикручивать PHP. На текущий момент это версия PHP 5.3.0 . Качаем дистриб в ZIP архиве. Еще раз повторюсь не инсталер с расширением .MSI, а именно ZIP архив. Файлик на момент написания статьи называется php-5.3.0-Win32-VC6-x86.zip, вот его и качаем.

    17) Разархивируем содержимое скачанного архива в папку R:\Server\PHP.

    LoadModule php5_module "R:/Server/PHP/php5apache2_2.dll"
    PHPIniDir "R:/Server/PHP/"

    DirectoryIndex index.html index.php

    21) Переименовываем или копируем файл php.ini-production (в каталоге R:\Server\PHP) в файл php.ini .

    22) Находим в файле php.ini строку short_open_tag = Off . И приводим ее к виду short_open_tag = On

    23) Создаем в каталоге R:\Server\Apache\htdocs файлик phptest.php и пишем в нем следущий код:Сохраняем файлик.

    24) Останавливаем и снова запускаем Apache через консоль управления Apache. После перезапуска Apache можно открыть окно управления сервисом Apache дважды кликнув по иконке в трее. Должны увидеть следующее окошко:


    Обратите внимание, что в статусной панели сервиса управления Apache отображается, что так же загружен модуль PHP и указана его версия.
    Если вы этого не увидели, то сверните окошко и разверните его снова. Если и это не помогло, значит, что то сделали не так и 25 шаг, скорее всего у вас сделать не получится.


    Если такого не видим, то повторяем все шаги снова, до тех пор пока не увидим :).

    **) Небольшое, лирическое отступление от темы установки. Любой сетевой сканер прочитав банер Apache покажет вот такую, или примерно такую инфу:


    Что с потрохами выдает и ОС, и версию Apache и версию PHP, что очень не очень хорошо. Как с этим бороться рассмотрим чуть ниже.

    30) В файле httpd.conf находим строку DocumentRoot "R:/Server/Apache/htdocs" и меняем ее на DocumentRoot "X:/Sites/localhost/www" .

    31) В файле httpd.conf находим строку <Directory "R:/Server/Apache/htdocs"> и меняем ее на <Directory "X:/Sites">

    32) В файле httpd.conf находим строку ErrorLog "logs/error.log" и меняем ее на ErrorLog "X:/Logs/error.log" .

    33) В файле httpd.conf находим строку CustomLog "logs/access.log" common и меняем ее на CustomLog "X:/Logs/access.log" common .

    34) В каталоге X:\Sites\localhost\www создаем файлик index.html со следующим содержимым:
    <H1>It is my LocalHost</H1>


    Радуемся реально работающему виртуальному хостингу.
    Если не видим, то не радуемся. И ищем где ошиблись.

    Находим строку LanguagePriority и убираем там все языки, которые не нужны. У меня эта строчка выглядит так:

    LanguagePriority en ru

    Перед блоком AddCharset вставляем строку AddDefaultCharset WINDOWS-1251 .
    Сохраняем файл.

    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml

    И расскоментируем их.

    Находим блок < Directory "X:/Sites"> и в нем строку Options Indexes FollowSymLinks . Приводим ее к виду Options Indexes FollowSymLinks Includes .

    39) В каталоге X:\Sites\localhost\www создаем файл ssi.html со следующим содержимым:

    SSI тест прошел успешно - ssi.html!

    Затем, там же создаем файл ssitest.shtml со следующим содержимым:


    Радуемся что работает русский язык и SSI. Если не увидели, то упорно ищем ошибку.

    41) Настройка CGI. В файле R:\Server\Apache\conf\httpd.conf находим строчку ScriptAlias /cgi-bin/ "R:/Server/Apache/cgi-bin/" и приводим ее к виду ScriptAlias /cgi-bin/ "X:/Sites/localhost/cgi/" и добавляем следующей строкой еще одну строчку ScriptAlias /cgi/ "X:/Sites/localhost/cgi/" . Находим строку AddHandler cgi-script .cgi, расскоментируем ее и приводим к виду AddHandler cgi-script .cgi .bat .exe , указывая этим расширения файлов, которые будут исполняться как cgi скрипты. Находим строку Directory "R:/Server/Apache/cgi-bin" и приводим ее к виду Directory "X:/Sites/localhost/cgi/" .
    Вообще это не безопасно если не понимаем, что делаем. Привожу это здесь на всякий случай, может кому пригодится. Сохраняем файл.

    42) Далее редактируем файл R:\Server\Apache\conf\extra\httpd-vhosts.conf . Добавляем инструкции ScriptAlias /cgi/ "X:/Sites/localhost/cgi/" и ScriptAlias /cgi/ "X:/Sites/testru/cgi/" в соответствующие блоки. Сохраняем файл.


    43) Создаем файл cgitest.bat в каталоге X:\Sites\testru\cgi и вписываем туда следующий код:

    Создаем файл cigtest.bat в каталоге X:\Sites\localhost\cgi и вписываем туда следующий код:

    @echo off
    echo Content-type: text/html
    echo.
    echo.
    echo LOCALHOST CGI тест прошел успешно - cgitest.bat!

    44) Перезапускаем Apache и тестируем работу CGI введя в броузере следующие адреса:




    45) Теперь очередь за MySQL. Хотя на момент написания была доступна версия 5.4.3-beta под Windwos. Я не стал с ней экспериментировать, а скачал версию 5.1.39 для Win32. Если у вас винда 64-разрядная, то скачиваете соответствующий дистриб вот от сюда. В моем случае файлик назывался mysql-5.1.39-win32.msi . Клацаем по нему и понеслась установка.


    Выбираем Custom клацаем Next


    Меняем путь установки, выбираем нужные нам компоненты (я выбрал все) и клацаем Next и затем Install. Понеслась установка.


    После завершения установки любуемся красивой картинкой и клацаем Next два раза, так как там еще будет одна красивая картинка :).


    Так как сейчас уже MySQL принадлежит корпорации Sun, то нам предлагают зарегистрировать этот продукт, что можно смело пропустить. Оставляем только галку Configure MySQL Server now и клацаем Finish. После этого запустится мастер конфигурирования.


    Делаем правильный выбор и клацаем Next.

    • Developer Machine. Как следует из названия, использовать этот вариант следует, если вы ставите MySQL на машине разработчика, где крутится еще куча всякого нужного (и ненужного, как обычно у разработчиков) софта. В этом случае MySQL автоматически будет настроен на минимальное использование ресурсов.
    • Server Machine. В этом случае предполагается, машина серверная и что на машине, кроме MySQL, крутится еще парочка серверных приложений. Например - Apache. В этом случае, очевидно, MySQL будет настроен на совместное использование ресурсов с несколькими, потенциально ресурсоемкими приложениями.
    • Dedicated MySQL Server Machine. Последний вариант - это монопольное использование ресурсов MySQL. Если у вас есть выделенная машина ТОЛЬКО под базу MySQL, я вас поздравляю - выбирайте этот вариант.
    • Mutltifunctional Database. Я обычно выбираю эту опцию. В этом случае создаются хранилища "общего назначения", с возможностью использования как InnoDB, так и MyISAM таблиц.
    • Transactional Database Only. База оптимизируется для серверов приложений или Web приложений с большим числом транзакций. Основным движком для хранилищ становится InnoDB.
    • Non-Transacional Database Only. Используется для большинства простых Web приложений, для сбора статистики и т. п. Активируется только движок MyISAM.
    • Надежность.
    • Можно сочетать несколько операторов и принимать все эти операторы одной командой COMMIT.
    • Поддержка откатов
    • Если произойдет сбой во время обновления, все изменения будут восстановлены (в нетранзакционных таблицах все внесенные изменения не могут быть отменены).
    • Лучше обеспечивает параллелизм при одновременных обновлениях таблицы и чтении.
    • Скорость
    • Меньший расход дискового пространства
    • Для обновлений используется меньше памяти.


    Так как мы выбрали Mutltifunctional Database , то у нас спрашивают где разместить табличные простарнаства InnoDB. Я их расположил на том же диске, где у меня находится папка Sites. Так как, в начале я уже говорил, что я предпочитаю держать все бинарники на одном диске, а файлы данных на другом. Клацаем Next.


    Здесь выбираем нагрузку, которая будет на базу (количество одновременных подключений). В нашем случае первого варианта достаточно. Клацаем Next.


    Здесь оставляем все как есть по умолчанию. Если у вас включен Windows FireWall и вам нужно чтобы к MySQL могли подключится по сети, то ставим галку Add firewall exeption for this port. Клацаем Next.


    Выбираем русскую кодировочку для таблиц, как показано на рисунке и клацаем Next.


    Здесь все и так понятно. Оставляем по умолчанию. Ну если сильно надо из коммандной строки работать, то ставим соответствующую галку. И клацаем Next.


    Задаем пароль для пользователя root базы данных. Клацаем Next и затем Execute.


    Мастер записал наши параметры в файл конфигурации MySQL и показал где он находится, а так же радостно сообщил что все было successfully. Жмакаем Finish.

    Далее в секции [client]
    добавляем путь к папке кодировок

    В секции [mysql] делаем тоже самое. В секции [mysqld] добавляем эту же строку и строку

    init-connect="SET NAMES cp1251"

    в которой будут передаваться данные MySQL.

    Сохраняем файл и рестартуем сервис.

    47) Проверяем работу MySQL (пока отдельно без привязки к Apache и PHP). Даем из командной строки команду

    start R:\Server\MySQL\bin\mysql.exe -h localhost -P 3306 -u root -p

    на запрос пароля вводим пароль и даем команду



    И радуемся если видим. Если не видим, чешем репу и ищем ошибки.

    48) По умолчанию сервис MySQL стартует под учетной записью SYSTEM. Это, как уже говорилось, очень не очень хорошо. Поступаем с ним, так же как и с Apache. Настраиваем запуск, под уже созданной учетной записью webserver. Кроме того, чтобы MySQL стартовал под этой учетной записью, все же придется прописать путь к папке R:\Server\MySQL\bin в системную переменную PATH (это так же можно было сделать при установке MySQL), а также дать учетной записи webserver разрешения на запись в папку X:\DataBases . Релогинимся в системе, чтобы подхватились новые параметры переменной PATH, рестартуем сервис MySQL уже под учеткой webserver и проверяем работу MySQL, как в предыдущем шаге.

    49) Прикручиваем MySQL к Apache, хотя вернее сказать к PHP, ну а он уже прикручен к Apache. Вот такой паровозик получается. Итак редактируем файлик R:\Server\PHP\php.ini . Находим в нем строчки

    и раскомментируем их. Затем находим строку mysql.default_port = и приводим ее к виду mysql.default_port = 3306 . Далее находим строку mysql.default_host = и приводим ее к виду mysql.default_host = localhost .

    Находим строку extension_dir = "ext" и приводим ее к виду extension_dir = "R:/Server/PHP/ext" . Указывая этим самым где находятся файлы расширений PHP.

    50) Включи функции PHP для работы с графикой. Редактируем файлик R:\Server\PHP\php.ini. Находим строку extension=php_gd2.dll (953 строка по идее) и расскоментируем ее. Перезапускаем Apache.


    Радуемся жизни. Если видим.



    Снова жмем Next


    Выбираем путь нужный нам путь установки и жмем Next


    Оставляем эти две галки как есть (то есть отмеченными :) ) И жмем Next и затем Install. И понеслася установка на диск.

    54) При установке ActivePerl запихнет файл ( printenv.pl ) для тестирования своей работы совместно с Apache в каталог R:\Server\Apache\cgi-bin , наивно полагая что у нас на него настроен сайт. Поэтому нам надо переместить этот файлик в каталог X:\Sites\localhost\cgi .

    55) Редактируем файл X:\Sites\localhost\cgi\printenv.pl. Исправляем первую строку с


    И радуемся, радуемся жизни. если видим.

    59) Создаем подпапку ssl в корне каждого виртуального хоста и помещаем туда соответствующие наборы фалов сертификатов.

    Читайте также: