14 октября 2009

Настройка Apache. Настройка MySQL. Настройка PHP. Или локальная среда разработки своими руками

В этой статья я расскажу о том как настроить локальную среду разработки своими руками. Конечно, можно пользоваться уже готовыми решениями, например Денвером и иже с ним. Но, посмотрите на комментарии к статье об установке Денвера и работе с базами данных в Денвере. То Денвер не устанавливается, то Apache не запускается, то не известно куда Денвер попрятал базы данных.

К тому же, на сервере хостинг-провайдера стоит не пакет разработки, а родные дистрибутивы Apache, MySQL и PHP. Буквально на днях я столкнулся с ситуацией, когда создаваемый сайт нормально работал в установленной и сконфигурированной в ручную среде разработки, а под Денвером не работал вообще.

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

Лично у меня присутствует какой-то шизофренический страх перед тем, что сборщик пакета локальной разработки залез своими руками в дистрибутив, что-то там поправил по своему усмотрению, наковырял, а может быть и засунул вирусняк (поэтому я не пользуюсь различными твикнутыми сборками Windows и сам настраиваю локальную среду разработки).

Я подробно опишу процесс установки и настройки сервера Apache на локальный компьютер. Это позволит избавиться от магического трепета перед принципами работы сайта с сервера хостинг-провадера.

Кроме этого, установим и настроим PHP. В случае ручной загрузки дистрибутива с сайта разработчика я могу быть уверен в том, что качаю полную версию пакета, ту, которая нужна именно мне. И ситуация с необходимостью доустановки модулей, откинутых автором дистрибутива готовой среды разработки, возникнуть не может. Автором среды разработки отныне являюсь я сам.

Установка и настройка MySQL. Точно такая же ситуация. Автор — я сам.

Пару слов для новичков. Зачем вообще нужна среда локальной разработки. Если вы разрабатываете сайт, который будет состоять из нескольких статических HTML-страниц, то среда разработки — это всего-на-всего удобство при просмотре сайта в браузере в процессе отладки. Удобно заходить на разрабатываемый сайт по доменному имени. Вот кажется и все преимущества.

В случае разработки динамического сайта (применение php-скриптов и MySQL-баз данных), а так же при работе с движками, локальная среда разработки — это необходимость. Т.к., в этом случае, вам нужен инструмент, обрабатывающий php-скрипты и SQL-запросы.

Ну что же, поехали!

Установка Apache

Я обещал избавить вас от магического трепета перед принципами загрузки сайта с сервера хостинг-провайдера в вашем браузере. Сейчас я это сделаю.

Сервер — это ничто иное, как мощный компьютер, на жестком диске которого хранятся файлы вашего сайта. Обычно такой компьютер работает под управлением Unix-подобных систем . На этом компьютере запущена программа, которая называется Apache. При обращении к 80-му порту сервера, программа Apache выдаст обратившемуся компьютеру HTML-код и графические файлы, хранящиеся на жестком диске. Браузер компьютера пользователя примет полученные данные и оформит их в привычную нам страницу сайта.

На жестком диске сервера может находится сразу несколько сайтов. Все они распределены по папкам с уникальными именами (в этом случае сайты называются виртуальными хостами). Apache настроен таким образом, что при обращении к 80-му порту с определенным URL-адресом сайта, точно знает какие данные и из какой папки нужно отправить обратившемуся компьютеру.

Вот и вся магия. Когда я только начал разбираться с интернет-технологиями, подобный ответ на мой вопрос «да как же все-таки работают сайты», который я вычитал в одной из книг, расставил в моей голове все по своим местам, чему я был очень рад. Надеюсь кто-то из уважаемых читателей был обрадован сейчас не меньше чем я в свое время.

Теперь я расскажу, как установить и настроить Apache на локальном компьютере.

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

Шаг 1. Скачиваем Apache.

Скачать Apache можно с сайта разработчика. На момент написания этой статьи актуальной является версия 2.2.14. Поскольку работаем мы с вами под операционной системой Windows, то качаем Apache apache_2.2.14-win32-x86-openssl-0.9.8k.msi. Я его уже закачал и вы можете дернуть закаченный мною дистрибутив с Deposit Files (5.7 МБайт).

Скачивается обычный, до слез знакомый нам инсталятор. Запускаем его и переходим ко второму шагу.

Шаг 2. Установка Apache.

В запущенной программе установки Apache кликаем Next, соглашаемся с различными лицензионными соглашениями, пока не появится вот такое окно:

В поля Network Domain, Server Name, Administrator`s e-mail address можно вводить все что угодно (только сохраняя формат введенных значений).  Данная информация выводится в случае возникновения ошибки при загрузки сайта для контактов с администратором сервера, т.е. с вами.

Выбранный по умолчанию пункт for All Users, on port 80, as a Service — это то что нужно. Не зря данный пункт рекомендован.

Нажимаем Next и подтверждаем Typical-установку Apache.

Следующий шаг предлагает выбрать нам место для установки. Я, на всякий случай, устанавливаю в предложенный по умолчанию путь C:\Program Files\Apache Software Foundation\Apache2.2\.

Нажимаем Next.

На этом предварительные настройки установки Apache сделаны, запускаем установку нажав Install.

Вот и все, Apache установлен на локальный компьютер.

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

Кликнув по значку левой клавишей мыши вы можете запустить, остановить или перезапустить локальный Apache-сервер (Start, Stop, Restart).

Установка PHP

Если предполагается разработка проектов, содержащих php-скрипты, то эти скрипты кто-то должен обработать и преобразовать в HTML-код (ваш браузер ничего кроме HTML и JavaScript не понимает). А уж потом Apache отправит подключившемуся к 80-му порту компьютеру сгенерированный кем-то HTML.

Этот кто-то — PHP.

Приступаем к его установке.

Шаг 1.  Скачиваем PHP.

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

Предлагаю скачать и установить старую добрую PHP 5.2.9-2, которую можно скачать с Deposit Files (18.62 МБайт)

Шаг 2. Установка PHP.

Запускаем установочный файл и приступаем к процессу установки PHP.

Опять таки жмем Next, соглашаясь с разнообразными лицензиями до появления выбора пути установки. Рекомендую, на всякий случай, устанавливать PHP в папку, заданную по умолчанию.

После выбора пути установки PHP спрашивает нас о версии Apache, которую мы установили. Устанавливали мы с вами версию 2.2.14 поэтому нужно выбирать соответствующий пункт:

Нажимаем Next и в следующем окне указываем путь к файлам конфигурации Apache. Они находятся здесь: C:\Program Files\Apache Software Foundation\Apache2.2\conf\


Нажимаем Next.

Теперь переходим к выбору устанавливаемых компонентов. Здесь поступим следующим образом:

Program — оставляем по умолчанию.

Extensions — этот раздел содержит кучу различных компонентов. Здесь давайте поступим следующим образом: если вы знаете, какие компоненты вам могут понадобится, а какие нет, выбирайте в соответствии со своими знаниями; если знаний в данной области у вас пока не достаточно, то выбирайте все компоненты.

Extras — из этого раздела нам ничего не нужно.

Вот что у нас получилось:

Нажимаем Next.

Поздравляю Вас, уважаемый читатель, вы установили PHP.

Установка MySQL

Дело в том, что все современные сайты работают с MySQL базами данных. Именно из них извлекается контент при помощи php-скриптов и SQL-запросов. Механизм, позволяющий работать с базами данных — это программа MySQL-сервер, которую мы будем сейчас устанавливать.

Шаг 1. Скачиваем MySQL.

Скачать MySQL можно с сайта разработчика. На момент написания статьи актуальной является версия mysql-essential-5.1.39-win32, которую я и предлагаю скачать с Deposit Files (39 МБайт).

Шаг 2. Установка MySQL.

Тип установки рекомендую выбрать Complete.

Нажимаем Next и на следующем шаге знакомимся с местом установки MySQL и местом расположения файлов с содержимым баз данных.

Приступаем к установке нажав Install.

После установки программы нажимаем несколько раз Next, пролистывая информацию для ознакомления, пока не увидим вот это:

Нажав кнопку финиш мы переходим к настройке MySQL.

Настройка MySQL

В программе визуальной настройки MySQL, которая запустится, если вы оставили галочку на против соответствующего пункта (см. предыдущую картинку), заданные по умолчанию параметры подходят для нас оптимально. После запуска программы настройки нажимаем кнопку Next 7-раз, пока не появится следующее:

На этапе 8-го Next-а рекомендую вам в ручную указать кодировку по умолчанию UTF-8. Нажимаем Next. Вы можете ознакомится с подробной статьей о кодировка и перекодировках, а так же выборе между Windows-1251 и UTF-8.

На следующем экране обязательно установите галочку в пункте Include Bin Directory in Windows PATH:

Если вы этого не сделаете, то PHP не сможет найти нужный ему файл и будет ругаться.

Нажимаем Next. В следующем окне нам нужно указать пароль администратора баз данных. Укажите что-то легкозапоминающееся. Потом, подключаясь к базам данных, вам понадобится вводить этот пароль:

На этом процесс задания директив для настройки завершен и можно приступать к их применению:

Теперь нашу локальную среду разработки можно считать установленной. Остается ее настроить.

Настройка Apache и настройка PHP

Во-первых где-нибудь на жестком диске нужно создать папку, в которой будут храниться все проекты.

У меня это папка www в корне диска «С».

Шаг 1. Разрешение доступа Apache к папе www на жестком диске.

Теперь в настройках Apache мне нужно указать путь к этой папке и разрешить доступ.

Для этого нужно открыть в любом текстовом редакторе основной файл конфигурации Apache. Это файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf.

В файле ищем блок инструкций:

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Ниже этого блока вставляем следующие инструкции:

<Directory "C:/www">
    AllowOverride All
#    Options None
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

Тем самым мы разрешили доступ Apache к папке www в корне жесткого диска.

Шаг 2. Создаем место для хранения файлов сайта.

В папке www необходимо создать папку с именем нашего сайта (например moysite). В папке moysite создаем еще две папки: www — для хранения файлов сайта и logs — сюда Apache будет автоматически записывать ошибки, связанные с работой сервера и информацию о подключениях к сайту.

Так как обычно работа ведется с несколькими сайтами (т.е. в папке www корня жесткого диска, может находится несколько проектов: moysite, moysite1, noviysite и т.д.) , доступными по разным локальным URL, то нужно настроить работу Apache с виртуальными хостами.

Для этого в файле конфигурации C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf необходимо подключить файл дополнительной конфигурации виртуальных хостов.

Ищем в файле httpd.conf строку #Include conf/extra/httpd-vhosts.conf . Процесс подключения файла дополнительной конфигурации виртуальных хостов заключается в удалении символа решетка (#) перед этой строкой.

Было:

#Include conf/extra/httpd-vhosts.conf

Стало:

Include conf/extra/httpd-vhosts.conf

Дело в том, что в настройках Apache символом решетка (#) обозначается закомментированная строка, которая не участвует в конфигурации сервера.

Теперь файл дополнительной конфигурации подключен. Вот этот файл: C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf. Опять таки, открываем данный файл любым текстовым редакторе и описываем доступ к разрабатываемому сайту.

В конце файла необходимо добавить следующий блок:

<VirtualHost *:80>
	ServerName moysite.loc
	DocumentRoot "C:/www/moysite/www"
	ErrorLog "C:/www/moysite/logs/error.log"
	CustomLog "C:/www/moysite/logs/access.log" common
</VirtualHost>

Пункт ServerName задает URL, по которому будет осуществляться доступ из браузера локального компьютера к разрабатываемому сайту, файлы которого находятся в папке C:/www/moysite/www. Файл C:/www/moysite/logs/error.log будет содержать информацию об ошибках в работе сайта, а файл C:/www/moysite/logs/access.log — информацию о подключениях.

Шаг 3. Перенаправление запросов на локальный сервер.

Последний шаг — это перенаправление запросов на локальный сервер. Нам нужно сообщить Windows о том, что при запросе в браузере URL moysite.loc его должен обработать наш локальный Apache. Для этого открываем файл C:\WINDOWS\system32\drivers\etc\host в любом текстовом редакторе и в конце дописываем одну строчку: 127.0.0.1 moysite.loc.

Вот и все, теперь перезапускаем Apache, кликнув левой клавишей по иконке рядом с часами и выбрав пункт Restart.

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

Наводим лоск

Если при разработке проекта вы применяете ЧПУ, то необходимо включить модуль mod_rewrite.so в файле основной конфигурации Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf.

Включение модуля осуществляется простым раскомментированием строки LoadModule rewrite_module modules/mod_rewrite.so

Было:

#LoadModule rewrite_module modules/mod_rewrite.so

Стало:

LoadModule rewrite_module modules/mod_rewrite.so


Использование укороченных тегов. Некоторые ленивые программисты вместо полного кода <?php..., в начале php-скрипта, используют укороченную форму <?... Для включения укороченных тегов необходимо настроить файл конфигурации PHP C:\Program Files\PHP\php.ini:

Было:

short_open_tag = Off

Стало:

short_open_tag = On

Обращаю ваше внимание, уважаемый читатель, на тот факт, что в настройках PHP символ ; предназначен для комментирования строки.

Вот и все с настройкой локальной среды разработки. Теперь, для создания нового виртуального хоста (например noviysite.loc) нужно проделать всего четыре простых шага:

1. В папке C:\www\ создать новую папку noviysite, внутри которой создать папку www и logs.

2. В файле настройки виртуальных хостов Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf указать настройки для нового виртуального хоста noviysite.loc:

<VirtualHost *:80>
	ServerName noviysite.loc
	DocumentRoot "C:/www/noviysite/www"
	ErrorLog "C:/www/noviysite/logs/error.log"
	CustomLog "C:/www/noviysite/logs/access.log" common
</VirtualHost>

3.  В файле C:\WINDOWS\system32\drivers\etc\hosts указать перенаправление для нового виртуального хоста на локальный сервер: 127.0.0.1 noviysite.loc

4. Перезапустить Apache, кликнув левой клавишей по значку рядом с часами и выбрав пункт Restart.

P. S.:Естественно в папке C:\www\noviysite\www должны лежать файлы сайта, которые и будут отображаться в браузере при вводе URL noviysite.loc/....

В случае, если вводится только доменное имя noviysite.loc из папки C:\www\noviysite\www будет загружаться файл index.html (таким образом настроен Apache по умолчанию и именно данный файл является автоматически-запускающимся при вводе лишь доменного имени).

Поскольку, в последнее время, большое распространение получили динамические сайты, написанные на языке PHP, то стартовый файл будет носить имя не index.html, а index.php. Для того, чтобы на ряду с index.html при вводе лишь доменного имени автоматически запускался еще и index.php нужно внести небольшие изменения в файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf:

Находим блок директив DirectoryIndex index.html. После директивы DirectoryIndex index.html нужно дописать через пробел index.php, чтобы получилось вот так: DirectoryIndex index.html index.php.

Хочу заметитье, что в этом случае Apache будет сначала искать файл index.html и пытаться запустить его, а потом уже index.php.

В случае, если папка с сайтом не содержит файла index.html или index.php (а в ней находится файл с именем kakoeto_imya.html), то набор URL noviysite.loc в браузере ничем хорошим не закончится (Apache не найдет файлов, которые захочет запустить по умолчанию). Для запуска файла из папки сайта с именем kakoeto_imya.html необходимо набрать URL noviysite.loc/kakoeto_imya.html.

Возникает законный вопрос: Каким образом администрировать базы данных MySQL, если phpMyAdmin нет?
Ответом на этот вопрос является программа HeidiSQL и видеоурок по работе с ней.

На сладкое

После прочтения данной статьи, я надеюсь, у вас возникла ясность в вопросе «как работает сайт с сервера хостинг-провайдера», а так же «как самому установить и настроить Apache, PHP и MySQL». Теперь не грех выпить чашечку кофейка и посмотреть забавный видеоролик.

С уважением, Андрей Морковин.

Выражаю благодарность отличному программисту Павлу Красько

за помощь в написании данной статьи.

Один из видеоуроков курса по PHP я посвятил проблеме установке локальной среды разработки на компьютер под управлением Windows. Если, после прочтения статьи, локальную среду запустить не удалось - очень рекомендую посмотреть видеоурок.