Apache — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
Подключение php-модуля:
+
Подключение '''php'''-модуля:
 +
 
 +
ставим:
 +
# /usr/ports/www/mod_php5
 +
 
 +
httpd.conf
 +
LoadModule php5_module libexec/apache22/libphp5.so
 +
 
 
  <IfModule mime_module>
 
  <IfModule mime_module>
 
  AddType application/x-httpd-php .php
 
  AddType application/x-httpd-php .php
Строка 6: Строка 13:
  
  
Опция '''Directorylndex''' показывает, какие файлы нужно выводить пользователю, если он запросил не конкретный файл, а директорию. Данная настройка приведет к тому, что при запросе директории apache сначала будет искать файл index.php, если он будет найден, запустит его и выведет результат выполнения пользователю. Если такого файла нет, то тогда он попытается найти файл index.html. Если и такого файла не найдется, то пользователь получит ошибку. Чтобы не писать в адресе index.php надо добавить его в httpd.conf:
+
 
 +
Опция '''Directorylndex''' показывает, какие файлы нужно выводить пользователю, если он запросил не конкретный файл, а директорию. Данная настройка приведет к тому, что при запросе директории apache сначала будет искать файл index.php, если он будет найден, запустит его и выведет результат выполнения пользователю. Если такого файла нет, то тогда он попытается найти файл index.html. Если и такого файла не найдется, то пользователь получит ошибку.
 
  <IfModule dir_module>
 
  <IfModule dir_module>
 
  DirectoryIndex index.php index.html
 
  DirectoryIndex index.php index.html
 
  </IfModule>
 
  </IfModule>
 +
 +
 +
 +
Настройка '''Basic-auth'''
 +
 +
Убедиться, что разрешен соответствующий модуль в конфигурации apache в httpd.conf: '''auth_basic_module'''
 +
Проверям что модуль загружен
 +
# apachectl -M | grep auth_basic_module
 +
 +
Для директории которую будем закрывать добавляем в httpd.conf
 +
<Directory "/usr/local/www/директория">
 +
    AllowOverride AuthConfig
 +
</Directory>
 +
 +
Сохраняем и перечитываем конфиг apachectl graceful
 +
 +
Затем в директории сайта создаём файл .htaccess и пишём туда:
 +
AuthType Basic
 +
AuthName "Enter password"
 +
AuthUserFile /Путь/к/файлу/с/паролями/.htpasswd
 +
AuthGroupFile /dev/null
 +
Require valid-user
 +
 +
В AuthName можно написать свой текст, который выводится наверху окошка при запросе браузером имени пользователя/пароля.<br/>
 +
В AuthUserFile прописываем путь к файлу с паролями. Желательно файл с паролями хранить вне пути, доступного через web сервер.<br/>
 +
 +
Теперь собственно создаём наш файл паролей. Делаем это с помощью утилитки htpasswd, поставляемой с апачем.
 +
 +
Для создания файла применяем команду:
 +
# htpasswd -с .htpasswd имя_пользователя
 +
 +
Для того, чтоб поменять пароль у уже существующего пользователя достаточно сделать:
 +
# htpasswd .htpasswd имя_пользователя
 +
 +
Не забываем дать права на чтение .htaccess и .htpasswd веб-серверу
 +
 +
 +
Редирект всех http-запросов на https
 +
<VirtualHost *:80>
 +
    ServerName mail.megapuper.ru
 +
    ...............
 +
    '''Redirect permanent /folder https://mail.megapuper.ru/folder'''
 +
    ...............
 +
</VirtualHost>
 +
 +
 +
Настройка '''WebDAV'''
 +
 +
Подгружаем модули '''mod_dav и mod_dav_fs'''
 +
 +
Правим httpd.conf
 +
<Directory "/usr/local/www/webdav">
 +
                Dav On
 +
                <Limit GET POST OPTIONS PROPFIND>
 +
                Order allow,deny
 +
                Allow from all
 +
                </Limit>
 +
                </Directory>
 +
Перегружаем апач и проверяем
 +
 +
 +
  
  
 
Тестирование конфигурации После редактирования конфиг файла стоит проверить, что вы ничего в нем не поломали и все в порядке(по крайней мере с синтаксисом). Для этого можно использовать команду httpd -t. которая считывает конфиг и проверяет его синтаксис.  
 
Тестирование конфигурации После редактирования конфиг файла стоит проверить, что вы ничего в нем не поломали и все в порядке(по крайней мере с синтаксисом). Для этого можно использовать команду httpd -t. которая считывает конфиг и проверяет его синтаксис.  
 
  # httpd -t
 
  # httpd -t
 
  
 
Тестирование конфигурации хостов, чтобы просмотреть установки заданные в конфиге. Очень часто ошибки с конфигурацией виртуальных хостов выявляются именно при помощи этой команды.  
 
Тестирование конфигурации хостов, чтобы просмотреть установки заданные в конфиге. Очень часто ошибки с конфигурацией виртуальных хостов выявляются именно при помощи этой команды.  
 
  # httpd -S
 
  # httpd -S
 
  
 
'''apachectl''' — управление apache сервером
 
'''apachectl''' — управление apache сервером

Текущая версия на 18:41, 24 марта 2015

Подключение php-модуля:

ставим:

# /usr/ports/www/mod_php5

httpd.conf

LoadModule php5_module libexec/apache22/libphp5.so
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>


Опция Directorylndex показывает, какие файлы нужно выводить пользователю, если он запросил не конкретный файл, а директорию. Данная настройка приведет к тому, что при запросе директории apache сначала будет искать файл index.php, если он будет найден, запустит его и выведет результат выполнения пользователю. Если такого файла нет, то тогда он попытается найти файл index.html. Если и такого файла не найдется, то пользователь получит ошибку.

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>


Настройка Basic-auth

Убедиться, что разрешен соответствующий модуль в конфигурации apache в httpd.conf: auth_basic_module Проверям что модуль загружен

# apachectl -M | grep auth_basic_module

Для директории которую будем закрывать добавляем в httpd.conf

<Directory "/usr/local/www/директория">
   AllowOverride AuthConfig
</Directory>

Сохраняем и перечитываем конфиг apachectl graceful

Затем в директории сайта создаём файл .htaccess и пишём туда:

AuthType Basic
AuthName "Enter password"
AuthUserFile /Путь/к/файлу/с/паролями/.htpasswd
AuthGroupFile /dev/null
Require valid-user

В AuthName можно написать свой текст, который выводится наверху окошка при запросе браузером имени пользователя/пароля.
В AuthUserFile прописываем путь к файлу с паролями. Желательно файл с паролями хранить вне пути, доступного через web сервер.

Теперь собственно создаём наш файл паролей. Делаем это с помощью утилитки htpasswd, поставляемой с апачем.

Для создания файла применяем команду:

# htpasswd -с .htpasswd имя_пользователя

Для того, чтоб поменять пароль у уже существующего пользователя достаточно сделать:

# htpasswd .htpasswd имя_пользователя

Не забываем дать права на чтение .htaccess и .htpasswd веб-серверу


Редирект всех http-запросов на https

<VirtualHost *:80>
   ServerName mail.megapuper.ru
   ...............
   Redirect permanent /folder https://mail.megapuper.ru/folder
   ...............
</VirtualHost>


Настройка WebDAV

Подгружаем модули mod_dav и mod_dav_fs

Правим httpd.conf

<Directory "/usr/local/www/webdav">
               Dav On
               <Limit GET POST OPTIONS PROPFIND>
               Order allow,deny
               Allow from all
               </Limit>
               </Directory>

Перегружаем апач и проверяем



Тестирование конфигурации После редактирования конфиг файла стоит проверить, что вы ничего в нем не поломали и все в порядке(по крайней мере с синтаксисом). Для этого можно использовать команду httpd -t. которая считывает конфиг и проверяет его синтаксис.

# httpd -t

Тестирование конфигурации хостов, чтобы просмотреть установки заданные в конфиге. Очень часто ошибки с конфигурацией виртуальных хостов выявляются именно при помощи этой команды.

# httpd -S

apachectl — управление apache сервером

  • apachectl start - запуск
  • apachectl stop - остановка
  • apachectl restart - перезагрузка
  • apachectl graceful - перечитать конфиг без перезагрузки apache