Поиск по этому блогу

2010-09-12

Apache FAQ

(Взято с Apache.ru -FAQ)

Технические вопросы:

Q. Что такое Apache?
Это веб сервер. Самый распространненый в среде UNIX.

Q. Где взять Aрасне?
На официальном сайте http://www.apache.org или на http://www.apache.ru в разделе download.



Q. Как запретить / разрешить вывод содержимого директории, в которой отсутствует индексный файл?
Для начала задайте приоритет конфигурационного файла, размещенного в конкретной директории перед конфигурацией на сервере в самом корне дерева сервера (или виртуального сервера) директивой :

..... skip.....
AllowOverride All

После чего, поместите в директорию (она находиться на сервере или виртуальном сервере, в корне которого вы разрешили вывод директории), в которой вы хотите запретить вывод содержимого файла .htaccess со следующей строкой
Options -Indexes .... другие опции
А если вы хотите разрешить вывод содержимого директории, то поместите файл .htaccess со следующим содержимым :
Options +Indexes .... другие опции

Q. Как разрешить/запретить выполнение скриптов не только в директории cgi-bin, а и в остальных?
Легче всего разрешить выполнение скриптов на всем сервере (виртуальном сервере) . Для этого в корне сервера добавьте в директиве Options параметр ExecCGI. Например, для виртуального сервера это будет выглядеть так:

DocumentRoot f:/intranet/vov/www <- Тут находится корневой каталог виртуального сервера ...skip..



Options FollowSymLinks MultiViews Indexes ExecCGI <-- Среди других возможностей разрешаем запуск скриптов ...skip..


Q. Я хочу подшить к моему серверу директорию, лежащую не внутри корневого каталога, а в другом месте на диске. Как легче всего это сделать?
Проще всего воспользоваться сервисами операционной системы, так, например, под Unix можно использовать символическую ссылку на директорию (под Unix требуются права root). Если вы хотите сделать это только пользуясь возможностями Apache, то создайте алиас :

...
Alias /test/ "C:/musor/test_www/"

Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all

...
Теперь при обращении к серверу http://localhost/test/ будет вызвана не вложенная директория test в корневой каталог сервера, а алиас, размещенный в месте, указанном в комманде создания алиаса Alias /test/ "C:/musor/test_www/"

Q. У меня хостинг на Apache. Как мне, не изменяя основной конфигурационный файл Apache, запретить пользователям просмотр файлов *.txt , *.log через браузер в определенной директории (а также во всех вложенных в нее директориях) ? (Файлы создаются php контентом сайта и содержат логи подключению и т.п.)
Создайте в этой директории файл *.htaccess со следующим содержимым:


Order deny,allow
deny from all


Q. Как перейти на главную страницу сайта если пользователь ввел неверный адрес?
В корневой директории сайта расположите файл .htaccess в котором напишите :
ErrorDocument 403 /
ErrorDocument 404 /

Вот краткий перечень возможных кодов :
400 - Bad Request (Ошибочный запрос )
401 - Authorization Required (Ошибка авторизации)
403 - Forbidden (Доступ запрещен)
404 - Not Found (Документ не найден)
500 - Internal Server Error (Внутрення ошибка сервера)

Если у вас установлен PHP, то можно в файле вписать :
ErrorDocument 400 /errors/e.php
ErrorDocument 401 /errors/e.php
ErrorDocument 403 /errors/e.php
ErrorDocument 404 /errors/e.php
ErrorDocument 500 /errors/e.php

А в директории /errors разместить скрипт e.php, в котором вывести сообщение про ошибку :


Q. А как вывести сообщение, что адрес неверный?
В корневой директории расположите файл error.html с вашим сообщением, кроме того в корнне сайта создайте файл .htaccess, в котором укажите:
ErrorDocument 403 /error.html

Кроме того, возможно указать строку-сообщение про ошибку в самом .htaccess файле :
ErrorDocument 403 "Доступ запрещен!

Q. Как исключить из лога Апача отдельные типы файлов?
SetEnvIf Request_URI /.gif$ nolog
SetEnvIf Request_URI /.jpg$ nolog
CustomLog /path/to/access.log combined env=!nolog

Если при этом выдается следующее сообщение: Syntax error on line тут номер линии of /тут путь к конфигурации/httpd.conf: CustomLog takes two arguments, a file name and a custom log format string or format name то Вам следует обновить версию Апача.

Q. Портятся arj (и некоторые другие типы) файлы при file uploads/downloads в Apache. Все байты с кодом 00h заменяются на 20h. Что делать?
У вас "Russian" Apache. Запретите все перекодировки !

CharsetDisable On


Q. При работе сервера иногда отказываются работать скрипты и в логах пишется ... reason: couldn't spawn child process. Что делать?
Нужно увеличить ограничение на общее максимальное количество процессов в системе, или максимальное количество процессов, запускаемых одним пользователем, или то и другое одновременно. Как это делается зависит от конкретной Unix. Читайте документацию.

Q. У меня под Apache перестали кэшироваться документы, а скрипты после Back говорят: data missing
Посмотрите описание директивы CharsetDisableForcedExpires.

Комментариев нет:

Отправить комментарий