Apache — FAQ

Автор: Aport Вторник, Январь 27th, 2015 Нет комментариев

Рубрика: Разное

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


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


Q. Как запретить / разрешить вывод содержимого директории в которой отсутствует индексный файл?
Для начала задайте приоритет конфигурационного файла размещенного в конкретной директории перед конфигурацией на сервере в самом корне дерева  сервера (или виртуального сервера) директивой :
<Directory />
….. skip…..
AllowOverride All
</Directory>
После чего поместите в директорию (котарая находиться на сервере или виртуальном сервере в корню которого вы разрешили вывод директории), в которой вы хотите запретить вывод содержимого файл .htaccess со следующей строкой
Options Indexes …. другие опции
А если вы хотите разрешить вывод содержимого директории то поместите файл .htaccess со следующим содержимым :
Options  …. другие опции


Q. Как разрешить/запретить выполнение скриптов не только в директории cgi-bin а и в остальных?
Легче всего разрешить выполнение скриптов на всем сервере (виртуальном сервере) . Для этого в корне сервера добавьте в директиве Options параметр ExecCGI , Например для виртуального сервера на это будет выглядеть так:
<VirtualHost server:8080>
DocumentRoot f:/intranet/vov/www  <- Тут находится корневой каталог виртуального сервера
…skip..
</VirtualHost>

<Directory «f:/intranet/vov/www»>
Options FollowSymLinks MultiViews  Indexes ExecCGI  <— Среди других возможностей разрешаем запуск скриптов
…skip..
</Directory>


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

Alias /test/ «C:/musor/test_www/»
<Directory «C:/musor/test_www/»>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

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


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

<FilesMatch «.(txt|log)$»>
Order deny,allow
deny from all
</FilesMatch>


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 в котором вывести сообщение про ошибку :
<?echo «Ошибка $REDIRECT_STATUS при доступе к $REQUEST_URI «;?>


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. Запретите все перекодировки !
<Location /path/to/>
CharsetDisable On
</Location>


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


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

 

Источник: yapro.ru

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

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты