 |
ITrader
Современная, простая программа с неограниченными возможностями преобразования
времени, знаний и опыта в деньги! Бесплатный доступ ко всем финансовым рынкам,
к мировым торгам и профессиональному росту. Скачай и открой бесплатный Демо-счет!
Дистанционное обучение. Депозит от 1000 рублей. ФГ Калита-Финанс.
Подробнее... |
Software
Настройка Apache для начинающих |
Дата публикации: 13 Июня 2006
Автор: Алекс Звягин
http://hostinfo.ru/
Apache – исключительно надежный и
удобный веб-сервер. К сожалению, есть те, кто не хочет использовать его в качестве
локального сервера по одной причине – из-за отсутствия графического конфигуратора
даже в среде Windows, что достаточно непривычно для многих пользователей этой системы.
Настраивается Apache путем редактирования вручную файла конфигурации httpd.conf.
Но представления о сложности и непонятности этого процесса ошибочны по двум причинам.
Первая – в комментариях httpd.conf вполне достаточно информации для того, чтобы
можно было разобраться с любой настройкой. Вторая – чтобы сделать из только что
установленного Apache сервер, настроенный для вполне комфортной работы, надо менять
совсем немного.
Что нам надо?
- Запустить самый популярный веб-сервер под самой
популярной платформой – Windows.
- Хранить файлы сайта в той директории, в которой
нам это удобно, – пусть это будет C:\www.
- Не иметь проблем с кодировками, в первую очередь
– с отображением кириллицы.
- Вполне возможно – одновременно работать с несколькими
сайтами.
Попробуем решить все эти проблемы. Заходим
туда, где установлен Apache. Находим и открываем файл httpd.conf – он находится
в поддиректории conf. Здесь необходимо напомнить, что все строки этого файла, начинающиеся
с "решетки" (#), существуют только в качестве текстовых комментариев, в качестве
настроек сервера же используются строки, "решетки" в начале не имеющие. Сначала
выполняем настройку директории, которая будет выдаваться веб-сервером в качестве
корневой директории сайта. Ищем в тексте директиву DocumentRoot – строку, начинающуюся
на DocumentRoot. Эта директива определяет, какая директория будет сопоставляться
с корневой директорией сайта. Исправляем ее на DocumentRoot "C:/www" (следует отметить
– здесь и далее в пути используются слэши, наклоненные вправо, а не влево, как привыкли
пользователи Windows). Проблема с расположением сайта в нужном месте решена.
Далее устанавливаем для нее правила
безопасности. Для этого в Apache используется директива
Directory. Используется она следующим
образом:
<Directory директория>
Options функции сервера
AllowOverride варианты
Order варианты
</Directory>
Список используемых параметров следующий.
Options
– определяет, какие функции сервера будут доступны. Возможны следующие варианты:
- Includes – разрешено использование SSI (Server-Side
Includes);
- IncludesNOEXEC – разрешено использование SSI
с ограничениями (не допускаются #exec и #include);
- Indexes – разрешено использование индексных
файлов, причем если URL указывает на директорию на сайте (например, www.domain.ru/dir/),
в которой нет индексного файла, то будет показываться содержимое этой директории,
если же этой опции нет – выдается "доступ запрещен";
- ExecCGI – разрешено выполнение скриптов CGI;
- FollowSymLinks – сервер следует по символическим
ссылкам в директории (имеет смысл в Unix);
- SymLinksIfOwnerMatch – то же самое, но только
в том случае, если целевой файл имеет того же владельца, что и ссылка;
- All – все вышеописанное вместе;
- None – ничего из вышеописанного;
- MultiViews – возможность подбора соответствующего
контента и его выдачи в зависимости от предпочтений клиента (браузера) – указывается
отдельно, даже если включено все (Options All).
AllowOverride
– определяет, какие директивы из файлов .htaccess могут преобладать над такими же,
указанными в httpd.conf. Варианты:
- AuthConfig – позволяет использовать директивы
авторизации;
- FileInfo – позволяет использовать директивы
для работы с типами документов;
- Indexes – позволяет использовать директивы для
работы с индексными файлами;
- Limit – позволяет использовать директивы для
определения доступа к хосту;
- Options – позволяет использовать директивы для
работы со специфическими функциями директорий;
- All – все вышеуказанное;
- None – ничего из вышеуказанного.
Order
– устанавливает правила доступа к серверу. Варианты:
- Deny,Allow – директива Deny определяется перед
Allow, доступ по умолчанию разрешен, кроме хостов, указанных в следующей строке
после Deny from.
- Allow,Deny – директива Allow определяется перед
Deny, доступ по умолчанию запрещен, кроме хостов, указанных в следующей строке
после Allow from.
- Mutual-failure – разрешен доступ только тех
хостов, которые присутствуют в Allow и отсутствуют в Deny.
Теперь на основе всего этого начинаем
настраивать наш сервер. В httpd.conf по умолчанию директива Directory существует
в двух экземплярах – <Directory /> и <Directory корневая_директория_сайта>. Первый
вариант мы вообще не трогаем, переходим ко второму и устанавливаем следующие параметры:
<Directory C:/www>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
В переводе на русский язык – для директории
C:/www, выбранной ранее в качестве корневой для нашего сайта, а также всех ее поддиректорий
выбраны такие параметры:
- из функциональности сервера разрешены индексы
в директориях и переходы по символическим ссылкам (правда, это актуально только
для Unix);
- возможность переопределения параметров с помощью
файлов .htaccess отсутствует полностью, но с учетом того, что мы имеем полный
доступ к серверу, она и не актуальна – все можно настроить через httpd.conf;
- доступ к серверу разрешен со всех хостов.
Сохраняем httpd.conf и перезапускаем
Apache – c помощью Apache Monitor или в командной строке командой apache -k restart.
Все, настройка корневой директории сайта закончена.
Проверяем, правильно ли мы все сделали.
Создаем в C:\www простейшую веб-страничку, открываем браузер и в адресной строке
вводим адрес: http://127.0.0.1/имя_созданной_страницы. Наша страница должна открыться.
Если не открылась – самым внимательным образом надо проверить все внесенные в httpd.conf
изменения – скорее всего, что-то было сделано неправильно.
Но и в том случае, если она будет открываться,
вполне возможно, что вместо символов кириллицы мы увидим нечто нечитаемое. Происходит
это потому, что, во-первых, Apache предоставляет браузеру, запросившему страницу,
кодировку по умолчанию для этой страницы, а во-вторых – кодировка эта не кириллическая.
И если Internet Explorer в большинстве таких ситуаций все равно определяет кодировку
из самой страницы, то с Opera или Mozilla проблемы практически гарантированы. Конечно,
можно выставлять используемый набор символов каждый раз вручную в браузере, но сколь-нибудь
удобным это назвать невозможно.
Поэтому настраиваем Apache на выдачу
нужной кодировки по умолчанию. Находим в httpd.conf строку, начинающуюся на AddDefaultCharset.
Скорее всего, полностью она будет выглядеть как AddDefaultCharset ISO-8859-1, что
соответствует кодировке ISO-8859-1, в которой символы кириллицы отсутствуют. Меняем
ISO-8859-1 на windows-1251, если предполагается, что сайт будет содержать страницы
в кодировке Windows, на KOI-8r, если используется KOI-8, или на ту, которая нужна.
Сохраняем файл, перезапускаем Apache – и наблюдаем нормальный русский язык на нашей
тестовой странице в любом браузере.
И еще. Apache достаточно легко настроить
на работу с несколькими сайтами. Адреса, которые для них можно использовать, – 127.0.0.2,
127.0.0.3 и так далее. Правда, по сети виден будет только один (тот, который является
сайтом по умолчанию, он же 127.0.0.1), но именно для локальной работы это не критично.
Раздел httpd.conf, в котором настраивается все для этого необходимое, находится
в самом конце файла и называется Virtual Hosts.
Чтобы добавить один дополнительный сайт,
создадим директорию, которая будет использоваться как его корневая, например C:\www2.
Предположим, что сайт должен откликаться на адрес 127.0.0.2, и дадим ему имя site2.
Затем в самый конец раздела Virtual Hosts добавим следующие строки:
<VirtualHost 127.0.0.2>
ServerAdmin webmaster@site2
ServerName site2
DocumentRoot "C:/www2"
ScriptAlias /cgi/ "C:/www2/cgi/"
ErrorLog "C:/www2/error.log"
CustomLog "C:/www2/custom.log" common
</VirtualHost>
Перезапускаем Apache. Теперь, набрав
в строке браузера 127.0.0.1, мы попадаем на первый локальный сайт, набрав 127.0.0.2
– на второй. Остается сказать только, что внутри каждого контейнера VirtualHost
можно использовать практически любые директивы Apache, что дает возможность настраивать
каждый сайт самым детальным образом.
Ссылки по теме:
***
Смотрите также:
Экономная Опера
Почтовый клиент, который разбирался в высшей математике
WinAmp отдыхает
Порка Супер-Калькулятора
Captain Tray Pro – менеджер окон
Все статьи рубрики
Software
|