НАСТРОЙКА ХОСТИНГА WAMP (Windows 2000 + Apache + MySQL + PHP) В ЛОКАЛЬНОЙ СЕТИ
Дата: 26.09.2004
Адрес: [http://introvert.ru/projects.php]
Автор: Интроверт [[email protected]]
Тема: Данная статья может оказаться полезной при настройке веб-хостинга в локальной сети. Под хостингом здесь подразумевается набор программ, необходимых для размещения веб-приложений. С некоторыми изменениями эта статья пригодна и в случае установки хостинга на отдельном компьютере, не подключенном к сети (что может потребоваться для тестирования веб-приложений).
1. ПЛАНИРОВАНИЕ ИНТРАСЕТИ
Исходные положения:
-- Компьютер, на котором размещено программное обеспечение веб-сервера, будем называть сервером, хотя с технической точки зрения, это может быть обычная рабочая станция в составе одноранговой локальной сети или даже просто отдельный (домашний) компьютер, не подключенный к сети.
-- Для небольшой локальной сети достаточно будет самой простой конфигурации сервера: процессор класса Pentium-3, 128 Мб ОЗУ, 20 Мб места на диске.
-- В качестве платформы для размещения веб-сервера из всех операционных систем Microsoft в настоящее время больше всего подходит Windows 2000.
-- Несмотря на происхождение платформы Windows, на сервере по ряду причин целесообразно использовать приложения, пришедшие из мира UNIX (речь идет об Apache, MySQL, PHP, Perl и так далее).
Предполагается, что:
-- и веб-сервер Apache, и сервер баз данных MySQL будут работать на одном компьютере (сервере).
-- на одном сервере будет размещено сразу несколько сайтов (веб-приложений).
Важно определиться, где и как будут размещены все компоненты хостинга. Предлагается следующая структура каталогов:
На диске [D:] сервера создается отдельный каталог [Web].
В этом каталоге создается несколько каталогов второго уровня:
-- [Apache] - для установки Apache.
-- [php] - для размещения модулей PHP.
-- [mysql] - для установки MySQL.
-- [tmp] - для временных файлов (сессии PHP, uploaded-файлы).
-- [home] - корневой каталог для HTML-документов и PHP-скриптов.
В каталоге [D:\Web\home] создаются отдельные каталоги для каждого из виртуальных хостов:
-- [home\host1]
-- [home\host2]
2. ПОИСК КОМПОНЕНТОВ
Все необходимое программное обеспечение всегда можно найти в сети Интернет и использовать в некоммерческих целях совершенно бесплатно:
-- HTTP-сервер Apache
Дистрибутив можно скачать с сайта [http://www.apache.org/].
В настоящее время параллельно развиваются две ветви проекта Apache - [1.3] и [2.0], для применения в локальной сети, на мой взгляд, лучше подходит проверенная временем и более простая версия [1.3.xx].
В разделе Download можно найти версии для различных операционных систем, как в виде исходного кода, так и в двоичном виде. Для Windows есть несколько вариантов дистрибутива - с поддержкой SSL или без, в формате EXE или MSI. Например, неплохой выбор - [apache_1.3.31-win32-x86-no_src.exe].
-- Модуль PHP
Дистрибутив можно скачать с сайта [http://www.php.net/].
Недавно появилась новая ветвь проекта PHP - 5, но в большинстве случаев достаточно будет и версии [4.3.xx].
Лучше загрузить версию в виде ZIP-архива (без инсталлятора), например - [php-4.3.9-Win32.zip].
-- Сервер баз данных MySQL
Дистрибутив можно скачать с сайта [http://www.mysql.com/].
Опять же, есть выбор из нескольких вариантов - как в виде ZIP-архива, так и с оболочкой для установки. Возьмем, к примеру, [mysql-4.0.20d-win-noinstall.zip].
3. УСТАНОВКА APACHE
После запуска инсталлятора указать каталог для установки (по умолчанию предлагается [C:\Program Files\Apache Group\Apache], изменить на [D:\Web\Apache]). Для остальных параметров установки можно принять значения, предлагаемые по умолчанию.
Настройка Apache производится редактированием конфигурационного файла [D:\Web\Apache\conf\httpd.conf]. Это текстовый файл, так что редактировать его можно в Блокноте.
Измените значения параметров, как показано ниже (строки, начинающиеся со знака #, являются комментариями):
# Указать расположение корневого каталога для HTML-документов
DocumentRoot "D:/Web/home"
# Запретить доступ к системным файлам
<Directory />
AllowOverride None
Options None
Order Deny,Allow
Deny from All
</Directory>
# Разрешить доступ к каталогу с HTML-документами
<Directory "D:/Web/home">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
# Настройка виртуальных хостов - добавить строки в конце файла
### Section 3: Virtual Hosts
# Выбрать режим работы
NameVirtualHost *
# Параметры для первого хоста (host1)
<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot D:/Web/home/host1/
ServerName host1
ErrorLog logs/host1.err
CustomLog logs/host1.log common
# Запретить прямой доступ к некоторым файлам
<Files ~ "\.(inc|csv)$">
Order Deny,Allow
Deny from all
</Files>
</VirtualHost>
# Параметры для второго хоста (host2)
<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot D:/Web/home/host2/
ServerName host2
ErrorLog logs/host2.err
CustomLog logs/host2.log common
# Запретить прямой доступ к некоторым файлам
<Files ~ "\.(inc|csv)$">
Order Deny,Allow
Deny from all
</Files>
</VirtualHost>
# Конец конфигурационного файла
После внесения изменений для их применения необходимо перезапустить службу Apache.
Apache может быть запущен как в виде обычного консольного приложения, так и в виде службы. Предпочтительнее второй вариант:
Если служба еще не установлена в системе, выполните команду:
D:\Web\Apache\apache -i -n "Apache"
Выберите наиболее подходящий тип запуска службы Apache (см. "Панель управления > Администрирование > Службы") - "Авто" (т.е. при старте операционной системы) или "Вручную" (например, по команде "net start Apache").
Проверка работоспособности HTTP-сервера:
-- разместить в каталоге документов для первого хоста [D:\Web\home\host1] текстовый файл (например, который вы сейчас читаете), изменив его имя на [index.html].
-- убедиться, что служба Apache работает (через "Панель управления > Администрирование > Службы").
-- запустить браузер и набрать в адресной строке IP-адрес сервера (или [127.0.0.1], если это тот же компьютер) - должен появиться индексный файл [index.html].
4. НАСТРОЙКА РАЗРЕШЕНИЯ ИМЕН
Обращаться к веб-серверу можно или по IP-адресу [http://192.168.0.1], или по имени [http://myserver.myorg.ru].
Второй вариант предпочтительнее:
-- При помощи псевдонимов можно на одном сервере (с одним IP-адресом) разместить несколько сайтов (с разными именами).
-- Имена запоминаются проще, чем IP-адреса.
В локальных сетях Microsoft применяется два способа преобразования имен хостов в IP-адреса:
-- файл hosts (подходит для небольших одноранговых сетей).
-- служба DNS (используется в достаточно больших сетях).
Если вы решили использовать DNS, для каждого виртуального хоста создайте псевдоним (за помощью обратитесь с системному администратору).
Порядок использования файла hosts:
-- найдите этот файл (для Windows 9x - [C:\Windows\hosts], для Windows 2000/XP - [C:\Winnt\system32\drivers\etc\hosts]), если такого файла нет - создайте его.
-- откройте найденный файл в текстовом редакторе (например, все в том же Блокноте).
-- для каждого виртуального хоста в отдельной строке введите IP-адрес сервера и имя хоста через пробел.
Вот пример содержимого файла hosts:
127.0.0.1 localhost
192.168.0.1 host1
192.168.0.1 host2
Чтобы проверить разрешение имен (например, для хоста host1) наберите в адресной строке браузера вместо IP-адреса соответствующее имя [http://host1] и убедитесь, что индексная страница загружается.
5. УСТАНОВКА PHP
Из всего содержимого архива [php-4.3.9-Win32.zip] лишь два файла необходимы для работы PHP как модуля Apache - [php4apache.dll] и [php4ts.dll]. Найдите эти файлы и распакуйте их в каталог [D:\Web\php].
В том же архиве найдите образец конфигурационного файла [php.ini-recommended] и распакуйте его в системный каталог (обычно - [C:\WINNT] или [C:\Windows]), изменив имя на [php.ini]. Настройка PHP производится редактированием этого конфигурационного файла.
Необходимо изменить конфигурационный файл Apache, чтобы включить обработку скриптов PHP [D:\Web\Apache\conf\httpd.conf].
-- В секции 1 (Global Environment) добавить команду загрузки модуля PHP:
LoadModule php4_module "D:/Web/php/php4apache.dll"
-- В секции 2 (Main server configuration) внутри раздела <IfModule mod_mime.c>...</IfModule> добавить расширения для скриптов:
AddType application/x-httpd-php .php
-- В этой же секции внутри раздела <IfModule mod_dir.c>...</IfModule> добавить расширение для индексного файла:
DirectoryIndex index.html index.htm index.php
Также необходимо скорректировать конфигурационный файл [php.ini].
-- Указать временный каталог для хранения файлов сессий:
[Session]
session.save_path = d:\Web\tmp
-- Изменить имя файла журнала ошибок:
error_log = php_err.$$$
Проверка работоспособности модуля PHP:
-- разместить в каталоге документов для первого хоста [D:\Web\home\host1] текстовый файл [test.php] следующего содержания:
<?php echo phpinfo() ?>
-- набрать в адресной строке браузера "http://host1/test.php" - должна появиться страница, содержащая параметры настройки PHP и прочую полезную информацию.
6. УСТАНОВКА MySQL
После запуска инсталлятора указать каталог для установки (по умолчанию предлагается [C:\MySQL], изменить на [D:\Web\mysql]).
Если вы располагаете дистрибутивом в виде ZIP-архива, просто распакуйте его в каталог [D:\Web\mysql].
Назначение наиболее важных подкаталогов [D:\Web\mysql] (остальные подкаталоги можно удалить):
-- [bin] - двоичные файлы: сам сервер в нескольких вариантах, консольный клиент и различные вспомогательные утилиты.
-- [data] - файлы баз данных, каждая база в отдельном подкаталоге.
-- [share] - сообщения об ошибках и таблицы символов для разных языков.
Установка службы MySQL:
D:\Web\mysql\bin\mysqld-nt --install
Настройка службы MySQL производится по аналогии со службой Apache (см. п. 3 этого документа).
Способ запуска и другие параметры сервера можно настроить при помощи приложения WinMySQLAdmin [D:\Web\mysql\bin\winmysqladmin.exe].
Проверка работоспособности MySQL:
-- убедиться, что служба MySQL работает (через "Панель управления > Администрирование > Службы").
-- запустить консольный клиент [D:\Web\mysql\bin\mysql] и подключиться к серверу MySQL под учетной записью администратора:
D:\Web\mysql\bin\mysql -u root -p
Должно появиться приглашение консольного клиента:
mysql>
-- выполнить команду отображения текущей даты:
mysql>SELECT CURRENT_DATE;
-- завершить работу клиента и отключиться от сервера:
mysql>QUIT
Внимание! Необходимо установить надежный пароль на учетную запись администратора (сразу после установки пароль для учетной записи root - пустая строка!):
D:\Web\mysql\bin\mysqladmin -u root password 'password'
7. ДОБАВЛЕНИЕ (УДАЛЕНИЕ) ХОСТА
Выше приведены настройки для двух виртуальных хостов с именами host1 и host2. При необходимости добавления виртуального хоста для установки нового веб-приложения необходимо:
-- Создать отдельный каталог для документов HTML и скриптов PHP.
-- Добавить секцию в конфигурационный файл Apache [httpd.conf].
-- Создать для нового хоста псевдоним в DNS или добавить запись в файл [hosts] на всех клиентских узлах сети.
-- Создать (в случае необходимости) новую базу данных MySQL и учетные записи пользователей этой базы данных, назначить им пароли и права доступа.
8. ПРОБЛЕМЫ?
Обычно настройка и использование упомянутых в данной статье программ не вызывает сложностей. И все же, если при настройке компонентов хостинга у вас возникли проблемы, вы можете:
-- в первую очередь - обратиться к документации, всегда включаемой в дистрибутивы (конечно же, на английском языке).
-- сделать запрос в любимой поисковой системе Интернет по фразе "настройка Apache PHP MySQL для Windows".
-- призвать на помощь знакомых системных или сетевых администраторов.
-- написать Интроверту по адресу [[email protected]].
Copyright (с) 2004, Интроверт.
__