Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 10: Сервер малого офиса / домашнего офиса

Оригинал: "Ubuntu Hacks: Chapter 10 - Small Office/Home Office Server"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: ноябрь 2010 г.

Совет # 96: Создаем веб сервер

Опубликуйте веб контент с помощью очень популярного и имеющего много возможностей веб-сервера Apache.

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

Установка Apache

Во-первых, установите сервер Apache:

$ sudo apt-get install apache2

Затем, убедитесь, что Apache работает:

$ sudo /etc/init.d/apache2 restart

При установке Apache будет создан директорий /var/www, который является корневым директорием, используемым сервером по умолчанию. Любой документ, который вы поместите в этот директорий, будет доступен в браузере по адресу http://localhost/ или по адресу IP, присвоенному вашему компьютеру.

Устанавливаем PHP

PHP это скриптовый язык, используемый на серверной стороне, который обычно используется в системах управления контентом, в блогах и дискуссионных форумах, особенно в сочетании либо с базой данных MySQL, либо с базой данных Postgres:

$ sudo apt-get install libapache2-mod-php5

Перезапустите Apache чтобы убедиться, что модуль загружен:

$ sudo /etc/init.d/apache2 restart

Чтобы проверить, что модуль загружен правильно, создайте файл PHP и попробуйте открыть его через веб-сервер. В PHP есть встроенная функция phpinfo, которая выдает подробную информацию о PHP, так что самый быстрый способ проверить, все ли работает, это просто запустить следующую команду:

sudo sh -c "echo '<?php phpinfo( ); ?>' > /var/www/info.php"

а затем укажите в своем браузере адрес http://localhost/info.php, чтобы увидеть страницу с версией PHP, которая у вас установлена.

Одной из возможных проблем, которая может в этот момент возникнуть, это то, что браузер может предложить вам скачать файл вместо того, чтобы отображать страницу, а это означает, что Apache неправильно загрузил модуль PHP. Убедитесь, что в одном их файлов /etc/apache2/apache2.conf или /etc/apache2/mods-enabled/php5.conf есть строка следующего вида:

AddType application/x-httpd-php .php .phtml .php3

Если сделаете это изменение, вам нужно вручную остановить и запустить Apache, чтобы быть уверенным, что он перечитает конфигурационный файл:

$ sudo /etc/init.d/apache2 stop
$ sudo /etc/init.d/apache2 start      

Конфигурирование динамического виртуального хостинга

На веб-серверах обычно размещаются несколько веб-сайтов, для каждого из которых создается свой собственный виртуальный сервер, и Apache поддерживает два стандартных типа виртуальных серверов: с использованием адреса IP и с использованием имени сайта:

Использование адреса IP - Эти виртуальные серверы используют отдельные IP адреса для каждого сайта. Такой подход имеет некоторые преимущества, но из-за нехватки адресов IPv4, обычно используется только в качестве последнего средства, например, когда требуется шифрование SSL (Secure Sockets Layer).

Использование имени сайта - Эти виртуальные серверы используют для нескольких веб-сайтов один и тот же адрес IP; в запросе HTTP в заголовке Host: указывается, к какому сайту осуществляется запрос. Обычный способ достичь этого — это создать отдельную конфигурацию для каждого виртуального сервера, указывая имя хоста и директорий, который будет использоваться в качестве "корня" веб-сайта. Но это означает, что каждый раз при добавлении нового виртуального сервера вы должны изменять конфигурацию Apache и его перезапускать.

Динамический виртуальный хостинг позволит вам в любое время добавлять новые виртуальные хосты без перенастройки или перезапуска Apache, если вы будете воспользуетесь модулем, который называется vhost_alias. Чтобы подключить модуль vhost_alias, создайте символическую ссылку в директории mods-enabled для модулей Apache2

$ sudo ln -s /etc/apache2/mods-available/vhost_alias.load \\
                 /etc/apache2/mods-enabled/vhost_alias.load

Чтобы модуль заработал, в файле /etc/apache2/apache2.conf нужно сделать несколько изменений - отключить обычное использование имен сайтов, изменить конфигурацию журнального файла и указать, где будут располагаться виртуальные хосты. Сделайте следующие добавления и изменения:

# get the server name from the Host: header
UseCanonicalName Off

# this log format can be split per virtual host based on the first field
LogFormat "%V %h %l %u %t "%r" %s %b" vcommon
CustomLog /var/log/apache2/access_log vcommon

# include the server name in the filenames used to satisfy requests
VirtualDocumentRoot /var/www/vhosts/%0/web
VirtualScriptAlias /var/www/vhosts/%0/cgi-bin

Создайте директорий, в котором будут находиться виртуальные хосты:

$ sudo mkdir /var/www/vhosts

Создайте заготовку виртуального сервера:

$ sudo mkdir -p /var/www/vhosts/skeleton/cgi-bin
$ sudo cp -a /var/www/apache2-default /var/www/vhosts/skeleton/web

Перезагрузите apache2 с тем, чтобы изменения конфигурации вступили в силу:

$ sudo /etc/init.d/apache2 restart

Теперь можно создавать виртуальные хосты с различными именами - скопируйте заготовку виртуального сервера туда, где будет располагаться хост. Например, чтобы создать новый виртуальный сервер с именем www.example.com, вы должны просто выполнить следующую команду:

$ sudo cp -a /var/www/vhosts/skeleton /var/www/vhosts/ www.example.com

Теперь этот виртуальный сервер будет отвечать на любое HTTP подключение, делаемое к вашему серверу с заголовком Host:, в котором указано www.example.com.

Чтобы сделать виртуальные хосты доступными другим пользователям, вам необходимо разместить соответствующие записи в публично доступном сервере DNS и иметь соответствующие делегированные домены, а для быстрой проверки на локальном компьютере вы можете отредактировать файл /etc/hosts и добавить к нему, например, следующую запись:

127.0.0.1 www.example.com

Назад Оглавление Вперед