http://www.youtube.com/watch?v=-ltKBYyLeuc - вот видеоурок №1
http://www.youtube.com/watch?v=xlLGlVcw7qQ[/leech] - вот видеоурок № 2
http://www.youtube.com/watch?v=8PWE25Zj_-c - видеоурок № 3
Все настройки делаются в файле httpd.conf.
Несколько доменов на одном компьютере.
Часто задают вопрос, как Apache настроить для использования нескольких доменных имён.
Для этого есть VirtualHost, ниже приведён пример настройки Apache для двух доменных имён, я думаю по аналогии несложно будет разобраться.
Code
NameVirtualHost *:*
ServerAdmin webmaster@site1.vfose.ru
DocumentRoot с:wwwsite1.vfose.ru
ServerName site1.vfose.ru
ServerAdmin webmaster@site2.vfose.ru
DocumentRoot с:wwwsite2.vfose.ru
ServerName site2.vfose.ru
#Пример Алиаса
ServerAlias site2.ru site2.xxx.org
#Пример редиректа
ServerAdmin webmaster@site2.vfose.ru
ServerName site2-forum.vfose.ru
DocumentRoot с:wwwsite2.vfose.ru
Redirect permanent / http://site2.vfose.ru/forum/
Настройка авторизации средствами Apache.
Защищаемая директория: c:apachehtdocssecured
Сначала создадим файл паролей и одного юзера в нём (утилиту запускаем из командной строки):
Code
c:apachebinhtpasswd -с c:apachehtdocssecured.htpasswd user_name
Далее создаём c:apachehtdocssecured.htaccess
Code
AuthType Digest
AuthName "Secure zone"
AuthDigestFile c:apachehtdocssecured.htpasswd
require valid-user
Для добавления нового пользователя запускаем htpasswd без опции -c
Проброс (проксирование) сайта.
Например у нас есть доступ в интернет, и мы хотим сделать доступным для всех в ФОСе сайт http://opennet.ru по адресу opennet.vfose.ru
Для этого включаем mod_proxy раскомментировав строки:
Code
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
И добавляем вот такой виртуальный хост:
Code
ServerName opennet.vfose.ru
ProxyPass / http://opennet.ru/
ProxyPassReverse / http://opennet.ru/
Теперь если пользователи будут обращаться на opennet.vfose.ru , ваш сервер будет обращаться к opennet.ru и передавать оттуда странички. Если прикрутить ещё и mod_cache то можно так же организовать кеширование.
ЧПУ - ЧеловекоПонятныеУрлы или cleanurl в PHP
Я добавил для сайта ЧПУ и решил вкратце поделиться опытом.
ЧПУ - это когда вместо вместо ссылки вида /catalog.php?category=5&subcategory=1 получается что-то типа /catalog/5/1/ (ещё лучше когда /catalog/games/cs/ , но тут нужна поддержка скрипта, и я этого пока не сделал).
Эти ссылки приятнее человеческому глазу, а ещё этот подход удобен тем что можно проверять входные данные скрипта до того как они в него попадут.
В Apache есть модуль mod_rewrite, его то и нужно включить чтобы можно было сильно не напрягаясь сделать ЧПУ.
Правила для перезаписи ссылок находятся в .htaccess файле, и для вышеприведённого примера выглядят так:
Code
#включаем движок
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
#Само правило
RewriteRule ^catalog/([0-9])/([0-9])/$ catalog.php?category=$1&subcategory=$2
mod_rewrite использует для перезаписи регулярные выражения POSIX, подробнее с ними можно ознакомится в интернете.
Суть в том что в данном случае совпадения из скобок передаются последовательно в виде параметров скрипту, причём параметром могут быть только числа от 0 до 9. Для перезаписи букв можно использовать [a-z].
mod_status - статистика сервера в реальном времени
Долго думал как бы мне посмотреть что там творится с веб-сервером, а оказывается в стандартной поставке идёт mod_status.
Настраивается так:
Раскомментируем строчку:
Code
LoadModule status_module modules/mod_status.so
Добавляем в конфиг строчки:
Code
ExtendedStatus On
# адрес по которому будет доступен статус
SetHandler server-status
Order deny,allow
Deny from all
# ваш ип, с которого можно будет смотреть статус
Allow from 127.0.0.1
Теперь страничка статуса сервера доступна по адресу http://127.0.0.1/server-status/
http://www.youtube.com/watch?v=xlLGlVcw7qQ[/leech] - вот видеоурок № 2
http://www.youtube.com/watch?v=8PWE25Zj_-c - видеоурок № 3
Все настройки делаются в файле httpd.conf.
Несколько доменов на одном компьютере.
Часто задают вопрос, как Apache настроить для использования нескольких доменных имён.
Для этого есть VirtualHost, ниже приведён пример настройки Apache для двух доменных имён, я думаю по аналогии несложно будет разобраться.
Code
NameVirtualHost *:*
ServerAdmin webmaster@site1.vfose.ru
DocumentRoot с:wwwsite1.vfose.ru
ServerName site1.vfose.ru
ServerAdmin webmaster@site2.vfose.ru
DocumentRoot с:wwwsite2.vfose.ru
ServerName site2.vfose.ru
#Пример Алиаса
ServerAlias site2.ru site2.xxx.org
#Пример редиректа
ServerAdmin webmaster@site2.vfose.ru
ServerName site2-forum.vfose.ru
DocumentRoot с:wwwsite2.vfose.ru
Redirect permanent / http://site2.vfose.ru/forum/
Настройка авторизации средствами Apache.
Защищаемая директория: c:apachehtdocssecured
Сначала создадим файл паролей и одного юзера в нём (утилиту запускаем из командной строки):
Code
c:apachebinhtpasswd -с c:apachehtdocssecured.htpasswd user_name
Далее создаём c:apachehtdocssecured.htaccess
Code
AuthType Digest
AuthName "Secure zone"
AuthDigestFile c:apachehtdocssecured.htpasswd
require valid-user
Для добавления нового пользователя запускаем htpasswd без опции -c
Проброс (проксирование) сайта.
Например у нас есть доступ в интернет, и мы хотим сделать доступным для всех в ФОСе сайт http://opennet.ru по адресу opennet.vfose.ru
Для этого включаем mod_proxy раскомментировав строки:
Code
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
И добавляем вот такой виртуальный хост:
Code
ServerName opennet.vfose.ru
ProxyPass / http://opennet.ru/
ProxyPassReverse / http://opennet.ru/
Теперь если пользователи будут обращаться на opennet.vfose.ru , ваш сервер будет обращаться к opennet.ru и передавать оттуда странички. Если прикрутить ещё и mod_cache то можно так же организовать кеширование.
ЧПУ - ЧеловекоПонятныеУрлы или cleanurl в PHP
Я добавил для сайта ЧПУ и решил вкратце поделиться опытом.
ЧПУ - это когда вместо вместо ссылки вида /catalog.php?category=5&subcategory=1 получается что-то типа /catalog/5/1/ (ещё лучше когда /catalog/games/cs/ , но тут нужна поддержка скрипта, и я этого пока не сделал).
Эти ссылки приятнее человеческому глазу, а ещё этот подход удобен тем что можно проверять входные данные скрипта до того как они в него попадут.
В Apache есть модуль mod_rewrite, его то и нужно включить чтобы можно было сильно не напрягаясь сделать ЧПУ.
Правила для перезаписи ссылок находятся в .htaccess файле, и для вышеприведённого примера выглядят так:
Code
#включаем движок
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
#Само правило
RewriteRule ^catalog/([0-9])/([0-9])/$ catalog.php?category=$1&subcategory=$2
mod_rewrite использует для перезаписи регулярные выражения POSIX, подробнее с ними можно ознакомится в интернете.
Суть в том что в данном случае совпадения из скобок передаются последовательно в виде параметров скрипту, причём параметром могут быть только числа от 0 до 9. Для перезаписи букв можно использовать [a-z].
mod_status - статистика сервера в реальном времени
Долго думал как бы мне посмотреть что там творится с веб-сервером, а оказывается в стандартной поставке идёт mod_status.
Настраивается так:
Раскомментируем строчку:
Code
LoadModule status_module modules/mod_status.so
Добавляем в конфиг строчки:
Code
ExtendedStatus On
# адрес по которому будет доступен статус
SetHandler server-status
Order deny,allow
Deny from all
# ваш ип, с которого можно будет смотреть статус
Allow from 127.0.0.1
Теперь страничка статуса сервера доступна по адресу http://127.0.0.1/server-status/