![]()  | 
| Главная > Программное обеспечение > Программы для Интернет > | 
FAQ по Apache | 
Что такое 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
| Вернуться в раздел "Программы для Интернет" - Обсудить эту статью на Форуме | 
| Главная - Поиск по сайту - О проекте - Форум - Обратная связь |