Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite

Lines Club

Ищем достойных соперников.




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

Библиотека сайта или "Мой Linux Documentation Project"

2. Настройка виртуальных хостов

Теперь мы рассмотрим настройку виртуальных хостов. Допустим, у вас есть IP-адрес xxx.xxx.xxx.xxx и следующие доменные имена: host1.aa, www.host1.aa, а также host2.aa, www.host2.aa, которые указывают на IP-адрес xxx.xxx.xxx.xxx.

Задача состоит в следующем: нам нужно, чтобы на два первых домена (host1.aa и www.host1.aa) отзывался web-сайт, файлы которого находятся в каталоге /var/www/www.host1.aa/WebRoot, а на два других (host2.aa и www.host2.aa) отзывался web-сайт, файлы которого находятся в каталоге /var/www/www.host2.aa/WebRoot. Также нужно, чтобы работал PHP. Кроме того, web-сайт по адресу www.host2.aa должен быть доступен только из нашей внутренней сети (так как это внутренний сайт для корпоративного пользования), а вот сайт www.host1.aa должен быть доступен также и из внешнего мира.

Для этого мы сделаем следующее: в файл /etc/httpd/conf/vhosts/Vhosts.conf добавляем следующие строки:

NameVirtualHost xxx.xxx.xxx.xxx:80

<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerAdmin     admin@host1.aa
    DocumentRoot    /var/www/www.host1.aa/WebRoot
    ServerName      www.host1.aa
    ServerAlias     host1.aa
    AddType         application/x-httpd-php .php
    ErrorLog        /var/log/httpd/host1.aa-error_log
    CustomLog       /var/log/httpd/host1.aa-access_log combined
    DirectoryIndex  index.html index.php index.htm
    AddDefaultCharset KOI8-R
</VirtualHost>
<Directory  /var/www/www.host1.aa>
    php_admin_value safe_mode on
    php_admin_value allow_url_fopen off
    php_admin_value max_execution_time 30
    php_admin_value open_base_dir /var/www/www.host1.aa/
    php_admin_value memory_limit  2M
    php_admin_value default_charset KOI8-R
    
    AllowOverride  None
    
    Options FollowSymlinks
    
    Allow from all

</Directory>

#############################################
<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerAdmin     admin@host2.aa
    DocumentRoot    /var/www/www.host2.aa/WebRoot
    ServerName      www.host2.aa
    ServerAlias     host2.aa
    AddType         application/x-httpd-php .php
    ErrorLog        /var/log/httpd/host2.aa-error_log
    CustomLog       /var/log/httpd/host2.aa-access_log combined
    DirectoryIndex  index.html index.php index.htm
    AddDefaultCharset KOI8-R
</VirtualHost>
<Directory  /var/www/www.host2.aa>
    php_admin_value safe_mode on
    php_admin_value allow_url_fopen off
    php_admin_value max_execution_time 30
    php_admin_value open_base_dir /var/www/www.host2.aa/
    php_admin_value memory_limit  2M
    php_admin_value default_charset KOI8-R
    
    AllowOverride  None
    
    Options FollowSymlinks
    
    Order Deny,Allow
    Deny from all
    Allow from  192.168.1.0/24
    
    #Allow from all

</Directory>

Поясним ниже опции, которые мы использовали в нашем примере настройки:

  • ServerAdmin admin@host2.aa : эта опция определяет email-адрес, который будет появляться в сообщении при ошибках сервера. Иначе говоря, сервер будет предлагать обращаться администратору сервера по этому адресу.
  • DocumentRoot /var/www/www.host1.aa/WebRoot: этим мы определяем корневой каталог для веб-сервера, где лежат на диске файлы вашего сайта.
  • ServerName www.host2.aa: здесь мы указываем имя виртуального хоста, на которое сервер должен отзываться, когда его набирают в браузере.
  • ServerAlias host2.aa: это псевдоним ServerName. Этим мы объясняем, что под именами www.host2.aa и host2.aa будет появляться один и тот же сайт. Таким образом можно перечислить все доменные имена, если их несколько, на которые будет отзываться данный виртуальный хост. Все эти доменные имена должны иметь соответствующую запись в DNS.
  • AddType application/x-httpd-php .php: эта опция включает интерпретатор PHP для документов с расширением .php.
  • ErrorLog /var/log/httpd/host2.aa-error_log: в этот файл пишется журнал ошибок сервера.
  • CustomLog /var/log/httpd/host2.aa-access_log combined: в этот файл пишется журнал о посещениях вашего сайта. combined означает подробный лог. Если мало места на диске, можно использовать простой лог common.
  • DirectoryIndex index.html index.php index.htm: этим мы говорим, что индексными файлами каталогов будут файлы с именами index.html, index.php, index.htm.
  • AddDefaultCharset KOI8-R: этим мы заставляем сервер слать в http заголовке кодировку KOI8-R. Если это не указывать, сервер шлет по умолчанию ISO-8859-1. Чтобы Apache вообще ничего не слал в заголовке, поставьте AddDefaultCharset off. В таком варианте браузер будет руководствоваться тем, что написано в <META> ваших html документов.
  • php_admin_value safe_mode on: эта опция заставляет PHP работать в безопасном режиме. Это значит, что блокируются некоторые опасные функции PHP.
  • php_admin_value allow_url_fopen off: этим мы запрещаем PHP открывать соединения с внешними серверами с помощью функций fopen(), file() и т.д.. То есть блокируем такие действия, как <? $content=file('http://lafox.net/');?>.
  • php_admin_value max_execution_time 30: этим мы указываем, что скрипт PHP нужно обрывать после 30 секунд работы. Эта опция важна для предотвращения зацикливаний, а так же снижает опасность “DoS” атак на сервер (атак на отказ в обслуживании).
  • php_admin_value open_base_dir /var/www/www.host2.aa/: этим мы запрещаем всем функциям PHP доступ к файлам, находящимся выше каталога /var/www/www.host2.aa/. Этот запрет не дает возможность вашим пользователям выполнять такие вредоносные операции, как <? $content=file('/etc/password');?>, что значительно увеличивает защиту сервера от атак и ошибок при программировании PHP-скриптов.
  • php_admin_value memory_limit 2M: этим мы ограничиваем размер памяти, который может использовать PHP-скрипт. Это важный параметр, так как он предотвращает перегрузку сервера из-за ошибок в скриптах, вызывающих неограниченное использование памяти. Так же этим мы уменьшаем опасность “DoS” атак.
  • php_admin_value default_charset KOI8-R: это заставляет PHP посылать в HTTP заголовке информацию о кодировке данных. Обратите внимание, что опция AddDefaultCharset, описанная выше, не действует на PHP скрипты.
  • AllowOverride None: опция запрещает перекрывать настройки общего конфиг-файла файлом .htaccess. Если вы хотите оставить эту возможность, напишите AllowOverride all.
  • Options FollowSymlinks: разрешает использование символических ссылок.
  • Order Deny,Allow: определяет порядок применения правил по запрещению и предоставлению доступа.
  • Deny from all: запрещает доступ к этому виртуальному хосту отовсюду.
  • Allow from 192.168.1.0/24: эта опция разрешает доступ к сайту из сети 192.168.1.0/24.
  • Allow from all: разрешает доступ к нашему виртуальному хосту отовсюду.

Для установки CGI версии php (это, например, полезно в случае, если нужно выполнять скрипты на php в командной оболочке), устанавливаем

# urpmi php-cgi


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют