Xpoint
   [напомнить пароль]

Интернет::Веб-серверы::Apache - F.A.Q.

Использование SSI.
В httpd.conf найдите описание директории, в которой размещаются html файлы.
Если вы ставили Apache в директорию C:/Apache, то эта запись будет выглядеть так:

<Directory "c:/Apache/htdocs">
Далее за этой строчкой должен описываться параметр Options.(в нем уже должны быть описаны опции Indexes FollowSymLinks MultiViews .)
Через пробел допишите в конец опцию Includes
Options Indexes FollowSymLinks MultiViews Includes

В опции DirectoryIndex поставте на первое место index.shtml
DirectoryIndex index.shtml index.html index.htm

И, наконец, серверу нужно указать, в файлах с какими расширениями обрабатывать SSI директивы.
Для этого нужно записать следующие опции:
AddType text/html .shtml
AddHandler server-parsed .shtml


После этих изменений, вы сможете использовать SSI директивы в документах с расширением .shtml

Существует ли какая-либо возможность изменять контент непосредственно перед отправкой пользователю в браузер?
Да. Вы можете использовать технологию Stacked Handlers. О ней вы можете узнать по ссылке | http://perl.apache.org/guide/config.html#Stacked_Handlers | .
Так же изменение контента перед выводом позволяет осуществлять модуль mod_layout. Страница разработчиков mod_layout с описанием оного | http://software.tangent.org/projects.pl?view=mod_layout | .

Еще одна возможность изменить контент перед выводом - использование директивы Action на установленный тип документа.
Например для обработки любых файлов типа text/html вашим скриптом перед выводом, в конфигурационном файле в блоке описания вашего хоста необходимо добавить следующую строчку:
Action text/html /path/to/my/script.cgi
    Примечание: Для того, что бы работала директива Action, необходимо что бы был подключен модуль action_module
В теле скрипта вы можете легко узнать, какой документ был запрошен, используя переменные окружения PATH_INFO и PATH_TRANSLATED. Далее вы можете производить любые действия над документом.
Использование PHP (через CGI)
Для начала нужно указать директорию, в которой отрабатываются PHP программы:
ScriptAlias /php/ "c:/php/"

После этого добавляем описание директории c:/php/ :
<Directory "c:/php">
AllowOverride None
Options ExecCGI
</Directory>


Далее нужно указать расширения для файлов, которые будут считаться php скриптами:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps
И соответствующие действия над ними:
Action application/x-httpd-php /php/php.exe
Action application/x-httpd-php-source /php/php.exe


После этого, вы можете использовать PHP скрипты как CGI.
Установка Apache под WIN32
Для начала вам понадобится дистрибутив apache под платформы win32. Взять его можно, например, здесь.

Некоторые рекомендации по установке:
Во время установки рекомендую указывать не слишком глубокий путь. Например: предлагаемый изначально - c:/Program Files/Apache group/Apache/ , меняете на что-то вроде c:/Apache. Сделать это рекомендую для того, чтобы не загромождать после этого конфигурационный файл длинными путями.

И так, приступаем к установке. При вопросе о типе установки жмите Typical. Установится все что нужно кроме исходных текстов. Если вам они интересны, выбирайте тип установки Custom.

И так программа сервера установлена. Теперь его нужно настроить, и запустить.
Настраивается Apache путем внесения необходимых изменений и добавлений в файл httpd.conf . Перейдите в директорию где лежит этот файл (если вы ставили в C:/Apache , то это будет C:/Apache/conf/) и откройте его каким-либо текстовым редактором.

Настройка:
Найдите параметр ServerRoot
Тут указывается оснавная директория Apache. Если вы ставили Apache в C:/Apache , то так и пишите:
ServerRoot "C:/Apache"

Параметр: Port
Номер порта, который Apache слушает по умолчанию.
Port 80

Параметр ServerName
Определяет имя сервера, при вызове которого будет дан отклик. Если вы не будете использовать сервер в локальной сети, укажите localhost, если же ваша машина доступна через LAN и вы хотите что бы пользователи сети могли просматривать ваши страницы, то укажите здесь название вашей машины в сети.
ServerName localhost

Параметр DirectoryIndex
Описывает файлы, которые следует отдавать клиенту при запросе к директории без указания документа, например http://ваш_сайт.ru/fotos/, а не http://ваш_сайт.ru/fotos/index.html , учитывая приоритет расстановки.
DirectoryIndex index.html index.htm

