УСТАНОВКА И КОНФИГУРИРОВАНИЕ WEB-СЕРВЕРА APACHE, ИНТЕРПРЕТАТОРА PHP И СЕРВЕРА БАЗ ДАННЫХ MYSQL
Ф.Г. Петров, Ю.И. Рядчин Научный руководитель - доктор технических наук, профессор А.Г. Коробейников
Статья посвящена установке и настройке популярной связки web-сервера Apache + PHP + сервера баз данных MySQL. Рассмотрены вопросы установки и конфигурирования перечисленных программ, а также проверка правильности их установки.
Введение
В связи со стремительным ростом числа сайтов в сети InterNet и возможностями серверов растут и требования, предъявляемые к сайтам, и уже практически невозможно сделать хороший динамический сайт, который легок в управлении и способен обрабатывает запросы, а также оповещать администратора об определенных событиях, не используя механизмы обработки на стороне сервера. Все эти требования и многие другие можно достаточно просто выполнить, используя соответствующие инструменты. Наиболее гибким и удобным инструментом является персональный гипертекстовый препроцессор PHP. Лучше всего его использовать в связке с web-сервером Apache и сервером баз данных MySQL.
В данной статье описывается, как сделать максимально просто установку и конфигурирование очень популярной связки web-сервера Apache + PHP + сервера баз данных MySQL. Статья не может претендовать на полный обзор настройки таких серьезных вещей, как web-сервер Apache, сервер баз данных MySQL и PHP, но она предназначена для общего ознакомления с установкой, настройкой и возможностями этих программ, а также позволит начинающим программистам и веб-дизайнерам установить и настроить эти приложения в достаточном объеме для разработки своих приложений. Это позволит им видеть работу своих приложений глазами пользователя еще до выкладывания сайта у хост-провайдера и правильно отладить приложения.
Web-сервер Apache - это программа, которая исполняет функции http-сервера (web-сервера), т.е. обрабатывает запросы, пришедшие по протоколу http. Apache обладает широчайшими конфигурационными возможностями. Существуют тысячи возможных комбинаций значений для сотни конфигурационных переменных. Без сомнения, тот, кто работал с ОС Unix или DOS, знаком с концепцией опций, задаваемых в командной строке. Основной принцип, заложенный в концепцию директивы, аналогичен концепции опции, задаваемой в командной строке. Но здесь, вместо того чтобы задавать при каждом запуске Web-сервера дюжину или сотню конфигурационных переменных Apache, параметры собраны в одном конфигурационном файле httpd.conf, который автоматически считывается сервером во время запуска.
По умолчанию конфигурационные файлы хранятся в каталоге conf, который находится в главном каталоге сервера Apache. Как и все остальное окружение web-сервера Apache, размещение и имена этих файлов легко меняется, но для простоты изложения материала здесь и далее воспользуемся стандартными именами файлов и каталогов.
Как подчеркивалось выше, значения конфигурационных переменных хранятся в конфигурационных файлах. Эти переменные и есть директивы. Основное время администрирования сервера Apache (до 90%) затрачивается на определение того, значения каких директив будут изменяться, и значений, которые эти директивы должны задавать.
Следует обратить внимание на то, что далеко не все директивы автоматически распознаются сервером Apache. Существует достаточно большое подмножество директив, которые называются основными. Эти директивы устанавливаются по умолчанию.
Другие директивы распознаются в зависимости от того, какой набор модулей скомпилирован при построении данного конкретного сервера Apache. Поэтому указание директивы в конфигурационном файле совсем не означает, что она возымеет какое-либо действие: работающий вариант сервера вполне может не иметь модуля, который взаимодействует с данной директивой.
Далеко не все директивы применяются одновременно. Иногда очень полезно иметь один набор директив для одного варианта сервера, а другой - для другого варианта. Наглядным примером может служить случай, когда один и тот же сервер обслуживает более одного web-узла. В таком случае для каждого узла задаются различные директивы, и, как минимум, у них должны быть разные имена.
Диапазон конкретной директивы может быть ограничен тремя способами:
• по каталогу с помощью директив <Directory>, <DirectoryMatch> или файла .htaccess;
• по URL (Unified Resource Locator) с помощью директив <Location> и <Location-Match>;
• по файлу с помощью директив <Files> и <FilesMatch>.
Наиболее интересно применение файла .htaccess. Директивы, указанные в этом файле, работают в каталоге, в котором содержится этот конкретный файл, а также в его подкаталогах.
Сервер Apache имеет ядро, гарантирующее выполнение основных функций. Ядро обеспечивает работу директив, возможность чтения конфигурационных файлов, усеченную возможность управления доступом, возможность дополнения функциональных возможностей и полдесятка других основных функциональных возможностей.
Кроме того, сервер Apache разработан таким образом, что всегда существует возможность варьирования основных функциональных возможностей. Функциональные части могут быть и не подключены к первоначальной исполняемой программе. Эти субсекции называются модулями, причем значительная их часть поставляется по умолчанию в стандартном дистрибутиве. Если модуль включен, он становится составной частью исполняемого процесса с тем же идентификатором процесса и доступом к тем же системным ресурсам. Задача состоит в том, как наиболее удобно и эффективно выполнить связку Apache + PHP + MySQL, которая бы позволила решить задачи по обработке данных на стороне сервера. MySQL - это сервер баз данных, исполняющий запросы на языке SQL.
PHP является персональным гипертекстовым препроцессором, выполняющим сценарии, написанные на соответствующем язык программирования.
Так как данная статья предназначена для разработчиков веб-приложений, а не администраторов, то будет рассмотрена установка программ на ПК с популярной ОС Windows XP.
Установка сервера баз данных MySQL
Загрузите дистрибутив MySQL для Windows с http://mysql.com/downloads/. Разар-хивируйте его в подходящее место, после этого запустите программу setup. После стандартной вводной части и экрана ReadMe выберите каталог, в который будет устанавливаться MySQL. Если нет каких-либо веских причин для иного, выберите установку в каталог, предложенный по умолчанию. На следующем экране выберите тип установки Typical, если только вы не испытываете крайнего недостатка свободного места на диске. MySQL надо установить как службу.
После установки MySQL следует создать пользователя root и задать ему пароль. Для этого надо открыть сеанс MS DOS, зайти в папку C:/mysql/bin и выполнить там команду mysql —u root —p test. Флаг -u задает пользователя, а -p приводит к выдаче при-
глашения ввода на пароль. Также в этой папке можно выполнить команду mysqlshow, которая выведет список существующих баз данных.
Службу MySQL можно запускать как в ручном, так и в автоматическом режиме. Подробно об этом написано в [1].
Установка web-сервера Apache
Загрузите мастер установки Apache с http://www.apache.org/dist/httpd/. Дважды щелкните по программе установки и нажмите кнопку Next в окне мастера установки, после чего появится окно, в котором надо ввести в качестве Network Domain и Server Name localhost или 127.0.0.1. В любом случае в Administrator's Email Address следует указать свой реальный адрес электронной почты или тот, с которого происходит переадресация.
В нижней части экрана можно указать, как следует установить Apache: в виде службы или в виде приложения. Следует выбрать службу, если нет какой-то особой причины этого не делать. Служба всегда невидимо работает, независимо от того, кто зарегистрирован в системе, и даже если не зарегистрирован никто, а приложение может быть запущено только пользователем, зарегистрированным в системе. При завершении пользователем работы завершаются все запущенные им программы.
Следующий экран предлагает сделать полную или выборочную установку. Большинству пользователей подойдет полная установка, но если жесткий диск заполнен, а вы обычно подключены к Интернету, то можно остановиться на выборочной установке и сбросить флажки для Documentation и Source Code, электронную документацию и исходный код можно взять на http://apache.org/. При выборочной установке следует оставить предлагаемый по умолчанию для размещения программы каталог C:\Program Files\Apache Group\, ели нет достаточных оснований изменить его.
После запуска Apache в браузере по адресу http://localhost/ или http://127.0.0.1/ должна открыться страница «Test Page for Apache Installation». Если она открылась, значит, все сделано правильно.
Установка PHP
Сначала загрузите дистрибутив РНР для Windows с http://php.net/downloads.php.
Затем остановите web-сервер Apache и сервер баз данных MySQL, если они работают в данный момент. Начните установку, выполнив двойной щелчок по программе setup. После стандартного экрана представления и лицензионного соглашения запрашивается вид установки - Standard или Advanced. Рекомендуется выбрать Standard - по этому пути мы и пойдем. Опытные пользователи могут попробовать установку Advanced. В любой момент можно вернуться к предыдущему экрану, нажав кнопку Back, или даже нажать Cancel и начать все с самого начала.
Если выбран стандартный тип установки, то следующим появляется диалоговое окно, в котором предлагается задать каталог, в который требуется установить PHP. Лучше всего оставить предложенный по умолчанию C:\php\, если нет веских оснований выбрать другой каталог.
Затем запрашиваются настройки, необходимые РНР для отправки электронной почты с помощью встроенной почтовой функции. В этом диалоге надо задать действующий сервер SMTP и адрес From: по умолчанию. Если вы знаете, какой сервер SMTP обрабатывает исходящие сообщения, и знаете, что для авторизации отправки почты он использует только адрес From:, можно задать эти значения. Если имя сервера SMTP вам неизвестно или авторизация на этом сервере требует не только правильного адреса
From:, но и указания имени пользователя/пароля, укажите localhost в качестве сервера SMTP и свой обычный адрес электронной почты в поле From:.
Поскольку в большинстве версий Windows сервер SMTP не устанавливается, имя localhost не будет реально работать, пока вы не установите на своей машине сервер SMTP. К счастью, эти настройки можно потом легко изменить, а для выполнения функций, которые могут потребоваться, есть бесплатно доступные инструменты.
Наконец, все решения приняты, и все готово к установке. Щелкните по последней кнопке Next, и программа установки начнет работу.
Мастер установки в настоящее время не настраивает автоматически файл httpd.conf для Apache, о чем может быть сообщено в диалоговом окне.
После завершения установки отображается окно, объявляющее об успешной инсталляции, с кнопкой ОК. Нажимайте ее и переходите к настройке Apache.
Конфигурирование
Сейчас на компьютере установлены все необходимые компоненты, теперь осталось их только настроить.
Перед внесением любых изменений в рабочие конфигурационные файлы рекомендуется сделать их резервные копии.
Настоим конфигурационный файл web-сервера Apache httpd.conf Если вы не меняли пути при установке, то, скорее всего, файл httpd.conf находится в папке C:\Program Files\Apache Group\Apache2\conf.
Рис. Сведения о конфигурации web-сервера Apache
Далее идет описание минимально-необходимых настроек. 1. Указывается корневой каталог вашего сайта, это делается с помощью директивы DocumentRoot. По умолчанию директива выглядит так: DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs". Вы можете задать какой угодно путь, но лучше не задавать каталог, в котором содержится что-либо еще, помимо файлов вашего сайта.
2. После того как Apache связал заданный URL с каталогом, он возвращает файл или файлы, которые находятся в этом каталоге. По соглашению это файл index.html. Директивой Directoryindex задается список имен файлов, которые будет пытаться вернуть Apache при обращении к каталогу. Apache вернет первый элемент списка, который будет найден в каталоге. По умолчанию эта директива выглядит так:
DirectoryIndex index.html index.html.var.
3. Директива AddDefaultCharset задает кодировку, в которой страницы будет выдаваться клиенту. По умолчанию эта директива выглядит так:
AddDefaultCharset ISO-8859-1.
Эту строку можно закомментировать, поставив знак # в начале строки, и вставить другую, например: AddDefaultCharset WINDOWS-1251.
Как оказалось, настройка web-сервера Apache достаточно легка. Огромное количество остальных директив и настроек не рассматривается, так как достаточно этих, чтобы начать работать. Если необходимо больше информации по директивам, для начала следует обратиться к ресурсу http://www.apache.ru/docs/fishki.html, а также к [2].
Если вы хотите задать свои собственные страницы ошибок, это можно сделать с помощью директивы ErrorDocument. Пример записи: ErrorDocument 404 "/missing.html" - директива, потом номер ошибки и страница, которая будет отображаться при возникновении этой ошибки.
Конфигурирование PHP
PHP c web-сервером Apache может работать как CGI или модуль. Подключение PHP в качестве модуля более предпочтительно, так как в данной конфигурации PHP будет частью ядра Apache и работать будет, соответственно, быстрее [3]. Чтобы PHP подключить в качестве модуля, надо в файл httpd.conf надо сделать 3 изменения.
1. Добавить в соответствующий раздел строку
LoadModule php4_module "c:/php/sapi/php4apache2.dll" Директива LoadModule загружает указанный модуль.
2. Добавить в соответствующий раздел строку
AddType application/x-httpd-php .php
Директива AddType ассоциирует MIME-тип с расширением файла. Благодаря этой записи Apache понимает, что если запрошен файл с расширением .php, то перед тем, как его отправить клиенту, файл должен быть предварительно обработан соответствующим модулем, в нашем случае PHP.
3. В директиву Directoryindex добавить index.php. Это позволит сделать файл .php индексным.
Помимо этих изменений, необходимо:
• скопировать файлphp.ini из папки C:/php в папку C:/Windows.
• скопировать файл php4ts.dll из папки C:/php в папку C:/Windows/System32 и C:/Program Files/Apache Group/Apache2/bin.
• изменить в файле php.ini в папке C:/Windows значение параметра error_reporting на E ALL. Это позволит вам отслеживать все ошибки и предупреждения при программировании приложений.
В результате всех действий должна получиться рабочая связка Apache+PHP+MySQL. Проверить работоспособность связки Apache+PHP можно с помощью файла info.php, который состоит из 3 строк: <? php
phpinfo(); ?>
Этот файл надо поместить в корневую директорию сайта (C:/Program Files/Apache Group/Apache2/htdocs) и открыть в браузере страницу по адресу http://localhost/info.php
или http://1270.01/info.php. Должна будет открыться страница c заголовком phpinfo(), содержащая сведения о конфигурации web-сервера Apache, как показано на рисунке. Проверить работу всей связки Apache+PHP+MySQL можно точно так же, как и в
предыдущем случае, но файл должен состоять из следующих строк:
<? php
ff Используется имя пользователя root и пароль password if(!mysql connect("localhost","root","password")) i
echo "He могу соединиться с сервером^"; echo mysql error(); exit; i
echo "Работает!" ?>
При открытии этого файла в окне браузера появится слово «Работает!». Серверы Apache и MySQL устанавливаются как службы, поэтому они могут запускаться вручную или автоматически, это зависит от того, как вы их настроите в разделе «Управление компьютером».
Если возникли какие-либо проблемы при установке или конфигурировании, следует сначала обратится к электронной документации, поставляемой в комплекте с соответствующим ПО.
Как видим, несмотря на широчайшие конфигурационные возможности установленных нами пакетов, поставленная цель может быть достигнута относительно просто и быстро. В результате всех выполненных действий получена рабочая связка web-сервера Apache, интерпретатора PHP и сервера баз данных MySQL, готовая для решения большинства задач и отладки приложений.
Литература
1. Дюбуа П. MySQL.: Пер. с англ. М.: Издательский дом «Вильямс», 2004. 1056 с.: ил.
2. Хокинс С. Администрирование Web-сервера Apache и руководство по электронной коммерции.: Пер. с англ. М.: Издательский дом «Вильямс», 2001. 336 с.: ил.
3. Аргерих Л. и др. Профессиональное РНР программирование, 2-е издание. Пер. с англ. СПб: Символ-Плюс, 2005. 1048 с.: ил.