Библиотека сайта 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
Назад | Оглавление | Вперед |