При написании данного руководства использовал следующее:
- Windows XP Pro - SP2
- Apache 2.0.55 for Win32
- Active Perl 5.8.7.815
- PHP 5.1.1
- MySQL 4.1.15
Все, что было установлено, ставилось на диск w:
I. Apache
1. Дистрибутив
Скачайте и установите Apache с http://httpd.apache.org/download.cgi.
Нужна версия "Win32 Binary (MSI Installer)". (Вы можете выбрать нужное вам зеркало для более быстрого скачивания)
Я использовал дистрибутив: apache_2.0.54-win32-x86-no_ssl.msi
2. Установка
Во время установки Apache, вам потребуется указать "Server Information." Я использовал следующее:
Network Domain: localhost
Server Name: localhost
Admin Email: (укажите ваш почтовый ящик)
Рекомендуется отметить: "for All Users, on Port 80, as a Service"
В этом месте, если вы используете Windows XP SP2 или в системе присутствует Firewall, вам потребуется разблокировать работу сервиса (система выдаст предупреждение).
Настройка пути:
В настройках установки (Setup Type) выберете стандартную установку (Typical), и укажите путь установки:
w:/usr/local/
с этим путем Apache будет установлен в:
w:/usr/local/apache2
В выборочной установке (Setup Type: Custom) вы также можете указать какие компоненты вы будете устанавливать.
3. Запуск/Останов Apache
После установки Apache2 стартует автоматически. В системном лотке появиться монитор сервиса Apache. При помощи него можно легко запускать и останавливать Apache. Так же имеется утилита для проверки правильности конфигурации Apache "Test configuration", она находиться в программной группе.
4. Проверка
Теперь нам нужно провести тест. Чтобы увидеть работу сервера откройте ваш браузер и перейдите на http://127.0.0.1/ или http://localhost/
Если вы увидите страницу документации Apache или что-то вроде "Test page for Apache Installation", то это означает, что сервис установлен и запущен.
5. Создание рабочих папок для Apache
Откройте w:usrlocalApache2confhttpd.conf любым текстовым редактором (или просто выберете в программной группе "Edit the Apache httpd.conf Configuration File").
Найдите там строку DocumentRoot. Замените ее на DocumentRoot "w:/www" или любой другой путь, где будут хранится ваши файлы.
ВНИМАНИЕ:
Не в коем случае не путайте ServerRoot и DocumentRoot. Перед заменой убедитесь в этом, DocumentRoot находиться где-то на 225-235 строке
Пролистайте вниз около страницы и замените путь блоке:
на свой, который вы указали выше.
Перезапустите Apache для принятия изменений.
II. Perl/CGI
1. Дистрибутив
Скачайте последнюю версию ActivePerl c
http://www.activestate.com/Products/Dow … ActivePerl (если у вас попросят регистрации, то просто оставьте поля пустыми и нажмите "next").
Скачайте MSI версию для Windows.
Я использовал: ActivePerl-5.8.7.815-MSWin32-x86-211909.msi
2. Установка
При установке вам ничего менять не надо. Единственное что я сделал - это изменил путь установки на "w:usr" (Это потребуется для того, чтобы заголовок CGI приложений в Windows соответствовал Linux.
Последним шагом при настройке установки вам надо будет снять везде галочки, оставив только на:
- Add Perl to the PATH environment variable
- Create Perl file extension association
3. Включение CGI
Откройте w:usrlocalApache2confhttpd.conf любым текстовым редактором (или просто выберете в программной группе "Edit the Apache httpd.conf Configuration File").
Найдите там строку Options Indexes FollowSymLinks (в районе 267-й строки) и добавьте ExecCGI в конец. Это должно выглядеть теперь так:
Options Indexes FollowSymLinks ExecCGI
4. Разрешение CGI в любых папках (опционально)
Если вы хотите использовать CGI вне ScriptAliased директории (обычно это Apache2/cgi-bin/), вам нужно раскоментировать следующую строку:
#AddHandler cgi-script .cgi
и добавить в конец .pl, что будет, значит, что perl файлы будут выполняться как cgi скрипт.
Вы также можете закомментировать
ScriptAlias /cgi-bin/ "w:/usr/local/Apach2/cgi-bin/"
5. Определение пути к perl
Если вы устанавливали perl, следуя моим указаниям, то путь к интерпретатору, который вам нужно указывать в программах выглядит следующим образом:
w:/usr/bin/perl
Совет:
Для пути "w:/usr/bin/perl.exe, если он правильный будут соответствовать несколько вариантов написания:
#!w:/usr/bin/perl.exe
#!w:/usr/bin/perl
#!/usr/bin/perl.exe
#!/usr/bin/perl
В последних двух случаях подразумевается поиск на текущем диске.
6. Проверка
Если вы не отключили ScriptAlias /cgi-bin/, тогда создайте файл в w:/usr/local/Apach2/cgi-bin/test.cgi со следующим содержанием (если же вы отключили скрипталиасы, тогда разместите файл где-нибудь в w:www):
#!usr/bin/perl
print "Content-type:text/html ";
print "Test";
Перезапустите Apache и откройте в браузере http://127.0.0.1/cgi-bin/test.cgi или укажите друге место, если вы использовали вариант без ScriptAlias
Если в окне отображено "test", это означает, что CGI работает. Если вы получили сообщение об ошибке 500, тогда смотрите в w:/usr/local/Apache2/logs/error.log чтобы узнать, в чем проблема.
III. PHP
1. Дистрибутив
Скачайте последнюю версию c http://www.php.net/downloads.php
Я использовал php-5.1.1-Win32.zip
Распакуйте содержимое архива в w:php
2. Конфигурация PHP
Переименуйте w:phpphp.ini-dist в php.ini
Откройте его (php.ini) в текстовом редакторе и найдите doc_root (454-я строка), присвойте ему путь к вашему DocumentRoot от Apache (в нашем случае "w:www"), т.е.:
doc_root="w:www"
Пролистайте ниже и измените extension_dir="./", подставив путь к папке с модулями php после распаковки.
У меня это выглядит так:
extension_dir="w:phpext"
Еще можно поменять путь, где php будет хранить данные о сессиях, я указал путь к временной паке Windows, а можно под это дело отдельную папку w:varphps, т.е.:
session.save_path = "w:/var/phps"
Если вы собираетесь, продолжительное время тестировать программы и сервер, там нужно будет включить расширенный режим ведения логов (опционально), для этого найдите error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
и замените его на error_reporting = E_ALL | E_NOTICE | E_STRICT
3. Конфигурация Apache
Откройте w:usrlocalApache2confhttpd.conf любым текстовым редактором (или просто выберете в программной группе "Edit the Apache httpd.conf Configuration File").
Туда вам нужно будет добавить несколько строк, где-нибудь после блоков LoadModule (перед этим убедитесь в наличии php5apache2.dll в папке, куда был установлен PHP, в нашем случае это w:/php/php5apache2.dll):
LoadModule php5_module "w:/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "w:/php"
4. Проверка
Перезапустите Apache.
Создайте файл test.php следующего содержания:
теперь откройте его в браузере, вы должны увидеть то, что выведет функция phpinfo() а выведет она не мало.
IV. MySQL
1. Дистрибутив.
Зайдите на http://dev.mysql.com/downloads/mysql/4.1.html
пролистайте в самый низ, минуя все варианты, и скачайте версию "Windows Essential (x86)"
Я использовал mysql-essential-4.1.15-win32.msi
2. Установка
Запустите MSI-файл и проведите следующие установки:
- Typical Setup
- Skip Sign-Up
- убедитесь что стоит флаг на "Configure the MySQL Server now"
- "Detailed Configuration"
- "Developer Machine"
- "Multifunctional Database"
- "InnoDB Tablespace Settings" (оставьте без изменений)
- "Decision Support (DSS)/OLAP"
- убедитесь что отмечено "Enable TCP/IP Networking" и стоит стандартный порт 3306 (в этом месте вам опять потребуется настроить ваш Firewall, для доступа службы на localhost)
- "Standard Character Set" (в этом случае будет использоваться latin1 для записи в базу, но вы можете, изменит при желании на любую другую кодировку)
- Отметьте флагом "Install As Windows Service", снимите флаг с "Include Bin Directory in Windows PATH"
- Введите пароль для root
- Жмите "execute"
3. Настройка PHP для работы с MySQL
По умолчанию в PHP5 отключена поддержка MySQL, по этому включать ее мы будем руками. Скопируйте libmysql.dll (w:phplibmysql.dll) в вашу системную папку Windows (Обычно C:windowssystem32 или c:windowssystem)
Открываем php.ini и снимаем комментарий со следующей строки:
;extension=php_mysql.dll
Перезапустите Apache, если возникнут, какие либо ошибки, это означает что система скорее всего не может найти libmysql.dll и вам нужно проверить пути.
4. Проверка
Создайте следующий файл php-файл следующего содержания:
";
mysql_select_db("$dbName") or die("Не могу подключиться к базе");
print "Подключение к базе прошло успешно
";
// close connection
mysql_close($link);
?>
и запустите его
Общая настройка сервера завершена. Все компоненты настроены (более тонкую настройку придется проводить отдельно, и это выходит за рамки этой статьи) и готовы к работе.