После этих манипуляций сервер должен заработать. Все ваши html документы нужно выкладывать в папку c:/Apache/htdocs (если вы установили Apache в c:/Apache)
Замеченные особенности работы Apache сервера под win платформы.
  • Замечалось, что apache работающий как сервис в win2000 перестает отвечать на запросы как только система переходит в ждущий режим и при выходе из него. (Oleg Zinin, 2002-01-29 14:24:04)
  • Мы заметили, что директивы ограничения потребляемых ресурсов (RLimitCPU, RLimitMEM и RLimitNPROC) не работают под win платформами.
Как настроить лимит процессорного времени и памяти потребляемых процессами, а так же их количество.
В блоке VirtualHost:

  • устанавливаем для всех процессов ограничение времени использования процессора первым значением и вторым - максимално допустимую загрузку.

  • RLimitCPU 5 15
  • устанавливаем лимит на количество используемой памяти (1024 кб x 1024 = 1048576) 1 мегабайт

  • RLimitMEM 1048576
  • устанавливаем лимит на количество одновременно выполняемых процессов под одним пользователем.

  • RLimitNPROC 3
Как можно избавиться от окошка MS-DOS при запуске apache под win9x?
Воспользуйтесь программой Apache Manager. Для поиска программы можно использовать любой поисковый сервер.
Я хочу установить себе полный пакет разработчика включая Apache, PHP, Active Perl, но не могу или не хочу возиться с документацией по их установке.
Скачайте с сайта web.dklab.ru пакет для комплексной установки Apache+PHP+Active Perl.
Полезные ссылки.
  • Официальный сайт разработчиков веб-сервера Apache: www.apache.org
  • Сайт посвященный веб-серверу Apache: httpd.apache.org
  • Архив модулей под Apache, а так же полезная информация по написанию своих собственных модулей. (англ): modules.apache.org
  • Сайт разработчиков проекта "Русский Apache": apache.lexa.ru
Как я могу назначить свой тип документа и указать обработчик для этого типа?
Для этого в конфигурационном файле нужно добавить две строки:
AddType my_x_type/my_x_subtype .my_x_subtype_ext
Action my_x_type/my_x_subtype /cgi/my_x_subtype_handler.cgi

где my_x_subtype_ext - есть расширение файлов вашего нового типа, а my_x_subtype - название этого типа.
После этого перед любым запросом к файлу с расширением my_x_subtype_ext, будет вызываться программа /cgi/my_x_subtype_handler.cgi, а в переменные окружения PATH_INFO и PATH_TRANSLATED будут записаны, соответственно, путь к запрошенному документу относительно корня сервера и путь к документу относительно корня файловой системы.
Как я могу ограничить доступ к моему сайту, разрешив его только для определенных адресов?
Для этого в конфигурационном файле необхудимо указать следующее:

<Directory /path/to/private/folder/on/disk/>
  order deny,allow
  deny from all
  allow from first.ip.adress
  allow from second.ip.adress
  ...
  allow from nnn.ip.adress
</Directory>

что говорит о том, что к директории доступной на сервере и имеющей реальный путь на диске /path/to/private/folder/on/disk/ нужно запретить доступ всем и разрешить с IP адресов first.ip.adress, second.ip.adress и nnn.ip.adress.
Как я могу организовать авторизированный доступ к станицам моего сайта?
Добавте в конфигурационный файл следующие строки:

<Location /private/>
  AuthType Basic
  AuthName "My private pages"
  AuthUserFile "/path/to/file/mypass.htpasswd"
  require valid-user
</Location>


Либо в файл .htaccess расположеный в директории которую нужно закрыть:

  AuthType Basic
  AuthName "My private pages"
  AuthUserFile "/path/to/file/mypass.htpasswd"
  require valid-user


При запросе www.server.ru/private/ пользователю будет предложенно ввести имя пользователя и пароль. Имена пользователей и пароли должны храниться в файле, расположение которого на диске описывается как "/path/to/file/mypass.htpasswd. Этот файл создается утилитой htpasswd (Unix) или htpasswd.exe (Win32).
Простейший пример использования утилиты:
>htpasswd mypass.htpasswd username
"добавить в файл mypass.htpasswd пользователя с именем username".
После ввода данной строки будет предложенно ввести пароль пользователя.
Я пытаюсь указать свою страницу для обработки ошибки (например 404 Not found), но браузер Internet Explorer не реагирует на нее.
Все верно. Браузер Internet Explorer, с определенной версии, не реагирует на посланную, при возникновении ошибки, сервером страницу и показывают свою стандартную в случае, если размер посылаемой сервером страницы менее 512 байт.
Различная литература по Apache.
  • П. Уэйнрайт "Apache для профессионалов" (ссылка)
  • Марк Арнольд "Администрирование Apache" (ссылка)
Powered by POEM™ Engine Copyright © 2002-2005