Jump to content
«ПЛАНАР-СИТИ»
  • Announcements

    • DVN

      Борьба за Авторское право

      Предупреждаю всех и сразу, чтобы потом не было обид и обиженных. Согласно п.4.2.3 Правил форума с 13.03.2007 года все посты содержащие разного рода статьи, стихи, рассказы, обзоры и рецензии и т.д., и т.п. БЕЗ УКАЗАНИЯ копирайта будут сразу же удаляться в Корзину.
    • DVN

      Борьба за Авторское право-2

      Предупреждаю ЕЩЁ РАЗ, всех и сразу, чтобы потом не было обид и обиженных. Согласно п.4.2.3 Правил форума все посты содержащие разного рода статьи, стихи, рассказы, обзоры и рецензии и т.д., и т.п. БЕЗ УКАЗАНИЯ копирайта (авторства, ссылки на источник, откуда Вы взяли эту информацию) будут сразу же удаляться в Корзину. Если Вы автор представленной информации, так и пишите - © ник
Sign in to follow this  
DVN

Настройка Apache для начинающих

Recommended Posts

15:10, 13 Июня 2006

 

Настройка Apache для начинающих

 

Автор: Алекс Звягин

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, что дает возможность настраивать каждый сайт самым детальным образом.

 

Ссылки по теме:

© http://www.izcity.com/data/soft/article1279.htm

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×