FAQ по Apache (для WINDOWS и UNIX)

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

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

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

  • Как разрешить/запретить выполнение скриптов не только в директории 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>

  • Я хочу подшить к моему серверу директорию лежащую не внутри корневого каталога а в другом месте на диске. Как легче всего это сделать ?
    Проще всего воспользоваться сервисами операционной системы , так например под 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/"  

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

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

  • Как перейти на главную страницу сайта если пользователь ввел неверный адрес?

    В корневой директории сайта расположите файл .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 ";?>

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

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

  • Как исключить из лога Апача отдельные типы файлов?

    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 то Вам следует обновить версию Апача.

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

    У вас "Russian" Apache. Запретите все перекодировки !
    <Location /path/to/>
    CharsetDisable On
    </Location>

  • При работе сервера иногда отказываются работать скрипты и в логах пишется ... reason: couldn't spawn child process. Что делать?

    Нужно увеличить ограничение на общее максимальное количество процессов в системе, или максимальное количество процессов, запускаемых одним пользователем, или то и другое одновременно. Как это делается зависит от конкретной Unix. Читайте документацию.

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

    посмотрите на apache.lexa.ru описание директивы CharsetDisableForcedExpires.

Copyright © "Программы для бизнеса", http://www.softm.vov.ru



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости