9 Ноябрь 2010

Установка и настройка Apache, PHP, MySQL в Ubuntu. Часть 1 - Введение

Установка Apache + PHP + MySQL в Ubuntu. Введение - принцип работы сайта.

Уважаемый читатель, я хочу подробно описать процесс установки и настройки локальной среды разработки Apache + PHP + MySQL для операционной системы Ubuntu.

Но прежде чем приступить к реализации желаемого не лишним будет что-то вроде введения в принцип работы сайта на сервере.

Ранее я описывал процесс установки большой тройки (Apache + PHP + MySQL) для ОС Windows и даже умудрился опубликовать видеокурс, посвященный хостингу на локальном компьютере, где большая тройка устанавливалась на ОС ArchLinux.

Хотя ArchLinux, на мой взгляд, более подходит для использования в качестве серверной ОС, все же Ubuntu обойти вниманием невозможно. Ведь Ubuntu является отличной альтернативой Windows и, как рабочая лошадка веб-разработчика, частенько превосходит своего платного конкурента.

Лично я провел над собой эксперимент по переходу с ворованного ПО на свободное, результаты которого я публикую в отдельном разделе данного блога. Уже сейчас могу сказать, что я не только работаю в Ubuntu, но мне это начинает нравиться.

А раз так, то без установки сервера на Ubuntu нам не обойтись.

Но сначала, как и договаривались, введение.

Желающих избавиться от священного трепета перед пеленой непонимания процесса работы сайта на хостинг-компьютере я перенаправляю все к той же статье по настройке сервера на Windows, в начале которой я попытался покончить с этим самым трепетом. Если трепет не прошел, сегодня мы его добьем окончательно.

Как вы уже поняли, программная часть сервера состоит из трех основных составляющих:

1. Apache. Что он делает? Сейчас расскажу.

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

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

В-третьих, посредством программы Apache, компьютер способен отправить файлы сайта в ответ на запрос посетителя. Происходит это следующим образом: посетитель, зная IP-адрес компьютера-сервера, соединяется с ним и требует сайт; Apache, в ответ на это требование, отправляет файлы подключившемуся посетителю; браузер посетителя обрабатывает инструкции в полученных от Apache текстовых файлов и формирует привычный нам вид веб-страницы.

В-четвертых, вы же не знаете IP-адрес компьютера, на котором расположен сайт. Вы знаете доменное имя сайта, а о том, какой IP-адрес соответствует данному URL, знает NS-сервер.

В-пятых, промежуточное звено NS-сервер придумано для того, чтобы не запоминать бессмысленные цифры IP-адреса, ведь куда проще запомнить доменное имя.

В-шестых, на одном IP-адресе может быть размещено несколько сайтов с разными доменными именами, но об этом чуть позже.

Теперь я хочу развить тему NS-серверов и локальной среды разработки.

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

В принципе серверу не обязательно иметь подключение к интернету с прямым IP-адресом. Для обеспечения работоспособности сайта можно воспользоваться пробросом портов, но это отдельная тема для статьи.

Прямой IP-адрес сервера необходимо указать в настройках приобретенного вами доменного имени, если вы, конечно, хотите, чтобы на сайт могли попадать посетители из любой точки Мира.

Последовательность обработки запроса посетителя вашего сайта будет следующей: посетитель сайта ввел в браузер доменное имя, NS-сервер сообщил соответствующий IP, запрос по полученному IP пришел на ваш компьютер к Apache, Apache, в соответствии своим настройкам, показал посетителю те или иные файлы.

Вот каким образом выглядит интерфейс настройки NS-записи хостера imena.ua (услугами которого я пользуюсь):

 Настройка NS-сервера

В настройках домена я указал две записи типа А для доменного имени sdelaysite.com и www.sdelaysite.com, обоим доменным именам поставлен в соответствие IP-адрес 193.46.210.133.

IP-адресом 193.46.210.133 обладает мой сервер, на котором запущен Apache, отдающий посетителю файлы этого блога.

Еще немного умственных усилий и мы рассмотрим случай настройки локальной среды разработки.

Разница в настройках локальной среды разработки и глобального хостинга лишь в том, что в глобальном случае приходилось настраивать NS-сервер для того, чтобы все компьютеры интернета знали IP нашего сайта; а в случае использования локальной среды разработки для тестирования динамического сайта доступ к нему нужен только нам, его разработчикам, поэтому никакие NS-сервера не требуются, мы будем править файл hosts, расположенный на жестком диске компьютера.

Файл hosts представляет собой ни что иное как локальный NS-сервер. В нем можно указать доменное имя сайта и IP-адрес ему соответствующий.

В Ubuntu данный файл расположен по следующему пути: /etc/hosts

Для того, чтобы его отредактировать требуется ввести команду в терминале (Меню Ubuntu/Приложения/Стандартные/Терминал): sudo gedit /etc/hosts

Редактирование файла hosts

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

gedit — это название программы для редактирования текстовых файлов в Ubuntu.

Ну а /etc/hosts — это, как вы понимаете, путь к редактируемому файлу.

Содержимое файла hosts

Слева написаны IP-адреса, справа через табуляцию — доменные имена.

После ввода доменного имени в браузере компьютер первым делом проверит наличие информации по данному домену в файле hosts и если там его не найдет полезет на NS-сервера.

IP-адрес 127.0.0.1 — это адрес данного локального компьютера (такие уж существуют правила).

Иными словами, если в браузере моего компьютера набрать test2 или wordpress.loc, то запрос будет передан моему локальному Apache.

Файл hosts, как вы знаете, есть и в Windows. Расположен он по адресу C:\WINDOWS\system32\drivers\etc\hosts и выполняет точно те же самые действия.

Теперь быстро пройдемся по оставшимся двум необходимым составляющим серверного ПО.

2. PHP. Это программа, которая устанавливается на сервер с целью обработки php-кода в текстовых файлах сайта. Посредством данной программы php-код преобразуется в HTML-инструкции и передается браузеру пользователя посредством Apache.

3. MySQL. Данная программа представляет из себя сервер баз данных, который обеспечивает хранение информации и доступ к ней.

В следующей части мы займемся непосредственно установкой и настройкой Apache + PHP + MySQL в Ubuntu.

У поста есть спонсор (как им стать):

Речь пойдет об ответе сервера, вот и ссылка: ответ http сервера.

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