Windows инсталятор:
apache_2.2.6-win32-x86-no_ssl.msi (4,12 MB)
Так же о некоторых модулях для безопасности можно почитать в разделе Компьютерная безопасность
Все настройки делаются в файле httpd.conf.
Несколько доменов на одном компьютере.
Часто задают вопрос, как Apache настроить для использования нескольких доменных имён.
Для этого есть VirtualHost, ниже приведён пример настройки Apache для двух доменных имён, я думаю по аналогии несложно будет разобраться.
- Код: Выделить всё • Развернуть
NameVirtualHost *:*
<VirtualHost *:80>
ServerAdmin webmaster@site1.vfose.ru
DocumentRoot с:\www\site1.vfose.ru
ServerName site1.vfose.ru
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@site2.vfose.ru
DocumentRoot с:\www\site2.vfose.ru
ServerName site2.vfose.ru
#Пример Алиаса
ServerAlias site2.ru site2.xxx.org
</VirtualHost>
#Пример редиректа
<VirtualHost *:80>
ServerAdmin webmaster@site2.vfose.ru
ServerName site2-forum.vfose.ru
DocumentRoot с:\www\site2.vfose.ru
Redirect permanent / http://site2.vfose.ru/forum/
</VirtualHost>
Настройка авторизации средствами Apache.
Защищаемая директория: c:\apache\htdocs\secured\
Сначала создадим файл паролей и одного юзера в нём (утилиту запускаем из коммандной строки):
- Код: Выделить всё • Развернуть
c:\apache\bin\htpasswd -с c:\apache\htdocs\secured\.htpasswd user_name
Далее создаём c:\apache\htdocs\secured\.htaccess
- Код: Выделить всё • Развернуть
AuthType Digest
AuthName "Secure zone"
AuthDigestFile c:\apache\htdocs\secured\.htpasswd
require valid-user
Для добавления нового пользователя запускаем htpasswd без опции -c
Проброс (проксирование) сайта.
Например у нас есть доступ в интернет, и мы хотим сделать доступным для всех в ФОСе сайт http://opennet.ru по адресу opennet.vfose.ru
Для этого включаем mod_proxy раскомментировав строки:
- Код: Выделить всё • Развернуть
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
И добавляем вот такой виртуальный хост:
- Код: Выделить всё • Развернуть
<VirtualHost *:80>
ServerName opennet.vfose.ru
ProxyPass / http://opennet.ru/
ProxyPassReverse / http://opennet.ru/
</VirtualHost>
Теперь если пользователи будут обращаться на 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 файле, и для вышеприведённого примера выглядят так:
- Код: Выделить всё • Развернуть
#включаем движок
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.
Настраивается так:
Раскомментируем строчку:
- Код: Выделить всё • Развернуть
LoadModule status_module modules/mod_status.so
Добавляем в конфиг строчки:
- Код: Выделить всё • Развернуть
<IfModule status_module>
ExtendedStatus On
# адрес по которому будет доступен статус
<Location /server-status/>
SetHandler server-status
Order deny,allow
Deny from all
# ваш ип, с которого можно будет смотреть статус
Allow from 127.0.0.1
</Location>
</IfModule>
Теперь страничка статуса сервера доступна по адресу http://127.0.0.1/server-status/
(c) zk