Задает файлы протоколов ошибок для каждого хоста

Как все мы знаем, Apache
— очень мощный, очень гибкий и настраиваемый веб-сервер для ОС *Nix
. Здесь, в этом руководстве, мы собираемся обсудить еще одну особенность Apache,
которая позволяет нам размещать более одного веб-сайта на одной машине с Linux. Внедрение виртуального хостинга с веб-сервером Apache может помочь вам сэкономить средства, которые вы инвестируете в обслуживание вашего сервера и его администрирование.

Концепция общего веб-хостинга
и реселлерского веб-хостинга
основана только на этой возможности Apache
.

Типы виртуальных хостов

Существует два типа виртуального хостинга, доступных с Apache.

Виртуальный хостинг на основе имени

С помощью на основе имени вы можете разместить несколько доменов
/ сайтов
на одном компьютере с одним IP
. Все домены на этом сервере будут использовать один IP-адрес. Это легче настроить, чем виртуальный хостинг на основе IP, вам нужно только настроить DNS
домена, чтобы сопоставить его с правильным IP-адресом, а затем настроить Apache для распознавания его по доменным именам.


Виртуальный хостинг на основе IP

Виртуальный хостинг на основе IP позволяет назначить отдельный IP-адрес для каждого домена на одном сервере, эти IP-адреса могут быть подключены к серверу с помощью одной карты NIC и нескольких сетевых карт.

Давайте настроим Виртуальный хостинг на основе имени
и Виртуальный хостинг на основе IP
в RHEL, CentOS
и Fedora
.

Тестовая среда
  1. ОС
    CentOS 6.5
  2. Приложение
    веб-сервер Apache
  3. IP-адрес
    192.168.0.100
  4. IP-адрес
    192.168.0.101
  5. Домен
    www.example1.com
  6. Домен
    www.example2.com

Как настроить виртуальные хосты Apache на основе IP и имен

Перед настройкой виртуального хостинга с Apache на
вашей системе должно быть установлено программное обеспечение Apache Web. если нет, установите его с помощью установщика пакета по умолчанию, называемого yum.

# yum install httpd

Настройка имени на основе виртуального хоста

Но перед созданием виртуального хоста вам необходимо создать каталог, в котором вы будете хранить все файлы вашего сайта. Итак, создайте каталоги для этих двух виртуальных хостов в папке /var/www/html
. Помните, что
/var/www/html
будет корневым каталогом документов
по умолчанию в виртуальной конфигурации Apache.

# mkdir /var/www/html/example1.com/
# mkdir /var/www/html/example2.com/

Чтобы настроить виртуальный хостинг на основе имен, вы должны указать Apache, какой IP-адрес вы будете использовать для получения запросов Apache для всех веб-сайтов или доменных имен. Мы можем сделать это с помощью директивы NameVirtualHost
. Откройте основной файл конфигурации Apache с помощью редактора VI
.

# vi /etc/httpd/conf/httpd.conf

Найдите NameVirtualHost
и раскомментируйте эту строку, удалив перед ней знак #
.

NameVirtualHost

Затем добавьте IP-адрес, с которым вы хотите получать запросы Apache. После изменений ваш файл должен выглядеть следующим образом:

NameVirtualHost 192.168.0.100:80

Теперь пришло время для настройки виртуальных разделов хоста для ваших доменов, перейдите к нижней части файла, нажав Shift + G
. Здесь, в этом примере, мы настраиваем разделы виртуального хоста для двух доменов.

  1. www.example1.com
  2. www.example2.com

Добавьте следующие две виртуальные директивы внизу файла. Сохраните и закройте файл.


DocumentRoot /var/www/html/example1.com
ServerName www.example1.com
CustomLog logs/www.example1.com-access_log common

DocumentRoot /var/www/html/example2.com
ServerName www.example2.com
CustomLog logs/www.example2.com-access_log common

Вы можете добавить столько директив, сколько хотите добавить в раздел виртуальных хостов ваших доменов. Когда вы закончите с изменениями в файле httpd.conf
, пожалуйста, проверьте синтаксис файлов с помощью следующей команды.

# httpd -t

Syntax OK

Рекомендуется проверять синтаксис файла после внесения некоторых изменений и перед перезапуском веб-сервера, поскольку в случае неправильного синтаксиса Apache откажется работать с некоторыми ошибками и в конечном итоге повлияет на работу существующего веб-сервера на некоторое время, если «syntax OK» . Перезапустите ваш веб-сервер и добавьте его в chkconfig,
чтобы ваш веб-сервер запускался на уровнях запуска 3
и 5
только во время загрузки.

Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[ root @ tecmint ~] # chkconfig —level 35 httpd on

Теперь пришло время создать тестовую страницу с именем index.html,
добавить некоторое содержимое в файл, чтобы у нас было что проверить, когда IP-адрес вызывает виртуальный хост.

# vi /var/www/html/example1.com/index.html

www.example1.com

Hello, Welcome to www.example1.com.

[ root @ tecmint ~] # vi /var/www/html/example2.com/index.html

www.example2.com

Hello, Welcome to www.example2.com.

Как только вы закончите с этим, вы можете проверить настройки, открыв оба домена в браузере.

Http://www.example1.com
http://www.example2.com

Предварительный просмотр: www.example1.com

Виртуальный хостинг: www.example1.com

Виртуальный хостинг: www.example2.com

Настройка виртуального хостинга на базе IP Linux

Чтобы настроить виртуальный хостинг на основе IP, вы должны иметь более одного IP-адреса
/ порта,
назначенного вашему серверу или вашему компьютеру Linux.

Это может быть одна карта NIC
, например: eth0: 1
, eth0: 2
, eth0: 3
… и так далее. Можно также подключить несколько сетевых
карт. Если вы не знаете, как создать несколько IP-адресов на одном сетевом адаптере
, следуйте приведенному ниже руководству, которое поможет вам в создании.

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

Этот тип настройки требуется, когда веб-сайт работает с сертификатом SSL
(mod_ssl
) или на разных портах и ​​IP-адресах. Вы также можете запустить несколько экземпляров Apache на одном компьютере. Чтобы проверить IP-адреса, подключенные к вашему серверу, проверьте его с помощью команды ifconfig .

Root @ tecmint ~] # ifconfig

Пример вывода

eth0 Link encap:Ethernet HWaddr 08:00:27:4C:EB:CE
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe4c:ebce/64 Scope:Link
RX packets:17550 errors:0 dropped:0 overruns:0 frame:0
TX packets:15120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:16565983 (15.7 MiB) TX bytes:2409604 (2.2 MiB)
eth0:1 Link encap:Ethernet HWaddr 08:00:27:4C:EB:CE
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1775 errors:0 dropped:0 overruns:0 frame:0
TX packets:1775 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:3416104 (3.2 MiB) TX bytes:3416104 (3.2 MiB)

Как видно из вышеприведенного вывода, два IP-адреса 192.168.0.100
(eth0
) и 192.168.0.101
(eth0: 1
) подключены к серверу, оба IP-адреса назначены одному физическому сетевому устройству (eth0
).

Теперь, назначив определенный IP
/ порт
для получения http-запросов, вы можете просто сделать это, изменив директиву Listen
в файле httpd.conf
.

# vi /etc/httpd/conf/httpd.conf

Ищите слово «Listen
». Вы найдете раздел, в котором написано краткое описание директивы Listen. В этом разделе прокомментируйте оригинальную строку и напишите собственную директиву ниже этой строки.

# Listen 80
Listen 192.168.0.100:80

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


ServerAdmin [email protected]
DocumentRoot /var/www/html/example1
ServerName www.example1.com
ErrorLog logs/www.example1.com-error_log
TransferLog logs/www.example1.com-access_log

ServerAdmin [email protected]
DocumentRoot /var/www/html/example2
ServerName www.example2.com
ErrorLog logs/www.example2.com-error_log
TransferLog logs/www.example2.com-access_log

Теперь, поскольку вы изменили основной файл конфигурации Apache, вам нужно перезапустить службу http, как показано ниже.

# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Проверьте настройки виртуального хостинга на основе IP, открыв URL-адреса
в веб-браузере, как показано ниже.

Http://www.example1.com
http://www.example2.com

Это все, что касается виртуального хоста Apache сегодня.

Во время разработки, одним хостом не обойдешься. На одном можно разрабатывать, на другом тестировать, а на третьем еще один проект.

Плюс ко всему, в Apache2 по умолчанию файлы сайта хранятся в /var/www, у меня же они будут находиться в моей домашней папке, /home/goodigy/sites
.

Apache2 может определять хосты по ip-адресам, по доменным именам и по портам.

Мы будем использовать второй вариант, то есть определение хостов по доменным именам.

В Apache2, установленном в Ubuntu 16.04 и Ubuntu 14.04, для этого уже почти все готово.

В папке /etc/apache2/
sites-available
будут храниться все конфигурационные файлы виртуального хоста.
Затем мы его просто будем включать и выключать по надобности.
Один файл там уже есть, на основе его мы и сделаем свой.

Скопируем под именем example
(наш хост будет называться example, и в браузере станет доступен по ссылке http://example)

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.conf

В предыдущих версиях apache2 (до версии 2.4), не использовались расширения файлов.conf. В новых версиях (с версии 2.4) это приведет к ошибке.

Теперь надо отредактировать, вновь созданный, файл

Sudo nano /etc/apache2/sites-available/example.conf

Файл приводим к следующему виду:

ServerName example
DocumentRoot /home/goodigy/sites/example

AllowOverride All
Require all granted

ErrorLog /home/goodigy/sites/example/error.log
CustomLog /home/goodigy/sites/example/access.log combined

Разъяснение настроек:

  • ServerName example
    — указание доменного имени по которому будет определяться хост.
  • DocumentRoot /home/goodigy/sites/example
    — привязывает папку к хосту.


  • Options Indexes FollowSymlinks

    AllowOverride All

    Require all granted


    — это настройки папки,
  • Options Indexes FollowSymlinks
    — если нет индексного файла (index.html, index.php), показывать список файлов, удобно на локальном сервере.
  • AllowOverride All
    — разрешает переопределять настройки в.htaccess.
  • Require all granted
    — доступ разрешен всем.
  • ErrorLog
    — указывает расположение файла с логом ошибок, я их храню в папке с сайтом.
  • CustomLog
    — указывает расположение файла с логом доступа, я их храню в папке с сайтом.

Сохраняем.
Создаем папки, указанные в конфигурационном файле

Mkdir /home/goodigy/sites
mkdir /home/goodigy/sites/example

Включаем сайт

Sudo a2ensite example.conf

И отключаем тот, который по умолчанию

Sudo a2dissite 000-default.conf

Перезапускаем Apache2

Sudo nano /etc/hosts

Выглядит он, примерно, так

127.0.0.1 localhost
127.0.1.1 googidy-comp
# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Туда надо добавить указание на наш домен example

127.0.0.1 localhost
127.0.1.1 igy-nout
127.0.0.1 example
# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Сохраняем.
Все, теперь по адресу http://example доступен наш новый хост. В браузере должна отобразиться папка с файлами, так как там отсутствует индексный файл.

Нескольких сайтов, то Apache для этих целей предоставляет возможность настройки виртуальных хостов (virtual hosts). Виртуальные хосты бывают двух видов: name-based virtual hosts
, то есть привязанные к доменному имени, и IP-based virtual hosts
, то есть привязанные к IP-адресу. Виртуальные хосты первого типа используют разные имена для одного IP-адреса, а второго типа – используют для каждого сайта отдельный IP-адрес. Создание виртуальных хостов в Apache необходимы, если на вашем сервере есть несколько сайтов, а их настройка необходима для корректного отображения всех сайтов.

Наиболее распространенным является использование виртуальных хостов на базе имен (name-based virtual hosts), привязанных к одному IP-адресу. Таким образом, можно хранить множество сайтов на одном IP.

Самым простым способом добавления и последующей настройки виртуальных хостов Apache является редактирование конфигурационного файла веб-сервера, который имеет разные названия и места расположения в зависимости от операционной системы:

В Red-Hat
/CentOS
/Fedora
:

/etc/httpd/conf/httpd.conf

Debian
/Ubuntu
:

/etc/apache2/apache2.conf

Вторым способом настройки является использование собственных .conf
файлов, которые должны размещаться по пути:

В Red-Hat
/CentOS
/Fedora
:

/etc/httpd/conf.d/filename.conf,

Debian
/Ubuntu
:

/etc/apache2/conf.d/filename.conf.

Как правило, в конфигурационном файле httpd.conf
или apache2.conf
раздел управления виртуальными хостами располагается в самом конце. Для добавления виртуального хоста нужно будет открыть этот файл и раскомментировать в нём (убрать #
) директиву NameVirtualHost *:80
(Аргумент *
обозначает «все имена хостов»). Если будет использоваться способ размещения конфигурации в conf.d
, то указанную директиву не нужно раскомментировать, а следует определить её в самом создаваемом файле.

После NameVirtualHost
следует блок VirtualHost *:80
. Подобные блоки и являются конфигурацией ваших виртуальных хостов. Выглядит это все примерно следующим образом:

NameVirtualHost *:80

AllowOverride All
Options All

ServerAdmin [email protected]
DocumentRoot /var/www/site1.ru
ServerName site1.ru
ServerAlias www.site1.ru
ErrorLog logs/site1.ru-error_log
CustomLog logs/site1.ru-access_log common

ServerAdmin [email protected]
DocumentRoot /var/www/site2.ru
ServerName site2.ru
ServerAlias www.site2.ru
ErrorLog logs/site2.ru-error_log
CustomLog logs/site2.ru-access_log common

Именно здесь и производятся все настройки виртуальных хостов, а также, подключение или отключение определенных опций.

Рассмотрим более детально, за что отвечает каждая указанная выше директива.

1. Директива ServerAdmin
указывает электронный адрес администратора сервера, на который приходят все уведомления с хоста, касающиеся его администрирования.

2. Директива DocumentRoot
указывает корневую директорию с файлами сайта, которые должны будут выдаваться веб-сервером клиенту (браузеру).

3. Директива Server Name
определяет имя хоста, по запросу которого должны будут выдаваться файлы, расположенные в DocumentRoot.

4. Директива ServerAlias
служит для задания альтернативных имен хоста (алиасов, псевдонимов), на которые он откликается.

5. Директива ErrorLog
задает файлы протоколов ошибок для каждого хоста, а CustomLog
– файлы протоколов для всего остального, кроме ошибок.

До блоков с виртуалхостами, как вы заметили, есть еще запись:

AllowOverride All

В тегах

заключается перечень директив (параметров), которые будут применяться к конкретной директории, которая указывается в открывающем теге. В примере выше – это var/www/
. Указанная директива AllowOverride
указывает, использовать ли файлы .htaccess
и если да, то какие глобальные директивы веб-сервера в можно переопределять в таких файлах. В представленном выше примере значение AllowOverride
установленно в All
, что разрешает обрабатывать файлы.htaccess и все указанные в нём директивы. Существуют и другие возможные значения:

AuthConfig
– разрешает использовать директивы авторизации (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, и т.д..).

FileInfo
– разрешает использовать директивы, управляющие типами документов (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..).

Indexes
— разрешает использовать директивы для управления индексацией каталогов (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..).

Limit
— разрешает использовать директивы управления доступом (allow, deny и order).

Options
— разрешает использовать директивы, с помощью которых можно управлять специфическими особенностями каталога (Options и XBitHack).

Это одна из многих возможных директив, с которыми вы можете ознакомиться на сайте разработчиков.

После сохранения изменений в файле необходимо проверить новые настройки на наличие ошибок. Для выполнения проверки можно использовать следующие команды:

Apachectl configtest
apachectl -S
apachectl -d

Если получено сообщение “Syntax OK
”, значит ошибок нет и можно перезагружать веб-сервер, чтобы применились изменения. Сделать это можно с помощью следующих команд:

Red-Hat/CentOS/Fedora:

Service httpd restart

/etc/init.d/ httpd restart

Debian/Ubuntu:

Service apache2 restart

/etc/init.d/apache2 restart

Далее вы можете столкнуться со следующей проблемой. При поступлении запроса Apache проходит по всему списку виртуальных хостов в поисках соответствующего, и, если не находит соответствия, выдает первый по порядку хост. Чтобы устранить данную неприятность, специалисты придумали так называемую секцию-заглушку, которую следует вставить перед первой секцией VirtualHost
реального сайта. Выглядит она приблизительно следующим образом:

ServerName default
DocumentRoot /var/www/default

Таким образом, все неправильные запросы будут отсылаться по пути var/www/default
, где можно создать индексную страницу, которая будет сообщать о неправильном запросе.

Также, Apache по умолчанию не имеет доступа к вашим домашним директориям, а только к директории /var/www
. Если вы используете на своем сервере SElinux, то для предоставления Apache доступа к домашним директориям используйте следующие команды:

Setsebool -P httpd_enable_homedirs 1

Setsebool -P apache2_enable_homedirs 1

Для того чтобы Apache имел доступ к определенной директории, например, к /home/mydir
следует использовать команду:

Chcon -R -t httpd_sys_content_t /home/mydir

Chcon -R -t apache2_sys_content_t /home/mydir

При отключенном SELinux
для предоставления Apache доступа к той или иной домашней директории сайта, вам нужно будет вручную отредактировать его конфигурационный файл (/etc/httpd/conf/httpd.conf
в CentOS/Fedora
или /etc/apache2/apache2.conf
в Debian/Ubuntu
).

Открыв конфигурационный файл веб-сервера для редактирования, найдите строку DocumentRoot
(при использовании редактора nano ее можно отыскать с помощью комбинации клавиш Ctrl+W
). Замените значение в кавычках /var/www/html
на абсолютный путь к домашней директории сайта (например, /home/username/site.com
). Сохраните изменения и выйдите из меню редактора (Ctrl+O
и Ctrl+X
). Перезапустите Apache.

Если у вас на VPS установлена ОС Debian/Ubuntu
, то править строку DocumentRoot
необходимо в файле /etc/apache2/sites-available/default
. Откройте его для редактирования и замените стандартное значение /var/www
на абсолютный путь к домашней директории сайта. Выполните перезапуск веб-сервера.

На этом базовая настройка виртуальных хостов окончена.

В данной статье я расскажу, как добавить виртуальные хосты в Apache.

Виртуальные хосты предназначены для того, чтобы создавать несколько сайтов на одном сервере. Фактически каждый виртуальный хост представляет собой отдельный сайт, со своим адресом и директорией, где размещаются его файлы.

После установки Apache создается один виртуальный хост с именем localhost. Вы можете открыть его в браузере по адресу http://localhost
. Директория, в которой размещаются файлы данного сайта /Library/WebServer/Documents
.

Есть несколько способов для добавления своих хостов в Apache. Можно прописать информацию о них в одном файле, а можно создать для каждого хоста свой отдельный конфигурационный файл с соответсвующим именем. Я буду использовать второй способ.

Файлы с настройками хостов мы будем размещать в одной директории /private/etc/apache2/vhosts
. Файлы будут иметь имена вида mysite.local.conf
.

Подключаем vhosts

Сначала нам нужно отредактировать конфигурационный файл Apache. Необходимо добавить в него директиву, которая будет подключать директорию, в которой мы будем создавать конфигурационные файлы хостов.

Откройте файл для редактирования, для этого выполните в терминале команду:

Sudo nano /etc/apache2/httpd.conf

Найдите в файле строку #Include /private/etc/apache2/extra/httpd-vhosts.conf
.

Под этой строкой добавьте новую строку:

Include /private/etc/apache2/vhosts/*.conf

Сохраните изменения и закройте файл. Чтобы закрыть файл и сохранить изменения, нажмите Ctrl+X
, затем введите Y
и нажмите Enter
.

Настраиваем виртуальные хосты

Создадим директорию /private/etc/apache2/vhosts
, которую мы добавили в кофигурацию Apache на предыдущем шаге. Чтобы создать директорию выполните в терминале команду:

Sudo mkdir /private/etc/apache2/vhosts

Перейдем в эту директорию:

Cd /private/etc/apache2/vhosts

Создадим конфигурационный файл _default.conf
. В нем мы пропишем конфигурацию виртуального сервера по умолчанию. Создайте новый файл, выполнив в терминале:

Sudo nano _default.conf

Введите следующую конфигурацию:

DocumentRoot «/Library/WebServer/Documents»

Сохраните и закройте файл.

Теперь создадим конфигурацию для нашего виртуального хоста (сайта). Для примера мы будем создавать сайт с адресом mysite.local
, а файлы сайта будем размещать в домашней директории в каталоге mysite
(полный путь будет иметь вид /Users/Yury/mysite
, вместо Yury
должно быть ваше имя пользователя).

Выполните в терминале:

Sudo nano mysite.local.conf

DocumentRoot «/Users/Yury/mysite»
ServerName mysite.local
ErrorLog «/private/var/log/apache2/mysite.local-error_log»
CustomLog «/private/var/log/apache2/mysite.local-access_log» common

AllowOverride All
Require all granted

В конфигурации мы указали директорию (/Users/Yury/mysite
), в которой располагаются файлы нашего сайта. Задали адрес сайта mysite.local
. Указали, где будут храниться лог файлы с ошибками и информацией о доступе к сайту.

Перезапустите Apache:

Sudo apachectl restart

Прежде, чем наш сайт станет доступен по адресу http://mysite.local
необходимо добавить информацию о нем в файл /etc/hosts
.

Редактирование /etc/hosts

В файле /etc/hosts
прописывается соответсвие IP адреса и текстовый адрес хоста (что-то вроде локального DNS).

Нам нужно добавить наш адрес mysite.local
. Для этого откройте файл /etc/hosts
:

Sudo nano /etc/hosts

И добавьте в файл строку:

127.0.0.1 mysite.local

Настраиваем права доступа

Иногда требуется выставить правильные права доступа на директорию, в которой хранятся файлы сайта. Если этого не сделать, то при доступе к сайту мы получим ошибку 403 Forbidden. Такую же ошибку мы получим, если директории не существует.

В нашем случае нам нужно установить права доступа на директорию /Users/Yury/mysite
. Для этого выполните в терминале команду:

Chmod 755 /Users/Yury/mysite

Проверка работы

Теперь наберите в браузере адрес сайта: http://mysite.local

Если все пройдет успешно, то вы увидете ваш сайт.

В случае каких-либо ошибок можно просмотреть логи в файле /private/var/log/apache2/mysite.local-error_log

Веб-сервер Apache является самым популярным способом обслуживания веб-контента в Интернете. На его долю приходится более половины активных веб-сайтов в Интернете, и он является чрезвычайном мощным и быстрым.

Apache разбивает свои функциональные возможности и компоненты на отдельные блоки, которые могут быть кастомизированы и настроены независимо друг от друга. Базовой единицей, описывающей индивидуальный сайт или домен, называется виртуальным хостом.

Такие распределения позволяют администратору с помощью соответствующего механизма использовать один сервер для размещения множества доменов или сайтов на одном интерфейсе или IP. Это важно для всех, кто хочет разместить несколько сайтов в одном VPS.

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

В этом руководстве мы расскажем, как настроить виртуальные хосты Apache на Ubuntu 16.10 или 17.04 VPS. Во время этого процесса вы узнаете, как обслуживать разный контент для разных посетителей, в зависимости от того, какие домены они запрашивают.

Предполагается, что вы работаете под обычным пользователем. Если нет, то предварительно создайте обычного пользователя и залогинтесь под ним.

Для целей этой инструкции, мы будем настраивать виртуальный хост для домена example.com, а другой виртуальный хост для test.com. На них будут делаться ссылки в этом руководстве, но вы должны подставить ваши собственные домены или значения.

Для реальных доменов должны быть прописаны DNS записи, указывающие на IP вашего сервера. Если у вас нет доменов, с которыми можно было бы поиграться, вы можете использовать ненастоящие значения.

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

Шаг 1 — Создание структуры директорий

Первым шагом, который будет предпринят, мы собираемся создать структуру директорий, которые будут содержать данные сайтов, которые будет обслуживать сервер для посетителей.

Наша корневая директория документов (директория самого верхнего уровня, в которой Apache ищет содержимое для обслуживания) будет установлена на индивидуальные директории в папке /var/www
. В ней мы создадим подпапки для обоих виртуальных хостов, которые мы планируем сделать.

Внутри каждой из этих директорий, мы создадим папку public_html
, которая и будет содержать файлы. Это даст больше гибкости в развёртывании сложных веб-приложений; в папке public_html
будет расположен веб-контент, а родительская папка может содердажть скрипты или код приложения для поддержки веб-контента.

Например, для наших сайтов мы собираемся сделать наши директории следующим образом:

Sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

Поскольку мы создали директории с sudo, то они принадлежат пользователю root. Если мы хотим, чтобы наш обычный пользователь был способен изменять файлы в наших веб-директориях, мы можем изменить права собственности сделав так:

Sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html

При нажатии на Enter переменная $USER
примет значение вашего пользователя, под которым вы вошли. Сделав это, наш обычный пользователь станет владельцем поддиректорий public_html
где мы будем размещать наш контент.

Нам следует также немного отредактировать наши разрешения, чтобы убедиться, что доступ на чтение разрешён на главную веб-директорию и на все файлы и папки, которые она содержит, это нужно, чтобы страницы могли корректно обслуживаться сервером:

Sudo chmod -R 755 /var/www

Теперь ваш веб-сервер должен иметь необходимые разрешения для обслуживания контента, и вы должны быть способны создавать контент внутри необходимых папок.

Шаг 2 — Создание демо страниц для каждого виртуального хоста

Структура директорий размещена в нужном месте. Давайте создадим контент, чтобы его мог обрабатывать веб-сервер.

Мы только собираем показать принцип работы, поэтому наши страницы будут очень простыми. Мы просто собираемся сделать страницу index.html
для каждого сайта.

Давайте начнём с example.com. Мы можем открыть файл index.html в нашем редакторе напечатав:

Vim /var/www/example.com/public_html/index.html

В этом файле создайте HTML документ, который говорит о том, что к сайту есть соединение. Мой файл выглядит примерно так:

Welcome to Example.com!

Success! The example.com virtual host is working!

Когда закончите, сохраните и закройте файл.

Мы можем скопировать этот файл для использования его в качестве основы для нашего второго сайта:

Cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

Затем мы можем открыть новый файл и изменить его в нужных местах:

Vim /var/www/test.com/public_html/index.html

Welcome to Test.com!

Success! The test.com virtual host is working!

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

Шаг 3 — Создание файлов настроек новых виртуальных хостов

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

Apache поставляется со стандартным файлом виртуального хоста, называемым 000-default.conf. Его мы можем использовать как отправную точку. Мы скопируем его для создания файла виртуального хоста для каждого нашего домена.

Мы начнём с одного домена, настроем его, скопируем его для нашего второго домена и затем сделаем небольшие необходимые исправления. Стандартная конфигурация Ubuntu требует, чтобы каждый файл виртуального хоста заканчивался на.conf.

Создайте первый файл виртуального хоста

Начните с копирования файла для первого домена:

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Откройте новый файл в текстовом редакторе с привилегиями рута:

Sudo vim /etc/apache2/sites-available/example.com.conf

Файл будет выглядеть примерно так (я удалил здесь комментарии, чтобы сделать файл более читаемым):

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Как вы можете убедиться, здесь не слишком много. Мы настрое пункты для нашего первого домена и добавим некоторые директивы. Секция VirtualHost
соответствует любым запросам, сделанным на порт 80, это стандартный HTTP.

Для начала нам нужно изменить директиву ServerAdmin
, впишите сюда адрес электронной почты, на который администратор может принимать письма.

ServerAdmin [email protected]

После этого нам нужно добавить две директивы. Первая называется ServerName, она устанавливает базовый домен, который должен соответствовать определению виртуального хоста. Скорее всего, это будет ваш домен. Вторая, называемая ServerAlias, определяет дополнительные имена (псевдонимы), по которым также можно обратиться к этому виртуальному хосту. Т.е. здесь указываются различные имена хостов, указывающие на один виртуальный хост, например, чтобы сайты с и без www сервер считал за один сайт нужно сделать так:

ServerName example.com
ServerAlias www.example.com

Ещё нам осталось изменить путь, указывающий где размещена корневая директория сайта для этого домена — DocumentRoot
. Мы уже создали нужную нам директорию, поэтому нам нужно просто изменить директиву DocumentRoot
в соответствии с нашими условиями:

DocumentRoot /var/www/example.com/public_html

В конечном счёте файл нашего виртуального хоста выглядит так:

ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Сохраните и закройте этот файл.

Скопируйте первый виртуальный хост и подредактируйте под второй домен

Теперь, когда файл нашего первого виртуального хоста готов, мы можем создать второй скопировав этот файл и поднастроев его как нужно.

Начнём с копирования:

Sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf

Откройте новый файл с привилегиями рута в вашем редакторе:

Sudo vim /etc/apache2/sites-available/test.com.conf

Теперь нужно изменить информацию, специфичную для второго домена. Когда закончите, может получиться примерно так:

ServerAdmin [email protected]
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Когда всё готово, сохраните и закройте файл.

Шаг 4 — Включение новых файлов виртуальны хостов

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

Мы можем использовать инструмент a2ensite для включения каждого нашего сайта примерно следующим образом:

Sudo a2ensite example.com.conf
sudo a2ensite test.com.conf

Sudo a2dissite 000-default.conf

Когда вы закончите, вам нужно перезапустить Apache чтобы эти изменения вступили в силу:

Sudo systemctl restart apache2

В другой документации вы можете увидеть пример использующий другую сервисную команду:

Sudo service apache2 restart

Эта команда ещё работает, но вы можете не увидеть вывод, обычно видимый на других системах, поскольку сейчас это обёртка для systemctl из systemd.

Шаг 5 — Настройка файла Hosts (опционально)

Если для этого процесса вы используете не реальные принадлежащие вам доменные имена, а используете те примеры, которые указаны в этой статье, вы всё равно можете протестировать успешность настройки сервера. Этого можно добиться временным изменением файла hosts
на вашем локальном компьютере.

Эта настройка будет перехватывать любые запросы для настроенных вами доменов и указывать на ваш локальный компьютер или VPS сервер, как бы это делала DNS система если бы использовались зарегистрированные домены. Хотя это будет работать только с вашего компьютера, это полезно для целей тестирования.

Если вы настраивали виртуальные хосты на вашем локальном компьютере, то последующие изменения также нужно делать на нём. Если вы настраивали виртуальные хосты на VPS сервере, то убедитесь, что последующие изменения вы делаете не на нём, а на компьютере, с которого собираетесь тестировать (на вашем локальном компьютере). Вам нужно знать пароль администратора или быть членом административной группы.

Если вы на компьютере Mac или Linux, отредактируйте ваш локальный файл с привилегиями администратора:

Sudo gedit /etc/hosts

Допустим, мой VPS имеет IP адрес 111.111.111.111, тогда в самый низ файла hosts мне нужно добавить две строки:

127.0.0.1 localhost

111.111.111.111 example.com
111.111.111.111 test.com

Если вы настроили виртуальные домена на локалхосте, то строки могут выглядеть так:

127.0.0.1 example.com
127.0.0.1 test.com

Если вы на машине Windows, откройте командную строку с привилегиями администратора и наберите там:

Notepad %windir%\system32\drivers\etc\hosts

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

Вам нужно добавить IP адрес вашего VPS сервера за которым следует домен, который вы хотите достичь на VPS.

Это будет перенаправлять любые запросы на example.com и test.com с вашего компьютера и отправлять их на ваш сервер 111.111.111.111.

Сохраните и закройте файл. Теперь вы можете протестировать ваши настройки. Когда убедитесь, что всё работает, удалите эти две строки из файла.

Шаг 6 — Тестирование ваших результатов

Теперь, после настройки ваших виртуальных хостов, вы можете легко протестировать вашу установку перейдя на домен, который вы настраивали в вашем веб-браузере. Посетите первый сайт http://example.com и вы увидите примерно следующую страницу:

Точно также посетите второй сайт http://test.com, вы увидите файл, созданный для второго сайта:

Если оба этих сайта работают хорошо, значит вы успешно настроили два виртуальных хоста на одном сервере.

Заключение

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

Нет программных ограничений на количество доменных имён, которые может обслуживать Apache, поэтому добавляйте столько, сколько ваш сервер способ обработать.

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

Знание того, как настраивать и читать журналы, очень полезно при устранении неполадок сервера или приложений, поскольку они предоставляют подробную информацию об отладке.

Apache записывает свои события в журналы двух типов: журналы доступа и журналы ошибок. Журналы доступа включают информацию о клиентских запросах, а журналы ошибок — информацию о проблемах сервера и приложений.

В этой статье описывается, как настроить и прочитать журналы доступа и ошибок Apache.

Настройка журнала доступа

Веб-сервер Apache генерирует новое событие в журнале доступа для всех обработанных запросов. Каждая запись события содержит отметку времени и включает различную информацию о клиенте и запрошенном ресурсе. Журналы доступа показывают местоположение посетителей, страницу, которую они посещают, сколько времени они проводят на странице и многое другое.

Директива CustomLog определяет расположение файла журнала и формат регистрируемых сообщений.

Базовый синтаксис директивы CustomLog следующий:

CustomLog log_file format [condition];

log_file может относиться либо к ServerRoot либо к полному пути к файлу журнала. Сообщения журнала также можно передать другой программе с помощью символа вертикальной черты | .

Второй аргумент, format определяет формат сообщений журнала. Это может быть явное определение формата или псевдоним, определяемый директивой LogFormat .

LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined
CustomLog logs/access.log combined
CustomLog logs/access.log "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i""

Чтобы не повторять один и тот же код несколько раз, предпочтительнее определить директиву LogFormat и использовать ее в качестве псевдонима в директиве CustomLog .

Полный список всех строк формата и модификаторов см. В документации модуля «mod_log_config» .

Третий аргумент [condition] является необязательным и позволяет записывать сообщения журнала только при выполнении определенного условия. Обычно это делается с использованием переменных окружения. Условие может быть отменено с помощью ! условное обозначение.

Например, если вы хотите исключить запросы к файлам css для записи в файл журнала, вы должны использовать следующее:

SetEnvIf Request_URI .css$ css-file
CustomLog logs/access.log custom env=!css-file

Чтобы изменить формат ведения журнала, вы можете определить новую директиву LogFormat или переопределить формат по умолчанию. Обычно лучше определить новый формат.

Хотя журнал доступа предоставляет очень полезную информацию, он занимает дисковое пространство и может повлиять на производительность сервера. Если на вашем сервере мало ресурсов и у вас загруженный веб-сайт, вы можете отключить журнал доступа.

Для этого просто закомментируйте или удалите директиву CustomLog из разделов конфигурации основного сервера и виртуального сервера.

Если вы хотите отключить журнал доступа только для одного виртуального хоста, установите для первого аргумента директивы CustomLog значение /dev/null :

CustomLog /dev/null combined

Настройка журнала ошибок

Apache записывает сообщения об ошибках приложения и общих ошибках сервера в файл журнала ошибок. Если вы испытываете ошибки в своем веб-приложении, журнал ошибок — это первое место, с которого можно начать поиск и устранение неисправностей.

Директива ErrorLog определяет расположение имени журнала ошибок. Он имеет следующий вид:

Если путь к log_file не является абсолютным, он устанавливается относительно ServerRoot . Сообщения об ошибках также могут быть переданы другой программе с помощью символа вертикальной черты | .

Параметр LogLevel устанавливает уровень ведения журнала. Ниже перечислены уровни в порядке их серьезности (от низкого до высокого):

  • trace1trace8 — сообщения трассировки.
  • debugdebug сообщения.
  • info — Информационные сообщения.
  • notice — Уведомления.
  • warn — Предупреждения.
  • error — Ошибки при обработке запроса.
  • crit — Критические проблемы. Требуется быстрое действие.
  • alert — Оповещения. Действия должны быть предприняты немедленно.
  • emerg — Чрезвычайная ситуация. Система находится в непригодном для использования состоянии.

Каждый уровень журнала включает в себя более высокие уровни. Например, если вы установите уровень журнала , чтобы warn , Apache также записывает error , crit , alert и emerg сообщения.

Если параметр LogLevel не указан, по умолчанию используется warn . Рекомендуется установить уровень как минимум crit .

Директива ErrorLogFormat определяет формат журнала ошибок. В большинстве дистрибутивов Linux сервер Apache использует формат по умолчанию, которого достаточно в большинстве случаев.

Виртуальные хосты и глобальное ведение журнала

Поведение журнала и расположение файлов можно установить глобально или для каждого виртуального хоста.

Затем в контексте основного сервера ErrorLog директивы CustomLog или ErrorLog , сервер записывает все сообщения журнала в те же файлы журнала доступа и ошибок. В противном случае, если директивы помещаются в блок <VirtualHost> , в указанный файл записываются только сообщения журнала для этого виртуального хоста.

Директива журнала, установленная в блоке <VirtualHost> заменяет директиву, установленную в контексте сервера.

Виртуальные хосты без директив CustomLog или ErrorLog будут записывать свои сообщения журнала в глобальные журналы сервера.

Для лучшей читаемости рекомендуется установить отдельные файлы журнала доступа и ошибок для каждого виртуального хоста. Вот пример:

<VirtualHost *:80>
     ServerName example.com
     ServerAlias www.example.com
     ServerAdmin [email protected]
     DocumentRoot /var/www/example.com/public
     LogLevel warn
     ErrorLog /var/www/example.com/logs/error.log
     CustomLog /var/www/example.com/logs/access.log combined
</VirtualHost>

Всякий раз, когда вы изменяете файл конфигурации, вам необходимо перезапустить службу Apache, чтобы изменения вступили в силу.

Расположение файлов журнала

По умолчанию в дистрибутивах на основе Debian, таких как Ubuntu , журналы доступа и ошибок расположены в каталоге /var/log/apache2 . В CentOS файлы журнала помещаются в каталог /var/log/httpd .

Чтение и понимание файлов журнала Apache

Файлы журнала можно открывать и анализировать с помощью стандартных команд, таких как cat , less , grep , cut , awk и т. Д.

Вот пример записи из файла журнала доступа, в котором используется формат журнала combine Debian:

192.168.33.1 - - [08/Jan/2020:21:39:03 +0000] "GET / HTTP/1.1" 200 6169 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"

Давайте разберемся, что означает каждое поле записи:

  • %h192.168.33.1 — Имя хоста или IP-адрес клиента, выполняющего запрос.
  • %l- — Имя удаленного журнала. Если имя пользователя не задано, в этом поле отображается - .
  • %u- — Если запрос аутентифицирован, отображается имя удаленного пользователя.
  • %t[08/Jan/2020:21:39:03 +0000] — Время локального сервера.
  • "%r""GET / HTTP/1.1" — первая строка запроса. Тип запроса, путь и протокол.
  • %>s200 — окончательный код ответа сервера. Если символ > не используется и запрос был перенаправлен внутри, он покажет статус исходного запроса.
  • %O396 — Размер ответа сервера в байтах.
  • "%{Referer}i""-" — URL перехода.
  • "%{User-Agent}i"Mozilla/5.0 ... — Пользовательский агент клиента (веб-браузера).

Используйте команду tail для просмотра файла журнала в режиме реального времени:

tail -f access.log 

Выводы

Файлы журналов содержат полезную информацию о проблемах с сервером и о том, как посетители взаимодействуют с вашим сайтом.

Apache имеет очень настраиваемую систему ведения журнала, которая позволяет настраивать журналы доступа и ошибок в соответствии с вашими потребностями.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

On one Linux Server running Apache and PHP 5, we have multiple Virtual Hosts with separate log files. We cannot seem to separate the php error_log between virtual hosts.

Overriding this setting in the <Location> of the httpd.conf does not seem to do anything.

Is there a way to have separate php error_logs for each Virtual Host?

Philip Raath's user avatar

asked Aug 1, 2008 at 18:37

Michael Stum's user avatar

Michael StumMichael Stum

178k117 gold badges400 silver badges535 bronze badges

If somebody comes looking it should look like this:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>

This is for development only since display_error is turned on. You will notice that the Apache error log is separate from the PHP error log. The good stuff is in php.error.log.

Take a look here for the error_reporting key http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

tirenweb's user avatar

tirenweb

31k73 gold badges185 silver badges303 bronze badges

answered Aug 26, 2010 at 15:29

Clutch's user avatar

5

To set the Apache (not the PHP) log, the easiest way to do this would be to do:

<VirtualHost IP:Port>
   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log
</VirtualHost>

If there is no leading «/» it is assumed to be relative.

Apache Error Log Page

demonkoryu's user avatar

answered Aug 1, 2008 at 19:58

helloandre's user avatar

helloandrehelloandre

10.5k8 gold badges47 silver badges64 bronze badges

2

I usually just specify this in an .htaccess file or the vhost.conf on the domain I’m working on. Add this to one of these files:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"

7ochem's user avatar

7ochem

2,1831 gold badge34 silver badges42 bronze badges

answered Aug 2, 2008 at 1:10

Kevin's user avatar

KevinKevin

13k11 gold badges55 silver badges76 bronze badges

4

The default behaviour for error_log() is to output to the Apache error log. If this isn’t happening check your php.ini settings for the error_log directive. Leave it unset to use the Apache log file for the current vhost.

Tanjim Ahmed Khan's user avatar

answered Aug 1, 2008 at 22:20

Mat's user avatar

MatMat

6,6947 gold badges35 silver badges39 bronze badges

1

Don’t set error_log to where your syslog stuff goes, eg /var/log/apache2, because they errors will get intercepted by ErrorLog. Instead, create a subdir in your project folder for logs and do php_value error_log "/path/to/project/logs". This goes for both .htaccess files and vhosts. Also make sure you put php_flag log_errors on

Sandesh's user avatar

Sandesh

1,1903 gold badges23 silver badges41 bronze badges

answered Apr 2, 2010 at 20:50

rkulla's user avatar

rkullarkulla

2,4941 gold badge18 silver badges16 bronze badges

1

Try adding the php_value error_log '/path/to/php_error_log to your VirtualHost configuration.

Peter Mortensen's user avatar

answered Aug 29, 2008 at 6:13

hoyhoy's user avatar

hoyhoyhoyhoy

6,2817 gold badges38 silver badges36 bronze badges

php_value error_log "/var/log/httpd/vhost_php_error_log"

It works for me, but I have to change the permission of the log file.

or Apache will write the log to the its error_log.

Yes, you can try,

php_value error_log "/var/log/php_log" 

in .htaccess or you can have users use ini_set() in the beginning of their scripts if they want to have logging.

Another option would be to enable scripts to default to the php.ini in the folder with the script, then go to the user/host’s root folder, then to the server’s root, or something similar. This would allow hosts to add their own php.ini values and their own error_log locations.

akash's user avatar

akash

22.7k11 gold badges59 silver badges87 bronze badges

answered Sep 22, 2008 at 23:29

James Hartig's user avatar

James HartigJames Hartig

1,0091 gold badge9 silver badges20 bronze badges

My Apache had something like this in httpd.conf. Just change the ErrorLog and CustomLog settings

<VirtualHost myvhost:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>

answered Aug 9, 2008 at 2:51

ejunker's user avatar

ejunkerejunker

10.8k11 gold badges41 silver badges41 bronze badges

1

You can try:

    <VirtualHost myvhost:80>
       php_value error_log "/var/log/httpd/vhost_php_error_log"
    </Virtual Host>

But I’m not sure if it is going to work. I tried on my sites with no success.

Tanjim Ahmed Khan's user avatar

answered Sep 22, 2008 at 23:22

Create Simple VirtualHost:

example hostname:- thecontrolist.localhost

  1. C:\Windows\System32\drivers\etc

    127.0.0.1 thecontrolist.localhost in hosts file

  2. C:\xampp\apache\conf\extra\httpd-vhosts.conf

    <VirtualHost *>
      ServerName thecontrolist.localhost
      ServerAlias thecontrolist.localhost
      DocumentRoot "/xampp/htdocs/thecontrolist"
      <Directory "/xampp/htdocs/thecontrolist">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
      </Directory>
    </VirtualHost>
    
  3. Don’t Forget to restart Your apache.
    for more check this link

oguz ismail's user avatar

answered May 31, 2018 at 6:58

Parveen Chauhan's user avatar

apache 2 — Перевод на русский — примеры английский

На основании Вашего запроса эти примеры могут содержать грубую лексику.

На основании Вашего запроса эти примеры могут содержать разговорную лексику.

This won’t work with apache 2 though.

Но это не будет работать с apache 2.

This package provides the documentation for Apache 2.

Данный пакет предоставляет документацию к Apache 2.

instead (Apache 2 only), which does all the compression in memory — sensible.

(только для Apache 2), который производит все операции в оперативной памяти.

When running in a threaded model, especially with

Apache 2, a segmentation fault can take out a whole process and hence create a denial of service for the whole server. При запуске в многопотоковом режиме, особенно в среде Apache 2, ошибка сегментации может подействовать на весь процесс и вызвать отказ в обслуживании всего сервера.

Предложить пример

Другие результаты

Oxwall software requires a web server capable of running PHP 5.3 or higher, Apache HTTP Server 2 or higher and MySQL 5.0 or higher.

Oxwall требуется для работы веб-сервер способный работать с PHP 5.2.6 или выше, Apache 2 или выше и MySQL 5.0 или выше.

In mid-2006, however, the OSI’s License Proliferation Committee found it «redundant with more popular licenses», specifically version 2 of the Apache Software License.

В середине 2006 года комитет OSI отметил лицензию излишней, когда существуют аналогичные и более популярные (например, Apache Software License второй верии).

Mahmoud Abd Rabbo al-Ajrami’s home was directly hit for the first time on 2 or 3 January 2009, according to him by tank shells and by missiles fired by Apache helicopters, which seriously damaged external and internal walls.

Первый прямой удар по дому Махмуда Абд Раббо аль-Аджрами был нанесен 2 или 3 января 2009 года; по его словам, с этой целью использовались танковые снаряды и ракеты, выпущенные с вертолетов «Апач«, которые серьезно повредили внешние и внутренние стены здания. into?) 2 parts: First part runs on my computer (also PHP+MySQL under apache. Галарея которую я сделал в это обновление достаточно необычная штука: управление фотками на локальном компьютере (тоже PHP+MySQL+apache.

PHP: Apache 2.

x на Unix системах I have successfully installed Apache 2.2.11 and PHP 5.2.8 under Red Hat 9.0 on a Pentium 166 with 32 MB of RAM.

While I used RH9, the worst possible case, these notes are probably good for RH-based distributions too (Red Hat Enterprise, Fedora, CentOS…)

If you want to install MySQL, it needs to be installed before PHP because PHP requires some libraries be available.

One think important when picking up a binary distribution of MySQL is to download all four packages: MySQL-server, MySQL-devel, MySQL-client and MySQL-shared. Note: The MySQL was bundled with PHP 4 but is not anymore in PHP 5.

Then you need to install Apache before PHP, because again PHP needs some libraries be available. I installed Apache 2 from source, using the very last version available, which is 2.2.11.

I installed PHP 5.2.8 from source. Here, I had a number of problems, but none which I could not resolve easily, some of them with a little help from different forums I found through Google.

Rembember: When it says you need a package named xyz and you notice there is also one named xyz-devel, grab it.

Most of the packages I got from:
http://legacy.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/
A similar page exists for other versions of Red Hat
and:
http://rpmfind.net/
This site has an updated version of some of the packages. Make sure to use only the one labeled for you version (in my case, Red Hat 9.0) or it will not likely work.

You already have glibc and glibc-common installed, but you need to get glibc-devel and glibc-kernheaders. Make sure to match glibc’s version (rpm -q glibc). Note: When it says kernel-header is a required dependency, that’s glibc-kernheader (not kernel-source). You will also need binutils (no need to match the version), and gcc and cpp (version must match).

You need zlib-devel (zlib is probably already installed, match the version you have).

If you install the GD extension, the actual library is already bundled with PHP 5 (use that one, they have done some changes in there, so don’t upgrade), but you will need to install libpng and libpng-devel (match version, or disable in configure if you don’t want) and libjpeg (no -devel with that one).

You will also need libxml2. Now there were a problem, because PHP requires libxml2 be 2.6 or greater, but Red Hat only supplied 2.5.4-1 for RH9 (if you have a more recent distro, you might be more lucky). After looking for a while, I decided to grab the source code for the most recent distribution at the official website (http://xmlsoft.org/) and compiled.

Hope my post is useful to someone. Please, share your experience when compiling/installing for your particular platform and setup. Remember how hard it’s been for you the very first time. I confess, my very first server installation took me nearly a week and I was glad others helped me.

Настройка виртуальных хостов в Apache 2 ▷ Virtualhost Apache в Ubuntu, Linux, Debian

Если возникла необходимость размещения на Linux VPS сервере нескольких сайтов, то Apache для этих целей предоставляет возможность настройки виртуальных хостов (virtual hosts). Виртуальные хосты бывают двух видов: name-based virtual hosts, то есть привязанные к доменному имени, и IP-based virtual hosts, то есть привязанные к IP-адресу. Виртуальные хосты первого типа используют разные имена для одного IP-адреса, а второго типа – используют для каждого сайта отдельный IP-адрес. Создание виртуальных хостов в Apache необходимы, если на вашем сервере есть несколько сайтов, а их настройка необходима для корректного отображения всех сайтов.

Наиболее распространенным является использование виртуальных хостов на базе имен (name-based virtual hosts), привязанных к одному IP-адресу. Таким образом, можно хранить множество сайтов на одном IP.

Самым простым способом добавления и последующей настройки виртуальных хостов Apache является редактирование конфигурационного файла веб-сервера, который имеет разные названия и места расположения в зависимости от операционной системы:

В Red-Hat/CentOS/Fedora:

/etc/httpd/conf/httpd.conf 

Debian/Ubuntu:

/etc/apache2/apache2.conf

Вторым способом настройки является использование собственных

. conf файлов, которые должны размещаться по пути:

В Red-Hat/CentOS/Fedora:

/etc/httpd/conf.d/filename.conf, 

Debian/Ubuntu:

/etc/apache2/conf.d/filename.conf. 

Как правило, в конфигурационном файле httpd.conf или apache2.conf раздел управления виртуальными хостами располагается в самом конце. Для добавления виртуального хоста нужно будет открыть этот файл и раскомментировать в нём (убрать #) директиву NameVirtualHost *:80 (Аргумент * обозначает «все имена хостов»). Если будет использоваться способ размещения конфигурации в

conf.d, то указанную директиву не нужно раскомментировать, а следует определить её в самом создаваемом файле.

После NameVirtualHost следует блок VirtualHost *:80. Подобные блоки и являются конфигурацией ваших виртуальных хостов. Выглядит это все примерно следующим образом:

NameVirtualHost *:80

<Directory var/www/>
AllowOverride All
Options All
</Directory>

<VirtualHost *:80>
    ServerAdmin username@site1. com
    DocumentRoot /var/www/site1.ru
    ServerName site1.ru
    ServerAlias www.site1.ru
    ErrorLog logs/site1.ru-error_log
    CustomLog logs/site1.ru-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/site2.ru
    ServerName site2.ru
    ServerAlias www.site2.ru	
    ErrorLog logs/site2.ru-error_log
    CustomLog logs/site2.ru-access_log common
</VirtualHost>

Именно здесь и производятся все настройки виртуальных хостов, а также, подключение или отключение определенных опций.

Рассмотрим более детально, за что отвечает каждая указанная выше директива.

1. Директива ServerAdmin указывает электронный адрес администратора сервера, на который приходят все уведомления с хоста, касающиеся его администрирования.

2. Директива DocumentRoot указывает корневую директорию с файлами сайта, которые должны будут выдаваться веб-сервером клиенту (браузеру).

3. Директива Server Name определяет имя хоста, по запросу которого должны будут выдаваться файлы, расположенные в DocumentRoot.

4. Директива ServerAlias служит для задания альтернативных имен хоста (алиасов, псевдонимов), на которые он откликается.

5. Директива ErrorLog задает файлы протоколов ошибок для каждого хоста, а CustomLog – файлы протоколов для всего остального, кроме ошибок.

До блоков с виртуалхостами, как вы заметили, есть еще запись:

<Directory var/www/>
AllowOverride All
</Directory>

В тегах <Directory> </Directory> заключается перечень директив (параметров), которые будут применяться к конкретной директории, которая указывается в открывающем теге. В примере выше – это var/www/. Указанная директива AllowOverride указывает, использовать ли файлы .htaccess и если да, то какие глобальные директивы веб-сервера в можно переопределять в таких файлах. В представленном выше примере значение AllowOverride установленно в All, что разрешает обрабатывать файлы .htaccess и все указанные в нём директивы. Существуют и другие возможные значения:

AuthConfig – разрешает использовать директивы авторизации (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, и т.д..).

FileInfo – разрешает использовать директивы, управляющие типами документов (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..).

Indexes — разрешает использовать директивы для управления индексацией каталогов (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..).

Limit — разрешает использовать директивы управления доступом (allow, deny и order).

Options — разрешает использовать директивы, с помощью которых можно управлять специфическими особенностями каталога (Options и XBitHack).

Это одна из многих возможных директив, с которыми вы можете ознакомиться на сайте разработчиков.

После сохранения изменений в файле необходимо проверить новые настройки на наличие ошибок. Для выполнения проверки можно использовать следующие команды:

apachectl configtest
apachectl -S
apachectl -d

Если получено сообщение “Syntax OK”, значит ошибок нет и можно перезагружать веб-сервер, чтобы применились изменения. Сделать это можно с помощью следующих команд:

Red-Hat/CentOS/Fedora:

service httpd restart

или

/etc/init.d/ httpd restart

Debian/Ubuntu:

service apache2 restart

или

/etc/init.d/apache2 restart

Далее вы можете столкнуться со следующей проблемой. При поступлении запроса Apache проходит по всему списку виртуальных хостов в поисках соответствующего, и, если не находит соответствия, выдает первый по порядку хост. Чтобы устранить данную неприятность, специалисты придумали так называемую секцию-заглушку, которую следует вставить перед первой секцией VirtualHost реального сайта. Выглядит она приблизительно следующим образом:

<VirtualHost *:80> 
   ServerName default
   DocumentRoot /var/www/default 
</VirtualHost> 

Таким образом, все неправильные запросы будут отсылаться по пути var/www/default, где можно создать индексную страницу, которая будет сообщать о неправильном запросе.

Также, Apache по умолчанию не имеет доступа к вашим домашним директориям, а только к директории /var/www. Если вы используете на своем сервере SElinux, то для предоставления Apache доступа к домашним директориям используйте следующие команды:

setsebool -P httpd_enable_homedirs 1

или

setsebool -P apache2_enable_homedirs 1

Для того чтобы Apache имел доступ к определенной директории, например, к /home/mydir следует использовать команду:

chcon -R -t httpd_sys_content_t /home/mydir

или

chcon -R -t apache2_sys_content_t /home/mydir

При отключенном SELinux для предоставления Apache доступа к той или иной домашней директории сайта, вам нужно будет вручную отредактировать его конфигурационный файл (/etc/httpd/conf/httpd. conf в CentOS/Fedora или /etc/apache2/apache2.conf в Debian/Ubuntu).

Открыв конфигурационный файл веб-сервера для редактирования, найдите строку DocumentRoot (при использовании редактора nano ее можно отыскать с помощью комбинации клавиш Ctrl+W). Замените значение в кавычках /var/www/html на абсолютный путь к домашней директории сайта (например, /home/username/site.com). Сохраните изменения и выйдите из меню редактора (Ctrl+O и Ctrl+X). Перезапустите Apache.

Если у вас на VPS установлена ОС Debian/Ubuntu, то править строку DocumentRoot необходимо в файле /etc/apache2/sites-available/default. Откройте его для редактирования и замените стандартное значение /var/www на абсолютный путь к домашней директории сайта. Выполните перезапуск веб-сервера.

На этом базовая настройка виртуальных хостов окончена.

Apache 2 инструменты администрирования на Ubuntu или Windows

Я совершенно новичок в Apache и Ubuntu, есть ли инструменты администратора, где доступные функции, функции и настройки более доступны? Мне очень трудно делать даже самые простые вещи. … пожалуйста, помогите.

Овации.

apache
apache2
sysadmin
admin
Поделиться Источник Snackmoore     01 февраля 2010 в 10:40

3 ответа


  • Несколько Django приложений, использующих virtualenv на Apache 2 на Ubuntu 11

    Я успешно настроил одно приложение Django, используя virtualenv на Ubuntu и Apache 2, используя директиву WSGIPythonHome , указывающую на мое местоположение virtualenv . Теперь мне нужно создать отдельное приложение Django, которое будет работать на Apache на другом порту на том же сервере Ubuntu….

  • Как установить Apache 2 на Windows 10?

    Я хочу установить сервер Apache 2 в системе Windows 10. Официальная документация ( https: платформа//httpd.apache.org/документы/2.4//windows.html ) говорится, что: Серверный проект Apache HTTP сам по себе не предоставляет двоичные версии программного обеспечения, только исходный код Чтобы иметь. ..



4

Попробуйте Webmin-хороший веб-инструмент GUI. На их странице загрузки есть пакет .deb для ubuntu.

http://webmin.com

Поделиться Sheriff Md     21 января 2011 в 17:38



4

Однако apacheConf доступен для большинства вкусов Linux:

1) он игнорирует специфичный для дистрибутива макет конфигурационных файлов и реализует свою собственную структуру

2) это просто инструмент для обновления конфигурации — на самом деле он не говорит вам, что означают параметры конфигурации

3) как и любой графический инструмент, он абстрагирует фактические данные (в данном случае конфигурацию apache), которыми вы манипулируете

4) существует по крайней мере 3 различных программы под брендом apacheConf

http://www.apache-gui.com/apache-linux. html

http:/ / www.redhat.com / документы/руководства/linux/RHL-7. 2-Manual/custom-guide/apacheconf.html

и инструмент настройки в комплекте с Mandriva

5) он ограничивает то, что вы действительно можете настроить для дизайна на UI (например, RedHat apacheConf позволяет установить только один адрес прослушивания

Наличие кнопок для нажатия не поможет вам понять, чего вы на самом деле пытаетесь достичь (если только ваша цель не является MCSE, конечно ;). Я бы посоветовал вам взять хорошую книгу по Apache config и найти время, чтобы прочитать ее.

C.

Поделиться symcbean     01 февраля 2010 в 15:39



3

Вот несколько вариантов, которые следует рассмотреть, чтобы помочь вам лучше понять, как работает Apache и как администрировать / настраивать сервер:

  1. Прочтите официальное руководство
  2. Взгляните на такой коммерческий инструмент, как ApacheConf
  3. Задавайте здесь вопросы о конкретных проблемах, которые у вас возникли

HTH,

— Эй Джей

Поделиться AJ.     01 февраля 2010 в 13:57


  • Лучшая производительность от windows virtualboxes на ubuntu или от ubuntu virtualboxes на windows

    Я планирую разработать автоматизированное тестовое решение с несколькими машинами windows и несколькими машинами ubuntu, которые выполняют связанные/взаимозависимые задачи. Чтобы начать проект, я хотел бы иметь одну или две машины windows (виртуальные) и несколько машин ubuntu (виртуальные),…

  • Как остановить сервер apache на ubuntu

    Я пытаюсь настроить свой проект django на использование nginx в качестве его webserver на экземпляре EC2 Ubuntu следующим образом http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html . В рамках этого мне нужно установить/проверить, активен ли nginx с: sudo apt-get install…


Похожие вопросы:


apache 2 не удается запустить на Ubuntu 10

Я-машина Ubuntu с Apache 2 виртуальными хостами. Я не могу диагностировать эту проблему, потому что мой журнал ошибок, похоже, не отражает эту проблему $ sudo /etc/init.d/apache2 start * Starting…

Перемещение Rails Deployment с Windows на Ubuntu

Я начал разрабатывать свое приложение Rails для Windows (я знаю, плохая идея). Теперь я хочу использовать Linux при развертывании приложения. Вопрос: Как мне перенести свое приложение в Windows с…

Виртуальная машина: Windows 7 на Ubuntu 11 или Ubuntu 11 на Windows 7?

Я хотел начать с разработки Android. Я намерен заниматься этим как хобби, и это не является моей основной работой в качестве студента. Я использую такие программы, как Matlab, COMSOL, MS Office и т….

Несколько Django приложений, использующих virtualenv на Apache 2 на Ubuntu 11

Я успешно настроил одно приложение Django, используя virtualenv на Ubuntu и Apache 2, используя директиву WSGIPythonHome , указывающую на мое местоположение virtualenv . Теперь мне нужно создать…

Как установить Apache 2 на Windows 10?

Я хочу установить сервер Apache 2 в системе Windows 10. Официальная документация ( https: платформа//httpd.apache.org/документы/2.4//windows.html ) говорится, что: Серверный проект Apache HTTP сам…

Лучшая производительность от windows virtualboxes на ubuntu или от ubuntu virtualboxes на windows

Я планирую разработать автоматизированное тестовое решение с несколькими машинами windows и несколькими машинами ubuntu, которые выполняют связанные/взаимозависимые задачи. Чтобы начать проект, я…

Как остановить сервер apache на ubuntu

Я пытаюсь настроить свой проект django на использование nginx в качестве его webserver на экземпляре EC2 Ubuntu следующим образом…

Apache шторм на windows 8 или ubuntu (VMware игрок)?

Я хочу установить Apache Storm на Windows 8, но не уверен, что это лучший выбор и что для этого нужно. Или вы бы порекомендовали установить Storm на VM (VMware плеер) с Ubuntu вместо этого? В конце…

HTTP/2 на Apache (Ubuntu 14.04) не работает

Я перепробовал много учебников, как включить http2 на сервере apache; например: http://pixelinc.co/ubuntu-14-04-3-apache-http-2-web-server-setup /…

Не могу сделать свой Apache сервер на Ubuntu онлайн

У меня возникли некоторые проблемы при попытке настроить мой сервер Apache… Я объясню, что хочу сделать и что происходит. Прежде всего, извините за мой grammar — не мой родной язык! Я использую…

White Shark Apache 2 GMK-1901 Black клавиатура rdveikals.lv

Rīga, Buļļu 51b (Noliktava) Р.д.: 9-19, Сб.: 10-17, Вс.: 10-17 22 февраля Выбрать
Rīga, Maskavas 240 Р.д.: 10-20, Сб.: 10-18, Вс.: 10-17 22 февраля Выбрать
Rīga, Stacijas laukums 2 (t/c Origo) Р.д.: 10-21, Сб.: -, Вс.: — 24 февраля Выбрать
Rīga, Stacijas laukums 4 (t/c Origo) Р.д.: 10-21, Сб.: 10-18, Вс.: 10-17 1 марта Выбрать
Rīga, Kurzemes pr. 1a (t/c Damme) Р.д.: 10-21, Сб.: 10-18, Вс.: 10-18 22 февраля Выбрать
Rīga, Vienības gatve 194a (t/c Aleja) Р.д.: 10-21, Сб.: 10-19, Вс.: 10-18 22 февраля Выбрать
Rīga, Dreiliņi, Biķeru iela 4 (t/c Sāga) Р.д.: 10-21, Сб.: 10-17, Вс.: 10-17 1 марта Выбрать
Ķekava, Rīgas 22A (t/c Liiba) Р.д.: 9-20, Сб.: 10-17, Вс.: — 22 февраля Выбрать
Aizkraukle, Gaismas 35 (t/c IGA Centrs) Р.д.: 10-18, Сб.: -, Вс.: — 24 февраля Выбрать
Alūksne, Pils 64 Р.д.: 9-18, Сб.: 9-13, Вс.: — 24 февраля Выбрать
Balvi, Tautas 1 Р.д.: 9-18, Сб.: 9-13, Вс.: — 24 февраля Выбрать
Cēsis, Raiņa iela 26/28 (t/c GLOBUSS) Р.д.: 9-19, Сб.: 9-18, Вс.: 10-16 22 февраля Выбрать
Daugavpils, Cietokšņa 60 (t/c Ditton nams) Р.д.: 9-19, Сб.: 9-16, Вс.: 9-16 22 февраля Выбрать
Daugavpils, Saules 28 Р.д.: 9-18, Сб.: 9-15, Вс.: — 22 февраля Выбрать
Dobele, Baznīcas 14 (t/c Maxima) Р.д.: 9-20, Сб.: 9-16, Вс.: — 22 февраля Выбрать
Gulbene, O.Kalpaka 27 Р.д.: 9-18, Сб.: 9-13, Вс.: — 24 февраля Выбрать
Jēkabpils, Vienības 7 (t/c Sēlija) Р.д.: 9-20, Сб.: -, Вс.: — 22 февраля Выбрать
Jelgava, Driksas 4 (t/c Pilsētas pasāža) Р.д.: 10-20, Сб.: 10-17, Вс.: 10-16 22 февраля Выбрать
Krāslava, Tirgus 1 Р.д.: 9-18, Сб.: 9-13, Вс.: — 24 февраля Выбрать
Kuldīga, Sūru 2 (t/c Rimi) Р.д.: 9-19, Сб.: 9-16, Вс.: — 22 февраля Выбрать
Liepāja, Klaipēdas 104C (t/c Baata) Р.д.: 10-20, Сб.: 10-17, Вс.: 10-17 22 февраля Выбрать
Ogre, Rīgas 23 (t/c Dauga) Р.д.: 10-20, Сб.: 10-18, Вс.: — 22 февраля Выбрать
Preiļi, Brīvības 2 Р.д.: 9-18, Сб.: 9-13, Вс.: — 24 февраля Выбрать
Rēzekne, Dārzu 14a (t/c Elfi) Р.д.: 9-18, Сб.: 9-15, Вс.: 9-15 22 февраля Выбрать
Saldus, Striķu 10c (t/c Akvārijs) Р.д.: 10-19, Сб.: -, Вс.: — 22 февраля Выбрать
Sigulda, Strēlnieku 2 (t/c Šokolāde) Р.д.: 10-19, Сб.: 10-16, Вс.: — 24 февраля Выбрать
Talsi, Rīgas 8 (t/c Jāņa centrs) Р.д.: 10-19, Сб.: -, Вс.: — 22 февраля Выбрать
Tukums, Pasta 14 (t/c Rimi) Р.д.: 9-20, Сб.: 9-17, Вс.: — 22 февраля Выбрать
Valmiera, Rīgas 4 (t/c Valleta) Р.д.: 10-19, Сб.: 10-16, Вс.: — 22 февраля Выбрать
Ventspils, Kuldīgas 19 Р.д.: 10-18, Сб.: 10-16, Вс.: — 24 февраля Выбрать
Ventspils, Lielais prosp. 3/5 (t/c Tobago) Р.д.: 10-21, Сб.: 10-17, Вс.: — 24 февраля Выбрать

92109,24.17017″ data-id=»13″ data-city=»city_1″ data-image=»images/rdshops/rdshop_13.jpg»>

9473652,24.1215883″ data-id=»74″ data-city=»city_1″ data-image=»images/rdshops/rdshop_74.jpg»>

8966479,24.078727″ data-id=»72″ data-city=»city_1″ data-image=»images/rdshops/rdshop_72.jpg»>

restart и команды start и stop. Как перезагрузить сервер

Казалось-бы, такая простая задача, может поставить некоторых новых пользователей Linux в тупик. Если вы задаётесь вопросом, как перегрузить apache в linux, то эта статья для вас.

Apache – в основном используется для обслуживания статических и динамических страниц в сети интернет. Многие веб-приложения разработаны с учетом среды и функций, предоставляемых Apache. Запустить или перезапустить web-сервер Apache можно используя следующие команды…

Во-первых, войдите на свой сервер используя любой ssh клиент:

После входа на сервер, используйте следующие команды, в зависимости от системы сервера.

Команды используемые на Debian/Ubuntu Linux подобных системах

Используйте эти команды на последних версиях Debian Linux не ниже 8.x+ версии или Ubuntu Linux не ниже 15.04+версии:

## Старт сервера Apache2##
systemctl start apache2.service
## Остановка сервера Apache2 ##
systemctl stop apache2.service
## Перезапуск сервера Apache2 ##
systemctl restart apache2.service

## Старт сервера Apache2##

systemctl start apache2.service

## Остановка сервера Apache2 ##

systemctl stop apache2.service

## Перезапуск сервера Apache2 ##

systemctl restart apache2.service

Команды используемые на CentOS/RHEL (Red Hat) Linux подобных системах

## Старт сервера Apache2 ##
systemctl start httpd.service
## Остановка сервера Apache2 ##
systemctl stop httpd.service
## Перезапуск сервера Apache2 ##
systemctl restart httpd.service

## Старт сервера Apache2 ##

systemctl start httpd.service

## Остановка сервера Apache2 ##

systemctl stop httpd.service

## Перезапуск сервера Apache2 ##

systemctl restart httpd.service

Основной метод для управления Стартом/Перезагрузкой/Остановкой web-сервера Apache на Linux/Unix системах

Используется следующий синтаксис команд:

## Остановка сервера ##
apachectl -k stop
## Перезагрузка сервера ##
apachectl -k restart
## Старт сервера ##
apachectl -f /path/to/your/httpd.conf
apachectl -f /usr/local/apache2/conf/httpd.conf

## Остановка сервера ##

apachectl -k stop

## Перезагрузка сервера ##

apachectl -k restart

## Старт сервера ##

apachectl -f /path/to/your/httpd.conf

apachectl -f /usr/local/apache2/conf/httpd.conf

Как создать виртуальные хосты в Apache 2 под Mac Os

Хотя я и заядлый приверженец Nginx’a сегодня я расскажу вам как настроить виртуальные хосты в Apach’е на вашем маке. Вдруг вас тоже судьба как и меня занесла в проект где нужно пошаманить с апачем.

На самом деле виртуальные хосты в апаче добавляются так же просто как и в nginx’е. Для начала вам необходимо раскоментить строку отвечяющую за хосты. Для этого открывем файл 

sudo vi /etc/apache2/httpd.conf

Находим строку:

# Virtual hosts

#Include /private/etc/apache2/extra/httpd-vhosts.conf

И расскоменчиваем:

# Virtual hosts

Include /private/etc/apache2/extra/httpd-vhosts.conf

То-же самое делаем со строкой:

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

Теперь смело можете добавлять ваши новые хосты в hosts.conf и настлаждаться работой с вашим локальным веб сервереом.

sudo vi /etc/apache2/extra/httpd-vhosts.conf

Пример хоста:

<VirtualHost *:80>
        ServerName yii.loc
        DocumentRoot /Users/mark/server/yii/web

        <Directory /Users/mark/server/yii/web>
            Options Indexes FollowSymlinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog /Users/mark/server/yii/logs/myhost-error_log
        CustomLog /Users/mark/server/yii/logs/myhost-access_log combined
</VirtualHost>

Как вы могли заметить я прописал пути к моей домашней дерриктории юзера в маке, создал там папку server куди и закинул всю структуру локального сайта всключая логи.

Что бы наш сайт заработал осталось только вписато домен myhos.local в хост фал вашего мака с направлением на локалхост и конечноже перезагрузить апач:

sudo apachectl restart

Скорей всего вы можете столкнуться с ошибкой 403 потому что файлы расположенные в домашней дериктории юзера принадлежать вашему юзеру, а апач работает от имени другого. Что бы дать права на доступ апачу просто примените права 775 к вашей папке

chmod -R 755 /Users/mark/server/myhost

Не забудьте заменить пользователя «mark» на вашего юзера системы.

Оценка APACHE II — MDCalc

Почему вы разработали систему APACHE?
Когда мы начали [разработку APACHE] в 1970-х, DRG [группы, связанные с диагнозом] только появлялись на сцене, и, очевидно, они были ориентированы на бизнес и финансовые аспекты здравоохранения. Связь с клинической картиной мало. Но люди полагались на DRG как на способ классификации и идентификации пациентов, особенно в отделении интенсивной терапии. Поэтому в то время было важно не столько заново изобрести диагностическую систему, сколько поговорить о том, как пациенты поступают с разной степенью тяжести.А в то время там действительно ничего не было. Люди использовали бы один анализ крови, например, уровень лактата в крови, а затем выбирали бы порог выше этого или ниже этого. Но определение пороговых значений — это проигрышный метод, когда у вас есть непрерывное измерение, такое как лактат в крови.

Затем Брайан Дженнетт создал шкалу комы Глазго и очень преуспел в этом. Но это относилось только к пациентам с травмами головы и в экстренных случаях.

Итак, мы начали изучать роль использования физиологии пациента в отделении интенсивной терапии, а затем разработать комплексную меру тяжести, которая могла бы по крайней мере начать отличать одного пациента от другого лучше, чем DRG.Нас неожиданно хорошо приняли. На нашем первом конгрессе по интенсивной терапии в конце 70-х был необычайно большой интерес, и мы начали заниматься этим. Мы развили это — у него было большое количество переменных, и даже что-то столь же простое, как уравнения, которые мы разработали для APACHE в то время, вам нужно было ввести их в компьютер в пятницу вечером и ждать до утра понедельника. Мы имели дело с технологией, которая все еще не могла обрабатывать большие объемы вычислений. Поэтому мы решили отточить APACHE II, чтобы положить его на одну сторону листа бумаги, и я думаю, что это была самая важная эффективность, которую мы добились.Я помню, у нас был научный сотрудник, который путешествовал по Гималаям, и она была госпитализирована в Куала-Лумпуре, она сказала, что в больнице ничего нет, немного кислорода, нет матрасов. Но там был APACHE II, приклеенный к стене. Итак, мы знали, что есть что-то в простоте использования этого.

Была большая стратегическая дискуссия о том, должны ли мы просто остановиться, а затем просто постоянно обновлять новую базу данных, потому что, как мы теперь знаем, с системами подсчета баллов любого типа системы классификации это не похоже на вино, это не поправляйся с возрастом.Вам нужна актуальная база данных. APACHE II опубликовал пару лет назад, насколько изменились результаты в отделениях интенсивной терапии по всему спектру, и у нас дела идут лучше, чем раньше, поэтому базы данных, созданные много лет назад, на самом деле не отражают современные результаты.

Но в то время технологии становились намного лучше, компьютеры начинали работать быстрее, у нас было намного больше компьютерной скорости, и мы предвидели будущее даже в конце 80-х и начале 90-х годов, когда у нас может быть алгоритмическая -система, которая будет автоматически получать данные о людях и сможет помочь им принять важные решения в зависимости от того, насколько болен пациент, работает ли терапия, как долго пациент должен оставаться в больнице и т. д.Это был последний раз, когда страна до недавнего времени пыталась добиться некоторого прогресса в области интероперабельности в технологиях здравоохранения.

Но тогда мы не знали. Мы с нетерпением ждали будущего, в котором люди будут собирать данные и использовать системы оценки, как они все еще используют MDCalc, и смогут обращаться к компьютеру, как это делают сейчас алгоритмы Google. Он постоянно узнает из базы данных, кто вы, что вы просите и т. Д. И мы действительно думали, что у вас может быть система, которая была бы динамической и основанной на алгоритмах, которая могла бы начать оказывать некоторую поддержку принятия решений, что я и многие другие считали. нужный.

И, конечно же, произошло то, что, короче говоря, за десятилетия, прошедшие с момента публикации APACHE II, лично меня чрезвычайно разочаровало, что мы добились такого небольшого прогресса в продвижении медицинских технологий вперед с возможностью взаимодействия и взаимодействия. с современными компьютерами. В итоге мы не смогли достичь этих очень амбициозных целей. Я думаю, что это продолжается, она хорошо обновляется, и с годами полная система APACHE IV, которая является последней версией с последними алгоритмами и базой данных, на самом деле используется не так часто, как APACHE II.

Итак, оглядываясь назад, если бы мы знали, что будущее будет столь же ограниченным в развитии технологий здравоохранения, я думаю, мы бы сказали, давайте останемся с APACHE II и давайте просто попробуем обновить базу данных, чтобы она была совместимы с современными результатами. Хотя мы разработали такие системы, как APACHE IV, которые намного более чувствительны и обладают гораздо большими возможностями, чем APACHE II, возможность автоматической загрузки этих алгоритмов все еще крайне ограничена. Поэтому, если вы используете APACHE, убедитесь, что вы используете его с базой данных, вашей или чужой, которая использует современных пациентов, чтобы соотношение между оценкой и тем, что происходит с людьми, со временем менялось.Вы можете использовать ту же оценку, но вы хотите, чтобы текущие пациенты и их результаты были в системе.

Неспособность здравоохранения по какой-либо причине достичь того же уровня технологий, что и в банковском деле, в розничной торговле и во всех других крупных отраслях, будет рассматриваться как главный недостаток современности. Я не хочу комментировать, кто за это отвечает, но у нас есть ряд продуктов, которые исторически начинались в бизнесе, в финансовых офисах, и мы никогда не видели или никогда не хотели развивать способность общаться друг с другом.Это то, с чем мы, к сожалению, застряли.

О людях заботятся врачи, но не существует системы, которая была бы разработана в первую очередь для врачей. Принимая во внимание, что все эти сайты, которые так популярны — Google, Amazon, Apple, вы называете их — почему они так популярны? Потому что они получают информацию о том, чего хочет пользователь и что ему нужно. Пользователь — это человек, физическое лицо. Это не учреждение. Если бы только медицина смогла это увидеть и каким-то образом осуществить переход от разработки информационной системы для учреждения или практики к разработке ее для людей, которые ее используют.Я этого не видел.

Как установить и начать работу с Apache 2

Установите Apache 2 (для Windows)

HTTP-сервер

Apache, популярный веб-сервер промышленного уровня , бесплатно (с исходными кодами) предоставляется Apache Software Foundation (@ http://www.apache.org).

Материнский сайт для HTTP-сервера Apache: http://httpd.apache.org. В настоящее время доступно несколько производственных версий: 2.0, 2.2 и 2.4 (известные как Apache 2). Устаревший выпуск 1.3 (Apache 1) больше не поддерживается.

На момент переписывания (сентябрь 2014 г.) последним стабильным «исходным кодом» является версия 2.4.10 (вам нужно скомпилировать самостоятельно). Но последняя «двоичная» версия Windows — 2.2.25 (32-битная версия). Удивительно, но в пакетах AMP, таких как WampServer 2.5, есть Apache 2.4.9, в XAMPP 1.8.3 есть Apache 2.4.10 ?!

Загрузить:
С материнского сайта HTTP-сервера Apache http://httpd.apache.org ⇒ Выберите последнюю версию (2.4. xx ) ⇒ Загрузить ⇒ Двоичные файлы ⇒ Win32 ⇒ Выберите win32 с помощью openssl, e.г., « httpd-2.2.25-win32-x86-openssl-0.9.8y.msi «.

Прочтите руководство по установке @ http://httpd.apache.org/docs ⇒ «Документация 2.4 / 2.2» ⇒ «Справочное руководство, компиляция и установка».

Установить: запустить загруженный установщик.

  • Укажите свой «домен», «имя сервера» и «адрес электронной почты администратора».
    Для тестирования введите « test.com » в качестве имени домена, « localhost » в качестве имени сервера и что-нибудь для электронной почты администратора.Мы переконфигурируем их позже после установки.
  • Для тестирования выберите «Только для текущего пользователя, на порту 8000, при запуске вручную».
  • Выберите «типичную» установку.
  • Выберите каталог для установки. Предположу, что HTTP-сервер Apache установлен в каталоге « d: \ myProject \ apache2 ». В дальнейшем я буду обозначать установленный каталог Apache как « ».

После успешной установки вы получите следующие подкаталоги:

  • bin : содержит двоичные файлы (или исполняемые файлы), такие как Apache (« httpd.exe «) и Apache Monitor (» ApacheMonitor.exe «).
  • conf : содержит файлы конфигурации, такие как основной файл конфигурации « httpd.conf ».
  • manual : документация по HTTP-серверу Apache. Начните с « index.html » или « index.html.en «.
  • htdocs : корневой каталог документов Apache по умолчанию.

Настройка Apache 2

Файл конфигурации для HTTP-сервера Apache называется « httpd.conf «(в каталоге» \ conf «). Просмотрите файл конфигурации и проверьте следующие директивы:

  • Listen : Исходный « httpd.conf » использует TCP-порт 80 (предварительно назначенный по умолчанию для HTTP) для производства и 8000 для тестирования. Для тестирования вы можете выбрать номер порта от 1024 до 65535 (который не используется существующим приложением — вы можете выполнить команду « netstat », чтобы проверить существующие соединения).Мы запустим Apache на порту 8000.
    Слушайте  8000  
  • ServerName : Задайте имя хоста DNS или IP-адрес (чтобы узнать свой IP-адрес, выполните команду « ipconfig »), или имя вашего компьютера, или «localhost» (localhost предназначен для локального шлейфа) только при обратном тестировании, вы также можете использовать IP-адрес localhost 127.0.0.1), за которым следует номер порта, выбранный выше.
    ServerName  localhost: 8000  
  • ServerRoot : ваш установленный каталог Apache .
  • DocumentRoot : корневой каталог документов, то есть домашний каталог сервера. По умолчанию он установлен на « \ htdocs ».
    DocumentRoot " / htdocs"
     
    
    <Каталог />
        Параметры FollowSymLinks
        AllowOverride Нет
        Заказать отказать, разрешить
        Запретить всем
    
     
    
    <Каталог "D: /bin/Apache2.2/htdocs">
        Индексы опций FollowSymLinks
        AllowOverride Нет
        Заказать разрешить, запретить
        Разрешить от всех
     

Запуск / завершение работы Apache 2

Запустите сервер: исполняемый файл Apache называется « httpd.exe «, расположенный в» \ bin «. Чтобы отобразить меню справки и проверить все доступные параметры, запустите оболочку CMD и введите:

подсказка>  d: 
>  компакт-диск \ myProject \ apache2 \ bin 
  

>  httpd -h 
 

Прежде чем вы сможете запустить свой сервер, вам необходимо установить Apache Service , выполнив следующую команду (вам нужны права администратора для установки сервисов).

>  httpd -k установить  

Вы можете запустить Apache с:

>  httpd -k start  

Apache 2 предоставляет графический интерфейс Apache Monitor ApacheMonitor.exe » в « \ bin »), который можно использовать для запуска / остановки Apache после установки службы Apache. Монитор Apache запускается автоматически со значком на панели задач. В противном случае запустите « ApacheMonitor.exe ».

После запуска сервера Apache запустите веб-браузер и получите доступ к серверу, используя URL:

 http: //  ServerHostNameOrIPAddress :  порт  

Вы можете использовать localhost (IP-адрес 127.0.0.1) для тестирования локальной петли, если ваш браузер работает на той же машине, что и сервер.

http: // локальный: 8000 

Вы можете выключить сервер Apache с помощью Apache Monitor или с помощью команды:

>  httpd -k stop  

Вы можете удалить службу Apache с помощью:

>  httpd -k удалить  

Вы можете удалить «Apache Monitor» из списка «Запуск».

Если что-то пойдет не так …

  • Проверьте сообщение об ошибке на консоли Apache.
  • Проверьте файлы журнала в « logs \ errors.log ».
  • [TODO]

СПРАВОЧНИКИ И РЕСУРСЫ

  • Материнский сайт HTTP-сервера Apache @ www.apache.org
  • Документация Apache @ каталог « Руководство »

Как установить веб-сервер Apache в Ubuntu 18.04 [Краткое руководство]

Введение

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

В этом руководстве мы объясним, как установить веб-сервер Apache на ваш сервер Ubuntu 18.04. Более подробную версию этого руководства см. В разделе Как установить веб-сервер Apache в Ubuntu 18.04.

Предварительные требования

Перед тем, как приступить к работе с этим руководством, у вас должно быть следующее:

  • Ubuntu 18.04 и обычного пользователя без полномочий root с привилегиями sudo. Кроме того, вам потребуется включить базовый брандмауэр, чтобы блокировать второстепенные порты. Вы можете узнать, как настроить обычную учетную запись пользователя и брандмауэр для своего сервера, следуя нашему руководству по начальной настройке сервера для Ubuntu 18.04.

Когда у вас будет доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.

Шаг 1. Установка Apache

Apache доступен в репозиториях программного обеспечения Ubuntu по умолчанию, поэтому вы можете установить его с помощью обычных инструментов управления пакетами.

Обновите локальный индекс пакета:

  

Установите apache2 пакет:

  

Шаг 2 — Настройка брандмауэра

Проверить доступные профили приложений ufw :

  
  

Выход

Доступные приложения: Apache Apache Full Apache Secure OpenSSH

Давайте включим наиболее строгий профиль, который по-прежнему будет разрешать трафик, который вы настроили, разрешая трафик на порт 80 (обычный, незашифрованный веб-трафик):

  

Проверить изменение:

  
  

Выход

Статус: активен К действию от - ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) РАЗРЕШИТЬ В любом месте (v6) Apache (v6) РАЗРЕШИТЬ В любом месте (v6)

Шаг 3. Проверка веб-сервера

Проверьте систему инициализации systemd , чтобы убедиться, что служба запущена, набрав:

  
  • sudo systemctl статус apache2
  

Выход

● apache2.service - HTTP-сервер Apache Загружено: загружено (/lib/systemd/system/apache2.service; включено; предустановка поставщика: включено) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Активен: активен (работает) с Вт 2018-04-24 20:14:39 UTC; 9мин назад Основной PID: 2583 (apache2) Задач: 55 (лимит: 1153) CGroup: /system.slice/apache2.service ├─2583 / usr / sbin / apache2 -k start ├─2585 / usr / sbin / apache2 -k start └─2586 / usr / sbin / apache2 -k начало

Откройте целевую страницу Apache по умолчанию, чтобы убедиться, что программное обеспечение работает правильно через ваш IP-адрес:

  http: // ваш_сервер_ip
  

Вы должны увидеть Ubuntu 18 по умолчанию.04 Веб-страница Apache:

Шаг 4. Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальных хостов (аналогично серверным блокам в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена с одного сервера. Мы создадим домен с именем your_domain , но вы должны заменить его на свое собственное доменное имя . Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, см. Наше введение в DigitalOcean DNS.

Создайте каталог для your_domain :

  судо mkdir / var / www / your_domain
  

Назначить владельца каталога:

  
  • sudo chown -R $ USER: $ USER / var / www / your_domain

Разрешения ваших корневых веб-сайтов должны быть правильными, если вы не изменили значение unmask , но вы можете убедиться в этом, набрав:

  
  • sudo chmod -R 755 / var / www / your_domain

Создайте образец индекса .html с помощью nano или вашего любимого редактора:

  
  • нано /var/www/your_domain/index.html

Внутри добавьте следующий образец HTML:

/var/www/your_domain/index.html

  
    
         Добро пожаловать в Ваш_домен! 
    
    
         

Успех! Виртуальный хост your_domain работает!

Сохраните и закройте файл, когда закончите.

Создайте новый файл виртуального хоста по адресу /etc/apache2/sites-available/your_domain.conf :

  
  • sudo nano /etc/apache2/sites-available/your_domain.conf

Вставьте следующий блок конфигурации, обновленный для нашего нового каталога и доменного имени:

/etc/apache2/sites-available/your_domain.conf

  
    ServerAdmin веб-мастер @ localhost
    ServerName your_domain
    ServerAlias ​​your_domain
    DocumentRoot / var / www / ваш_домен
    ErrorLog $ {APACHE_LOG_DIR} / error.бревно
    CustomLog $ {APACHE_LOG_DIR} /access.log вместе

  

Сохраните и закройте файл, когда закончите.

Включить файл с a2ensite :

  
  • sudo a2ensite your_domain.conf

Отключить сайт по умолчанию, определенный в 000-default.conf :

  
  • sudo a2dissite 000-default.conf

Тест на ошибки конфигурации:

  
  • sudo apache2ctl configtest

Вы должны увидеть следующий результат:

  

Выход

Синтаксис ОК

Перезапустите Apache, чтобы изменения вступили в силу:

  
  • sudo systemctl перезапустить apache2

Apache теперь должен обслуживать ваше доменное имя.Вы можете проверить это, перейдя по адресу http: // your_domain , где вы должны увидеть что-то вроде этого:

Заключение

Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов для типа контента, который нужно обслуживать, и технологий, которые вы хотите использовать для создания более богатого опыта.

Если вы хотите создать более полный стек приложений, ознакомьтесь с этой статьей о том, как настроить стек LAMP в Ubuntu 18.04.

Как установить веб-сервер Apache в Ubuntu 18.04

Введение

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

В этом руководстве мы объясним, как установить веб-сервер Apache на ваш сервер Ubuntu 18.04.

Предварительные требования

Перед тем, как приступить к работе с этим руководством, у вас должен быть обычный пользователь без полномочий root с привилегиями sudo, настроенными на вашем сервере.Кроме того, вам потребуется включить базовый брандмауэр, чтобы блокировать второстепенные порты. Вы можете узнать, как настроить обычную учетную запись пользователя и брандмауэр для своего сервера, следуя нашему руководству по начальной настройке сервера для Ubuntu 18.04.

Когда у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.

Шаг 1. Установка Apache

Apache доступен в репозиториях программного обеспечения Ubuntu по умолчанию, что позволяет установить его с помощью обычных инструментов управления пакетами.

Начнем с обновления индекса локального пакета, чтобы отразить последние изменения в восходящей ветке:

  

Затем установите apache2 package:

  

После подтверждения установки apt установит Apache и все необходимые зависимости.

Шаг 2 — Настройка брандмауэра

Перед тестированием Apache необходимо изменить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию.Предполагая, что вы следовали инструкциям в предварительных условиях, у вас должен быть настроен брандмауэр UFW для ограничения доступа к вашему серверу.

Во время установки Apache регистрируется в UFW, чтобы предоставить несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.

Перечислите профили приложений ufw , набрав:

  

Вы увидите список профилей приложений:

  

Выход

Доступные приложения: Apache Apache Full Apache Secure OpenSSH

Как видите, для Apache доступно три профиля:

  • Apache : этот профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)
  • Apache Full : этот профиль открывает порт 80 (нормальный незашифрованный веб-трафик) и порт 443 (зашифрованный трафик TLS / SSL)
  • Apache Secure : этот профиль открывает только порт 443 (трафик с шифрованием TLS / SSL)

Рекомендуется включить наиболее строгий профиль, который по-прежнему будет разрешать трафик, который вы настроили.Поскольку в этом руководстве мы еще не настроили SSL для нашего сервера, нам нужно будет разрешить трафик только на порт 80:

.

  

Вы можете проверить изменение, набрав:

  

Вы должны увидеть разрешенный HTTP-трафик в отображаемом выводе:

  

Выход

Статус: активен К действию от - ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) РАЗРЕШИТЬ В любом месте (v6) Apache (v6) РАЗРЕШИТЬ В любом месте (v6)

Как видите, профиль был активирован, чтобы разрешить доступ к веб-серверу.

Шаг 3. Проверка веб-сервера

В конце процесса установки Ubuntu 18.04 запускает Apache. Веб-сервер уже должен быть запущен.

Проверьте систему инициализации systemd , чтобы убедиться, что служба запущена, набрав:

  
  • sudo systemctl статус apache2
  

Выходные данные

● apache2.service - HTTP-сервер Apache Загружен: загружен (/ lib / systemd / system / apache2.служба; включено; предустановка поставщика: включена) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Активен: активен (работает) с Вт 2018-04-24 20:14:39 UTC; 9мин назад Основной PID: 2583 (apache2) Задач: 55 (лимит: 1153) CGroup: /system.slice/apache2.service ├─2583 / usr / sbin / apache2 -k start ├─2585 / usr / sbin / apache2 -k start └─2586 / usr / sbin / apache2 -k начало

Как видно из этих выходных данных, служба, похоже, была запущена успешно.Однако лучший способ проверить это — запросить страницу у Apache.

Вы можете получить доступ к целевой странице Apache по умолчанию, чтобы убедиться, что программное обеспечение правильно работает через ваш IP-адрес. Если вы не знаете IP-адрес своего сервера, вы можете получить его несколькими способами из командной строки.

Попробуйте ввести в командной строке сервера:

  

Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в своем веб-браузере, чтобы проверить, работают ли они.

Альтернативный вариант — ввести это, что должно дать вам ваш общедоступный IP-адрес, видимый из другого места в Интернете:

  

Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:

  http: // ваш_сервер_ip
  

Вы должны увидеть веб-страницу Ubuntu 18.04 Apache по умолчанию:

Эта страница указывает на то, что Apache работает правильно. Он также включает некоторую основную информацию о важных файлах Apache и расположении каталогов.

Шаг 4. Управление процессом Apache

Теперь, когда ваш веб-сервер настроен и работает, давайте рассмотрим некоторые основные команды управления.

Чтобы остановить веб-сервер, введите:

  
  • sudo systemctl stop apache2

Чтобы запустить веб-сервер, когда он остановлен, введите:

  
  • sudo systemctl start apache2

Чтобы остановить, а затем снова запустить службу, введите:

  
  • sudo systemctl перезапустить apache2

Если вы просто вносите изменения в конфигурацию, Apache часто может перезагрузиться, не разрывая соединения.Для этого используйте эту команду:

  
  • sudo systemctl перезагрузить apache2

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если это не то, что вам нужно, отключите это поведение, набрав:

  
  • sudo systemctl отключить apache2

Чтобы снова включить запуск службы при загрузке, введите:

  
  • sudo systemctl включить apache2

Apache теперь должен запускаться автоматически при повторной загрузке сервера.

Шаг 5 — Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальных хостов (аналогично серверным блокам в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена с одного сервера. Мы создадим домен с именем your_domain , но вы должны заменить его на свое собственное доменное имя . Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, см. Наше Введение в DigitalOcean DNS.

В Apache в Ubuntu 18.04 по умолчанию включен один серверный блок, который настроен для обслуживания документов из каталога / var / www / html . Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения / var / www / html , давайте создадим структуру каталогов в / var / www для сайта your_domain , оставив / var / www / html на месте в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует ни одному другому сайту.

Создайте каталог для your_domain следующим образом:

  
  • sudo mkdir / var / www / your_domain

Затем назначьте владение каталогом с помощью переменной среды $ USER :

  
  • sudo chown -R $ USER: $ USER / var / www / your_domain

Разрешения ваших корневых веб-сайтов должны быть правильными, если вы не изменили значение unmask , но вы можете убедиться в этом, набрав:

  
  • sudo chmod -R 755 / var / www / your_domain

Затем создайте образец индекса .html с помощью nano или вашего любимого редактора:

  
  • нано /var/www/your_domain/index.html

Внутри добавьте следующий образец HTML:

/var/www/your_domain/index.html

  
    
         Добро пожаловать в Ваш_домен! 
    
    
         

Успех! Виртуальный хост your_domain работает!

Сохраните и закройте файл, когда закончите.

Чтобы Apache мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо прямого изменения файла конфигурации по умолчанию, расположенного по адресу /etc/apache2/sites-available/000-default.conf , давайте создадим новый по адресу /etc/apache2/sites-available/your_domain.conf :

.

  
  • sudo nano /etc/apache2/sites-available/your_domain.conf

Вставьте следующий блок конфигурации, который похож на стандартный, но обновлен для нашего нового каталога и имени домена:

/ etc / apache2 / sites-available / your_domain.conf

  
    ServerAdmin веб-мастер @ localhost
    ServerName your_domain
    ServerAlias ​​www.your_domain
    DocumentRoot / var / www / ваш_домен
    ErrorLog $ {APACHE_LOG_DIR} /error.log
    CustomLog $ {APACHE_LOG_DIR} /access.log вместе

  

Обратите внимание, что мы обновили DocumentRoot до нашего нового каталога и ServerAdmin на адрес электронной почты, доступ к которому имеет администратор сайта your_domain .Мы также добавили две директивы: ServerName , которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, и ServerAlias ​​, который определяет дополнительные имена, которые должны совпадать, как если бы они были базовым именем.

Сохраните и закройте файл, когда закончите.

Давайте включим файл с помощью инструмента a2ensite :

  
  • sudo a2ensite your_domain.conf

Отключить сайт по умолчанию, определенный в 000-default.конф :

  
  • sudo a2dissite 000-default.conf

Теперь давайте проверим ошибки конфигурации:

  
  • sudo apache2ctl configtest

Вы должны увидеть следующий результат:

  

Выход

Синтаксис ОК

Перезапустите Apache, чтобы изменения вступили в силу:

  
  • sudo systemctl перезапустить apache2

Apache теперь должен обслуживать ваше доменное имя.Вы можете проверить это, перейдя по адресу http: // your_domain , где вы должны увидеть что-то вроде этого:

Шаг 6. Знакомство с важными файлами и каталогами Apache

Теперь, когда вы знаете, как управлять самой службой Apache, вам следует потратить несколько минут, чтобы ознакомиться с несколькими важными каталогами и файлами.

Содержимое

  • / var / www / html : фактический веб-контент, который по умолчанию состоит только из страницы Apache по умолчанию, которую вы видели ранее, обслуживается из каталога / var / www / html .Это можно изменить, изменив файлы конфигурации Apache.

Конфигурация сервера

  • / etc / apache2 : Каталог конфигурации Apache. Здесь находятся все файлы конфигурации Apache.
  • /etc/apache2/apache2.conf : основной файл конфигурации Apache. Это можно изменить, чтобы внести изменения в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
  • / и т.д. / apache2 / ports.conf : этот файл определяет порты, которые Apache будет прослушивать. По умолчанию Apache прослушивает порт 80 и дополнительно прослушивает порт 443, когда включен модуль, обеспечивающий возможности SSL.
  • / etc / apache2 / sites-available / : каталог, в котором могут храниться виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации, найденные в этом каталоге, если они не связаны с каталогом с поддержкой сайтов . Как правило, вся конфигурация серверного блока выполняется в этом каталоге, а затем включается путем связывания с другим каталогом с помощью команды a2ensite .
  • / etc / apache2 / sites-enabled / : каталог, в котором хранятся включенные виртуальные хосты для каждого сайта. Обычно они создаются путем связывания с файлами конфигурации, находящимися в каталоге sites-available , с помощью a2ensite . Apache считывает файлы конфигурации и ссылки, найденные в этом каталоге, при запуске или перезагрузке для компиляции полной конфигурации.
  • / etc / apache2 / conf-available / , / etc / apache2 / conf-enabled / : эти каталоги имеют те же отношения, что и каталоги , доступные для сайтов и , доступные для сайтов , но используются для хранить фрагменты конфигурации, не принадлежащие виртуальному хосту.Файлы в каталоге conf-available можно включить с помощью команды a2enconf и отключить с помощью команды a2disconf .
  • / etc / apache2 / mods-available / , / etc / apache2 / mods-enabled / : Эти каталоги содержат доступные и включенные модули соответственно. Файлы, оканчивающиеся на .load , содержат фрагменты для загрузки определенных модулей, а файлы, заканчивающиеся на .conf , содержат конфигурацию для этих модулей.Модули можно включать и отключать с помощью команд a2enmod и a2dismod .

Журналы сервера

  • /var/log/apache2/access.log : По умолчанию каждый запрос к вашему веб-серверу записывается в этот файл журнала, если Apache не настроен на иное.
  • /var/log/apache2/error.log : По умолчанию все ошибки записываются в этот файл. Директива LogLevel в конфигурации Apache указывает, насколько подробно будут содержаться журналы ошибок.

Заключение

Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов для типа контента, который вы можете обслуживать, и технологий, которые вы можете использовать для создания более насыщенного опыта.

Если вы хотите создать более полный стек приложений, вы можете прочитать эту статью о том, как настроить стек LAMP в Ubuntu 18.04.

linux — перезапуск Apache 2 сломал веб-сайт

У меня возникли проблемы с перезапуском Apache в Ubuntu.

Я пробовал sudo netstat -ltnp | grep ': 80'

Я получаю:
tcp 0 0 0.0.0.0:80 0.0.0.0:* СЛУШАТЬ 31855 / httpd

, если я запускаю sudo /etc/init.d/apache2 restart

Я получаю:
* Перезапуск веб-сервера apache2 (98) Адрес уже используется: make_sock: не удалось привязать к адресу 0.0.0.0:80
нет доступных гнезд для прослушивания, выключение
Невозможно открыть журналы
Не удалось выполнить действие «старт».Журнал ошибок Apache может содержать дополнительную информацию.

Я запутался, потому что веб-страница работала, но затем sudo service apache2 status он говорит, что Apache2 НЕ работает.

Затем я запускаю sudo kill -9 31855 а затем /etc/init.d/apache2 перезапустите , и теперь Apache перезапускается нормально.

Проблема в том, что теперь весь мой сайт не работает. Кто-нибудь знает, что я здесь делаю не так? Я тоже использую битнами. Спасибо вот httpd.conf файл:

  #
# Это основной файл конфигурации HTTP-сервера Apache.Он содержит
# конфигурационные директивы, которые дают серверу инструкции.
# См.  для получения подробной информации.
# В частности, см.
# 
# для обсуждения каждой директивы конфигурации.
#
# НЕ просто читайте инструкции здесь, не понимая
# что они делают. Они здесь только в качестве подсказок или напоминаний. Если вы не уверены
# обратитесь к онлайн-документации. Вы были предупреждены.
#
# Конфигурация и имена файлов журнала: если имена файлов вы указываете для многих
# управляющих файлов сервера начинаются с "/" (или "диск: /" для Win32),
# сервер будет использовать этот явный путь.Если имена файлов * не * начинаются
# с "/" добавляется значение ServerRoot - поэтому "logs / access_log"
# с ServerRoot, установленным в "/ usr / local / apache2", будет интерпретироваться
# сервер как "/ usr / local / apache2 / logs / access_log", тогда как "/ logs / access_log"
# будет интерпретироваться как '/ logs / access_log'.

#
# ServerRoot: верхняя часть дерева каталогов, под которой находится сервер
# сохраняются файлы конфигурации, ошибок и журналов.
#
# Не добавляйте косую черту в конце пути к каталогу. Если вы укажете
# ServerRoot на нелокальном диске, обязательно укажите локальный диск на
# Директива Mutex, если используются файловые мьютексы.Если вы хотите поделиться
# одинаковый ServerRoot для нескольких демонов httpd, вам нужно будет изменить
# минимум PidFile.
#
ServerRoot "/ opt / bitnami / apache2"

#
# Mutex: позволяет установить механизм мьютекса и каталог файлов мьютекса.
# для отдельных мьютексов или изменить глобальные значения по умолчанию
#
# Раскомментируйте и измените каталог, если мьютексы файловые и по умолчанию
# Каталог файлов мьютекса не находится на локальном диске или не подходит для некоторых
# другая причина.
#
# Mutex по умолчанию: журналы
ServerName localhost
#
# Listen: позволяет привязать Apache к определенным IP-адресам и / или
# портов вместо значения по умолчанию.См. Также 
# директива.
#
# Измените это на Слушать определенные IP-адреса, как показано ниже, чтобы
# предотвратить появление Apache на всех связанных IP-адресах.
#
#Listen 12.34.56.78:80
Слушай 80

#
# Поддержка динамического общего объекта (DSO)
#
# Чтобы иметь возможность использовать функции модуля, который был построен как DSO, вы
# необходимо разместить соответствующие строки `LoadModule 'в этом месте, чтобы
# содержащихся в нем директив фактически доступны _до_ использования.
# Статически скомпилированные модули (перечисленные как `httpd -l ') не нуждаются в
# быть загруженным сюда.#
# Пример:
# LoadModule foo_module modules / mod_foo.so
#
LoadModule модули authn_file_module / mod_authn_file.so
#LoadModule authn_dbm_module modules / mod_authn_dbm.so
#LoadModule authn_anon_module modules / mod_authn_anon.so
#LoadModule authn_dbd_module modules / mod_authn_dbd.so
#LoadModule authn_socache_module modules / mod_authn_socache.so
LoadModule модули authn_core_module / mod_authn_core.so
LoadModule модули authz_host_module / mod_authz_host.so
LoadModule authz_groupfile_module modules / mod_authz_groupfile.так
LoadModule модули authz_user_module / mod_authz_user.so
#LoadModule authz_dbm_module modules / mod_authz_dbm.so
#LoadModule authz_owner_module modules / mod_authz_owner.so
#LoadModule authz_dbd_module modules / mod_authz_dbd.so
LoadModule модули authz_core_module / mod_authz_core.so
#LoadModule authnz_ldap_module modules / mod_authnz_ldap.so
LoadModule access_compat_module modules / mod_access_compat.so
LoadModule модули auth_basic_module / mod_auth_basic.so
#LoadModule auth_form_module modules / mod_auth_form.так
#LoadModule auth_digest_module modules / mod_auth_digest.so
#LoadModule allowmethods_module modules / mod_allowmethods.so
#LoadModule file_cache_module modules / mod_file_cache.so
#LoadModule cache_module modules / mod_cache.so
#LoadModule cache_disk_module modules / mod_cache_disk.so
#LoadModule cache_socache_module modules / mod_cache_socache.so
LoadModule модули socache_shmcb_module / mod_socache_shmcb.so
#LoadModule socache_dbm_module modules / mod_socache_dbm.so
#LoadModule socache_memcache_module modules / mod_socache_memcache.так
#LoadModule macro_module modules / mod_macro.so
#LoadModule dbd_module modules / mod_dbd.so
#LoadModule dumpio_module modules / mod_dumpio.so
#LoadModule buffer_module modules / mod_buffer.so
#LoadModule ratelimit_module modules / mod_ratelimit.so
LoadModule модули reqtimeout_module / mod_reqtimeout.so
#LoadModule ext_filter_module modules / mod_ext_filter.so
#LoadModule request_module modules / mod_request.so
#LoadModule include_module modules / mod_include.so
LoadModule filter_module modules / mod_filter.so
#LoadModule substitute_module modules / mod_substitute.так
#LoadModule sed_module modules / mod_sed.so
LoadModule модули deflate_module / mod_deflate.so
LoadModule модули mime_module / mod_mime.so
#LoadModule ldap_module modules / mod_ldap.so
LoadModule log_config_module modules / mod_log_config.so
#LoadModule log_debug_module modules / mod_log_debug.so
#LoadModule logio_module modules / mod_logio.so
LoadModule модули env_module / mod_env.so
#LoadModule expires_module modules / mod_expires.so
LoadModule модули headers_module / mod_headers.so
#LoadModule unique_id_module modules / mod_unique_id.так
LoadModule модули setenvif_module / mod_setenvif.so
LoadModule version_module modules / mod_version.so
#LoadModule remoteip_module modules / mod_remoteip.so
LoadModule модули proxy_module / mod_proxy.so
LoadModule модули proxy_connect_module / mod_proxy_connect.so
LoadModule модули proxy_ftp_module / mod_proxy_ftp.so
LoadModule модули proxy_http_module / mod_proxy_http.so
LoadModule модули proxy_fcgi_module / mod_proxy_fcgi.so
LoadModule модули proxy_scgi_module / mod_proxy_scgi.so
LoadModule модули proxy_wstunnel_module / mod_proxy_wstunnel.так
LoadModule модули proxy_ajp_module / mod_proxy_ajp.so
LoadModule модули proxy_balancer_module / mod_proxy_balancer.so
LoadModule модули proxy_express_module / mod_proxy_express.so
#LoadModule session_module modules / mod_session.so
#LoadModule session_cookie_module modules / mod_session_cookie.so
#LoadModule session_dbd_module modules / mod_session_dbd.so
LoadModule slotmem_shm_module модули / mod_slotmem_shm.so
LoadModule модули ssl_module / mod_ssl.so
LoadModule lbmethod_byrequests_module модули / mod_lbmethod_byrequests.так
LoadModule lbmethod_bytraffic_module модули / mod_lbmethod_bytraffic.so
LoadModule модули lbmethod_bybusyness_module / mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module модули / mod_lbmethod_heartbeat.so
#LoadModule mpm_prefork_module modules / mod_mpm_prefork.so
LoadModule mpm_event_module модули / mod_mpm_event.so
LoadModule модули unixd_module / mod_unixd.so
#LoadModule dav_module modules / mod_dav.so
LoadModule status_module модули / mod_status.so
LoadModule autoindex_module modules / mod_autoindex.так
#LoadModule info_module modules / mod_info.so
#LoadModule cgid_module modules / mod_cgid.so
#LoadModule dav_fs_module modules / mod_dav_fs.so
#LoadModule vhost_alias_module modules / mod_vhost_alias.so
LoadModule модули согласования_модуля / mod_negotiation.so
LoadModule модули dir_module / mod_dir.so
LoadModule actions_module modules / mod_actions.so
#LoadModule speling_module modules / mod_speling.so
#LoadModule userdir_module modules / mod_userdir.so
LoadModule модули alias_module / mod_alias.so
LoadModule rewrite_module modules / mod_rewrite.так

# Прокомментируйте модуль ниже, чтобы включить PHP-FPM
#LoadModule php5_module modules / libphp5.so

# Это позволяет использовать PHP-FPM, когда mod_php отключен

    #http: //wiki.bitnami.com/Components/PHP-FPM#PHP-FPM_did_not_handle_the_connection_error
    Действие application / x-httpd-php "/ bitnami-error-php-fpm-did-not-handle-the-connection"
    Определите USE_PHP_FPM
    Включите "conf / php-fpm-apache.conf"





#
# Если вы хотите, чтобы httpd запускался от имени другого пользователя или группы, вы должны запустить
# httpd изначально как root, и он переключится.#
# Пользователь / группа: имя (или # номер) пользователя / группы, от имени которой будет запускаться httpd.
# Обычно хорошей практикой является создание специального пользователя и группы для
# запуск httpd, как и в большинстве системных служб.
#
Пользовательский демон
Групповой демон



# Конфигурация 'основного' сервера
#
# Директивы в этом разделе устанавливают значения, используемые 'main'
# сервер, который отвечает на любые запросы, которые не обрабатываются
# Определение . Эти значения также предоставляют значения по умолчанию для
# любые контейнеры , которые вы можете определить позже в файле.#
# Все эти директивы могут находиться внутри контейнеров ,
# в этом случае эти настройки по умолчанию будут отменены для
# определяется виртуальный хост.
#

#
# ServerAdmin: Ваш адрес, по которому должны быть проблемы с сервером
# отправлено по электронной почте. Этот адрес появляется на некоторых страницах, созданных сервером, например
# как документы об ошибках. например [email protected]
#
ServerAdmin [email protected]

#
# ServerName дает имя и порт, которые сервер использует для идентификации.
# Часто это можно определить автоматически, но мы рекомендуем указать
# это явно для предотвращения проблем во время запуска.#
# Если у вашего хоста нет зарегистрированного DNS-имени, введите здесь его IP-адрес.
#
ServerName localhost: 80

#
# Запретить доступ ко всей файловой системе вашего сервера. Вы должны
# явно разрешить доступ к каталогам веб-контента в других
# Блоки  ниже.
#
<Каталог />
    AllowOverride нет
    Требовать все отклонено


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

#
# DocumentRoot: каталог, из которого вы будете обслуживать свой
# документов. По умолчанию все запросы берутся из этого каталога, но
# символические ссылки и псевдонимы могут использоваться для указания на другие места.
#
DocumentRoot "/ opt / bitnami / apache2 / htdocs"
<Каталог "/ opt / bitnami / apache2 / htdocs">
    #
    # Возможные значения для директивы Options: "None", "All",
    # или любая комбинация:
    # Indexes включает FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Обратите внимание, что "MultiViews" должны иметь * явное имя * --- "Options All"
    # вам этого не дает.#
    # Директива Options сложна и важна. Посмотри пожалуйста
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # для дополнительной информации.
    #
    Индексы опций FollowSymLinks

    #
    # AllowOverride контролирует, какие директивы могут быть помещены в файлы .htaccess.
    # Это может быть "Все", "Нет" или любая комбинация ключевых слов:
    # AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride Нет

    #
    # Управляет тем, кто может получать данные с этого сервера.
    #
    Требовать все предоставлено


#
# DirectoryIndex: устанавливает файл, который Apache будет обслуживать, если каталог
# запрашивается.#

    DirectoryIndex index.html index.php


#
# Следующие строки предотвращают создание файлов .htaccess и .htpasswd.
# просматривается веб-клиентами.
#
<Файлы ".ht *">
    Требовать все отклонено


#
# ErrorLog: расположение файла журнала ошибок.
# Если вы не укажете директиву ErrorLog в 
# контейнер, сообщения об ошибках, относящиеся к этому виртуальному хосту, будут
# здесь вошли. Если вы * действительно * определяете файл журнала ошибок для 
# контейнер, ошибки этого хоста будут регистрироваться там, а не здесь.#
ErrorLog "журналы / error_log"

#
# LogLevel: контролировать количество сообщений, записываемых в error_log.
# Возможные значения: отладка, информация, уведомление, предупреждение, ошибка, крит,
# alert, emerg.
#
LogLevel предупреждать


#
# Следующие директивы определяют некоторые псевдонимы формата для использования с
# директива CustomLog (см. ниже).
#
LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-Agent} i \ "" вместе
LogFormat "% h% l% u% t \"% r \ "%> s% b" общий


  # Вам необходимо включить mod_logio.c использовать% I и% O
  LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-Agent} i \ "% I% O" вместе


    #
    # Расположение и формат файла журнала доступа (Общий формат файла журнала).
    # Если вы не определяете какие-либо файлы журнала доступа в 
    # контейнер, здесь они будут регистрироваться. Наоборот, если вы * делаете *
    # определить для каждого файла журнала доступа , транзакции будут
    # зарегистрирован в нем, а * не * в этом файле.
    #
    CustomLog "logs / access_log" общий

    #
    # Если вы предпочитаете файл журнала с информацией о доступе, агенте и реферере
    # (Комбинированный формат файла журнала) вы можете использовать следующую директиву.#
    #CustomLog "Журналы / журнал_доступа" объединены



    #
    # Перенаправление: позволяет сообщать клиентам о документах, которые раньше
    # существуют в пространстве имен вашего сервера, но больше не существуют. Клиент
    # сделает новый запрос документа в новом месте.
    # Пример:
    # Перенаправление постоянное / foo http://www.example.com/bar

    #
    # Псевдоним: отображает веб-пути в пути файловой системы и используется для
    # получить доступ к контенту, который не находится под DocumentRoot.# Пример:
    # Псевдоним / webpath / full / filesystem / path
    #
    # Если вы включите конечный / on / webpath, то сервер будет
    # требуется, чтобы он присутствовал в URL. Вы также вероятно
    # необходимо предоставить раздел , чтобы разрешить доступ к
    # путь к файловой системе.

    #
    # ScriptAlias: определяет, какие каталоги содержат сценарии сервера.
    # ScriptAliases по сути такие же, как псевдонимы, за исключением того, что
    # документы в целевом каталоге рассматриваются как приложения и
    # запускается сервером по запросу, а не как документы, отправленные на
    # клиент.Те же правила в отношении завершающего символа "/" применяются к ScriptAlias.
    # директивы относительно Alias.
    #
    ScriptAlias ​​/ cgi-bin / "/ opt / bitnami / apache2 / cgi-bin /"




    #
    # ScriptSock: на многопоточных серверах указать путь к UNIX
    # сокет, используемый для связи с демоном CGI mod_cgid.
    #
    #Scriptsock cgisock


#
# "/ opt / bitnami / apache2 / cgi-bin" следует заменить на ваш ScriptAliased
# Каталог CGI существует, если он у вас настроен.#
<Каталог "/ opt / bitnami / apache2 / cgi-bin">
    AllowOverride Нет
    Опции Нет
    Требовать все предоставлено



    #
    # TypesConfig указывает на файл, содержащий список сопоставлений из
    # расширение имени файла до MIME-типа.
    #
    ТипыConfig conf / mime.types

    #
    # AddType позволяет добавлять или переопределять конфигурацию MIME
    # файл, указанный в TypesConfig для определенных типов файлов.
    #
    #AddType application / x-gzip .tgz
    #
    # AddEncoding позволяет некоторым браузерам распаковывать
    # информация на лету.Примечание. Не все браузеры поддерживают это.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # Если директивы AddEncoding выше закомментированы, то вы
    # вероятно, следует определить эти расширения для обозначения типов мультимедиа:
    #
    Приложение AddType / x-compress .Z
    Приложение AddType / x-gzip .gz .tgz

    #
    # AddHandler позволяет отображать определенные расширения файлов в "обработчики":
    # действия, не связанные с типом файла. Они могут быть встроены в сервер
    # или добавлен с помощью директивы Action (см. ниже)
    #
    # Чтобы использовать сценарии CGI вне каталогов ScriptAliased:
    # (Вам также необходимо добавить «ExecCGI» в директиву «Параметры».)
    #
    #AddHandler cgi-script .cgi

    # Для карт типов (согласованные ресурсы):
    #AddHandler type-map var

    #
    # Фильтры позволяют обрабатывать контент перед его отправкой клиенту.
    #
    # Чтобы проанализировать файлы .shtml для серверных включений (SSI):
    # (Вам также нужно будет добавить «Включает» в директиву «Параметры».)
    #
    #AddType text / html .shtml
    #AddOutputFilter ВКЛЮЧАЕТ .shtml


#
# Модуль mod_mime_magic позволяет серверу использовать различные подсказки из
# содержимое самого файла для определения его типа.Файл MIMEMagicFile
Директива # сообщает модулю, где находятся определения подсказок.
#
#MIMEMagicFile conf / magic

#
# Настраиваемые ответы об ошибках бывают трех видов:
# 1) простой текст 2) локальные перенаправления 3) внешние перенаправления
#
# Некоторые примеры:
#ErrorDocument 500 «Сервер засвистел».
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#

#
# MaxRanges: максимальное количество диапазонов в запросе перед
# возврат всего ресурса или одного из специальных
# значения "по умолчанию", "нет" или "без ограничений".# Настройка по умолчанию - принять 200 диапазонов.
#MaxRanges unlimited

#
# EnableMMAP и EnableSendfile: в системах, которые его поддерживают,
# отображение памяти или системный вызов sendfile могут использоваться для доставки
# файлов. Обычно это улучшает производительность сервера, но необходимо
# отключаться при обслуживании из подключенных к сети
# файловых систем, или если поддержка этих функций в противном случае
# сломан в вашей системе.
# По умолчанию: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
#EnableSendfile on

# Дополнительная конфигурация
#
# Файлы конфигурации в каталоге conf / extra / могут быть
# включены, чтобы добавить дополнительные функции или изменить конфигурацию по умолчанию
# сервер, или вы можете просто скопировать их содержимое сюда и изменить как
# необходимо.# Управление серверным пулом (для MPM)
# Включить conf / extra / httpd-mpm.conf

# Многоязычные сообщения об ошибках
# Включить conf / extra / httpd-Multilang-errordoc.conf

# Необычные списки каталогов
# Включить conf / extra / httpd-autoindex.conf

# Языковые настройки
# Включить conf / extra / httpd-languages.conf

# Домашние каталоги пользователей
# Включить conf / extra / httpd-userdir.conf

# Информация о запросах и конфигурации в реальном времени
# Включить conf / extra / httpd-info.conf

# Виртуальные хосты
# Включить conf / extra / httpd-vhosts.conf

# Локальный доступ к руководству по HTTP-серверу Apache
# Включить conf / extra / httpd-manual.conf

# Распределенная разработка и управление версиями (WebDAV)
# Включить conf / extra / httpd-dav.conf

# Различные настройки по умолчанию
# Включить conf / extra / httpd-default.conf

# Настройте mod_proxy_html для понимания HTML4 / XHTML1

Включите conf / extra / proxy-html.conf


# Безопасные (SSL / TLS) соединения
# Включить conf / extra / httpd-ssl.conf
#
# Примечание: следующее должно присутствовать для поддержки
# запуск без SSL на платформах без эквивалента / dev / random
# но статически скомпилированный mod_ssl.#

Встроенный запуск SSLRandomSeed
Встроенный SSLRandomSeed connect

#
# раскомментируйте нижеследующее, чтобы иметь дело с пользовательскими агентами, которые намеренно
# нарушать открытые стандарты, злоупотребляя DNT (DNT * должен * быть определенным
# выбор конечного пользователя)
#
# 
#BrowserMatch "MSIE 10.0;" bad_DNT
# 

Заголовок всегда добавляет X-Frame-Options SAMEORIGIN



Включите "conf / deflate.conf"
Включите conf / pagespeed.conf
Включите conf / pagespeed_libraries.conf

Приложение AddType / x-httpd-php .php .phtml


# Следующие строки запрещают просмотр файлов настроек PHP .user.ini веб-клиентами.
<Файлы ".user.ini">


    Заказать разрешить, запретить
    Запретить всем

 = 2.3>
    Требовать все отклонено




# Безопасность
Сервер Подпись Выкл.
ServerTokens Prod
TraceEnable Off

Включите "/opt/bitnami/apache2/conf/ssi.conf"
Приложение AddType / x-httpd-php.php


        PHPIniDir "/ opt / bitnami / php / etc"


Включите "/opt/bitnami/apache2/conf/bitnami/bitnami.conf"

Включите "/opt/bitnami/apache2/conf/bitnami/httpd.conf"
  

PHP: Apache 2.x в системах Unix

Я успешно установил Apache 2.2.11 и PHP 5.2.8 под Red Hat 9.0 на Pentium 166 с 32 МБ ОЗУ.

Хотя я использовал RH9, наихудший случай, эти примечания, вероятно, подходят и для дистрибутивов на основе RH (Red Hat Enterprise, Fedora, CentOS…)

Если вы хотите установить MySQL, его необходимо установить до PHP, потому что PHP требует наличия некоторых библиотек.

При выборе двоичного дистрибутива MySQL важно загрузить все четыре пакета: MySQL-server, MySQL-devel, MySQL-client и MySQL-shared. Примечание. MySQL был в комплекте с PHP 4, но его больше нет в PHP 5.

Затем вам нужно установить Apache до PHP, потому что PHP снова требует наличия некоторых библиотек. Я установил Apache 2 из исходников, используя самую последнюю доступную версию — 2.2.11.

Я установил PHP 5.2.8 из исходников. Здесь у меня было несколько проблем, но ни одну из них я не мог решить легко, некоторые из них с небольшой помощью на разных форумах, которые я нашел через Google.

Напоминание: когда он говорит, что вам нужен пакет с именем xyz, и вы замечаете, что есть еще один с именем xyz-devel, возьмите его.

Большинство пакетов, которые я получил:
http://legacy.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/
Аналогичная страница существует для других версий Red Hat
и:
http: // rpmfind.net /
На этом сайте есть обновленные версии некоторых пакетов. Убедитесь, что вы используете только ту версию, которая соответствует вашей версии (в моем случае Red Hat 9.0), иначе она вряд ли сработает.

У вас уже установлены glibc и glibc-common, но вам нужно получить glibc-devel и glibc-kernheaders. Убедитесь, что соответствует версии glibc (rpm -q glibc). Примечание: когда он говорит, что kernel-header является обязательной зависимостью, это glibc-kernheader (а не ядро-источник). Вам также понадобятся binutils (не обязательно совпадать с версией) и gcc и cpp (версия должна совпадать).

Вам нужен zlib-devel (zlib, вероятно, уже установлен, соответствует вашей версии).

Если вы устанавливаете расширение GD, фактическая библиотека уже связана с PHP 5 (используйте ее, там были внесены некоторые изменения, поэтому не обновляйтесь), но вам нужно будет установить libpng и libpng-devel ( соответствует версии или отключите в configure, если вы не хотите) и libjpeg (без -devel с этим).

Вам также понадобится libxml2. Теперь возникла проблема, потому что PHP требует, чтобы libxml2 был равен 2.6 или выше, но Red Hat поставляла только 2.5.4-1 для RH9 (если у вас более свежий дистрибутив, вам может повезти больше). Немного погодя, я решил взять исходный код самого последнего дистрибутива на официальном сайте (http://xmlsoft.org/) и скомпилировать.

Надеюсь, мой пост кому-нибудь пригодится. Поделитесь, пожалуйста, своим опытом компиляции / установки для вашей конкретной платформы и настройки. Вспомните, как тяжело было вам в первый раз. Признаюсь, моя первая установка сервера заняла у меня почти неделю, и я был рад, что мне помогли другие.

Установите Apache 2 за четыре шага!

Время чтения: 2 минуты Apache — это самое популярное программное обеспечение для веб-серверов, которое используется сегодня. Его популярность достигается за счет стабильности, скорости и безопасности. Скорее всего, если вы создаете веб-сайт или любое общедоступное приложение, вы будете использовать Apache для его отображения. На момент написания этой статьи самым последним предложением Apache было 2.4.39, и именно эту версию мы будем использовать для установки на наш VPS-сервер Ubuntu. Давайте начнем! Шаг 1: Обновите и обновите инструмент apt, чтобы убедиться, что мы работаем с последними и лучшими. sudo apt update && обновление Шаг 2: Установите Apache и при появлении запроса выберите Y . sudo apt установить apache2 Шаг 3: Теперь, когда мы установили Apache, нам нужно запустить службу. systemctl start apache2 Шаг 4: Включение Apache автоматически запускает веб-сервер при каждом включении сервера. systemctl включить apache2 Проверьте Apache, посетив IP-адрес или имя хоста сервера; вы увидите страницу Apache по умолчанию.

Необязательно: установите и включите PHP

В зависимости от ваших потребностей, скажем, на веб-сайте с кодом PHP, вы также можете установить и включить PHP. apt install php libapache2-mod-php php-mysql Спойлер, Ubuntu 18.04 по умолчанию — PHP 7.2, последняя и самая лучшая. Вы увидите, как это значение отображается при использовании: php --version Вывод: PHP 7.2.15-0ubuntu0.18.04.2 (cli) (построено: 22 марта 2019 17:05:14) (NTS)
Авторские права (c) 1997-2018 Группа PHP
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
с Zend OPcache v7.2.15-0ubuntu0.18.04.2, Copyright (c) 1999-2018, Zend Technologies

Где файлы конфигурации Apache?

Итак, что дальше? Как указывалось ранее, Apache может быть предпосылкой для других приложений или может быть местом, откуда вы обслуживаете свои веб-сайты. Некоторые важные файлы находятся на странице Apache по умолчанию; Вот небольшой фрагмент этих местоположений файлов:

Есть несколько способов настроить Apache в соответствии с вашими потребностями.Как клиент Liquid Web, вы получите поддержку 24/7/365, а также опытные специалисты, которые всегда готовы ответить на любые ваши вопросы! Узнайте, что мы можем для вас сделать! .

Хотя подкаталог /etc/httpd/conf включает все три оригинальных конфигурационных файла, собственно конфигурируется только файл httpd. conf. Остальные CONF-файлы оставлены для совместимости с предыдущими версиями.

Структура файла httpd. conf довольно проста. Ниже приведен его листинг по умолчанию:

##

## httpd.conf — конфигурационный файл HTTP-сервера Apache

##

#

# Построил Rob McCool на основе конфигурационных файлов NCSA-сервера. #

# Это основной конфигурационный файл сервера. QH содержит

# конфигурационные директивы для сервера. За дополнительными

# инструкциями обращайтесь по адресу <URL: http://www.apache.org/docs/ > #

# Если не понятно, о чем речь — лучше не читать. Если в чем-то

# не уверены — обращайтесь к документации в on-line. Вас предупредили. #

# После обработки этого файла, сервер ищет и обрабатывает файлы

# /usr/conf/srm.conf и /usr/conf/access.conf, если вы не заблокировали

# их здесь директивами ResourceConfig и/или AccessConfig.#

# Директивы конфигурирования разбиты на три раздела:

# 1. Директивы, управляющие работой сервера Apache в целом

# (раздел ‘global environment’) .

# 2. Директивы, определяющие параметры ‘сервера ‘main’ или ‘default’,

# соответствующие запросам, не обрабатываемы виртуальным хостом.

# Эти директивы также обеспечивают значения по умолчанию для всех

# виртуальных хостов.

# 3. Установки для виртуальных хостов, позволяющие отправлять

# Web-запросы на другие IP-адреса или хосты в расчете на обработку # аналогичным Apache-сервером.

#

# Имена файлов конфигурации и протокола: Если заданные имена файлов

# управления сервером начинаются с «/» (или «drive:/ » для Win32),

# сервер будет использовать явный путь. Если имена не начинаются

# с «/», значение ServerRoot интерпретируется так: «logs/foo.log»

# для ServerRoot, установленного на «/usr/local/apache» будет

# интерпретироваться сервером как «/usr/local/apache/logs/foo.log».

### Раздел 1: Global Environment #

# Директивы этого раздела определяют поведение Apaohe в целом,

# например, задают число параллельно обрабатываемых запросов, # или местоположение конфигурационных файлов.

# #

# ServerType либо inetd, либо standalone. Inetd режим поддерживается

# только на платформе Unix. #

ServerType standalone

#

# ServerRoot: Корень дерева каталогов, в котором сервер хранит # файлы конфигурации, ошибок и протоколов.

#

# Внимание! Если вы хотите разместить его в NFS (или сети), смонтируйте

# файловую систему, затем прочитайте документацию LockFile (доступную

# по адресу <URL: http://www.apache.org/docs/mod/core.html#lockfile >),

# и вы избавите себя от массы забот. #

# Не добавляйте косую черту в конце пути каталога. ServerRoot «/etc/httpd»

#

# Команда LockFile устанавливает путь к файлу блокировки, использующемуся

# если Apache откомпилирован либо с USE_FCNTL_SERIALIZED_ACCEPT, либо с

# USE_FLOCK_SERIALIZED_ACCEPT. Обычно эта команда должна иметь значение

# по умолчанию. Основной причиной, по которой нужно изменять эту

# переменную, является установка каталога протоколов на смонтированной

# NFS, так как файл-блокировки ДОЛЖЕН НАХОДИТЬСЯ НА ЛОКАЛЬНОМ ДИСКЕ.

# PID главного процесса сервера автоматически добавляется к имени файла. #

LockFile /var/lock/httpd.lock

# PidFile: Файл для протоколирования pid сервера PidFile /var/run/httpd.pid

# ScoreBoardFile: Файл для хранения сервером внутренней информации о

# процессе. Требуется не на всех архитектурах. Но если у Вас требуется

# (файл будет создан после запуска Apache), то Вы *должны* убедиться в # том, что ни одна из запускаемых копий Apache не разделяет один и тот # же файл для этой цели.

#

ScoreBoardFile /var/run/httpd.Scoreboard

#

# В стандартной конфигурации сервер обработает этот файл,

# файл srm.conf и access.conf в указанном порядке. Два последних файла

# в этом дистрибутиве пусты, а все директивы объединены в один

# файл для простоты. Ниже приведены закомментированные

# значения по умолчанию. Можно заставить сервер проигнорировать

# эти файлы, задав «/dev/null» (для Unix) или

# «mil» (для Win32) в качестве аргументов директив. #

# ResourceConfig conf/srm.conf

#AccessConfig conf/access.conf

#

# Timeout: Количество секунд перед приемом и посылкой тайм-аута. Timeout 300

# KeepAlive: Разрешить или не разрешить устойчивые соединения (более

# одного запроса на каждое соединение). Для запрещения установите в «Off». KeepAlive On

# MaxKeepAliveRequests: Максимальное количество разрешенных запросов при

# устойчивом соединении. Значение 0 устанавливает неограниченное

#количество. Для обеспечения максимальной производительности рекомендуем

# установить это число большим. # MaxKeepAliveReguests 100

#

# KeepAliveTimeout: Количество секунд для ожидания следующего запроса.

#

KeepAliveTimeout 15

#

# Правила размера серверного пула. Чтобы Вы не гадали, сколько Вам нужно

# процессов для сервера, Apache динамически подстраивается к текущей

# нагрузке — он пытается запустить необходимое количество процессов для # оперирования текущей нагрузкой, плюс несколько резервных серверов для

# обслуживания временных пиков (т.е. нескольких одновременных запросов,

# исходящих из одного браузера Netscape). #

# Делает он это при помощи периодической проверки количества

# серверов, ожидающих запросов. Если их меньше, чем MinSpareServers,

# то он создает дополнительный резерв. Если больше, чем

# MaxSpareServers, то он уничтожает некоторые из них.

# Эти значения, вероятно, подходят для многих сайтов #

MinSpareServers 5 MaxSpareServers 20

#

# Количество запускаемых серверов — должно быть умеренное

# приблизительное число. #

StartServers 8

# Предел на общее количество запускаемых серверов, т.е. предел на число

# одновременно соединяющихся клиентов — если этот предел когда-либо

# будет достигнут, клиенты будут ЗАБЛОКИРОВАНЫ, поэтому он НЕ ДОЛЖЕН

# БЫТЬ СЛИШКОМ МАЛЕНЬКИМ. Этот параметр главным образом используется

# как тормоз, чтобы необузданный сервер не потянул за собой Unix,

# который в это время начнет тормозить… #

MaxClients 150

# MaxRequestsPerChild: максимальное количество запросов, разрешенных

# для обработки каждому дочернему процессу перед его удалением.

# После этого дочерний процесс будет завершен, чтобы избежать

# неприятностей связанных с продолжительным использованием из-за

# изъянов Apache (а может и используемых им библиотек) . На многих

# системах этот параметр не очень нужен, но некоторые (такие как

# Solaris) действительно имеют изъяны в библиотеках. Для таких систем

# задайте значение, наподобие 10000;

# значение 0 означает «неограниченный».

#

# Внимание: Это значение не включает keepalive-запросы после .соединения.

# Например, если дочерний процесс обрабатывает начальный запрос и 10

# последующих keptalive-запросов, будет учтен только один запрос

# при анализе превышения данного предела .

#

MaxRequestsPerChild 100

#

# Listen: Позволяет привязать Apache к конкретным IP-адресам

# и/или портам, в дополнение к принятым по умолчанию значениям.

# См. также команду VirtualHost.

#

#Listen 3000

#Listen 12.34.56.78:80

Listen 80

#

# BindAddress: Эту сйщию можно использовать для поддержки виртуальных

# хостов. Эта опция указывает серверу IP-адрес для прослушивания. Он

# может содержать либо «*», либо IP-адрес, либо полное квалифицированное

# имя Internet-домена. См. также команду VirtualHost.

#

# BindAddress *

# Поддержка Dynamic Shared Object (DSO — Динамические

# совместные объекты)

#

# Чтобы использовать функциональность модулей, построенных как DSO,

# поместите соответствующие строчки ‘LoadModule’ в этом месте, чтобы

# содержащиеся в них команды были доступны до того, как они будут

# использованы. Для дополнительной информации о механизме DSO,

# пожалуйста, прочтите файл README. DSO из дистрибутива Apache Д. 3 и

# запустите ‘httpd -1’ для получения списка уже встроенных модулей

# (они Скомпонованы статически и, таким образом, всегда доступны)

# в исполняемом модуле httpd.

# # Внимание : Порядок загрузки модулей существенен. Не меняйте

# приведенный ниже порядок без консультации со специалистом.

# Пример :

# LoadModule foo_module libexec/mod_foo.so

#

# LoadModule imiap_static_module modules /mod_mmap_static. so

LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule env_module modules /mod_env. so

LoadModule conf ig_log_module modules /mod_log_config. so

LoadModule agent_log_module modules /mod_log_agent .so

LoadModule referer_log_module modules /mod_log_referer .so

#LoadModule mime_magic_module modules /mod_mime_magic .so

LoadModule mime_module modules /mod_mime. so

LoadModule negotiation_module modules /mod_negotiation. so

LoadModule status_module modules /mod_status. so

LoadModule info_module modules /mod_info. so

LoadModule includes_module modules/mod_include.so

LoadModule autoindex_module modules/mod_autoindex.so

LoadModule dir_module modules /mod_dir .so

LoadModule cgi_module modules /mod_cgi .so

LoadModule asis_module modules/mod_asis . so

LoadModule imap_module modules /mod_imap. so

LoadModule action_module modules /mod_actions . so

tLoadModule speling_module modules /mod_speling. so

LoadModule userdir_module modules /mod_userdir. so

LoadModule alias_module modules/mod_alias .so

LoadModule rewrite_module modules /mod_rewrite. so

LoadModule access_module modules /mocLaccess. so

LuaJWuUule auUuuuQule modules/mod_auth.so

LoadModule anon_auth_module modules /mocLauth_anon. so

LoadModule db_auth_module modules /mod_auth_db. so

#LoadModule digest module modules /mod_dige’st. so

#LoadModule proxy_module modules /libproxy. so

#LoadModule cern_meta_moduie modules /mod cern_meta.so

LoadModule expires_module modules /mod_expires. so

LoadModule headers_module modules/mod_headers.so

#LoadModule usertrack_module modules /mod_user track. so

#LoadMnHn1e example_modul modules /mod_example. so

#LoadModule unique_id_module modules /mod_unique_id. so

LoadModule setenvif_module moauies/mod_secenvit.so

#LoadModule bandwidth_module modules /mod_bandwidth . so

ILoadModule put_module modules/mod_put.so

<If Define HAVE_PERL>

LoadModule perl_module modules /libperl .so

</lfDefine>

<If Define HAVE_PHP>

LoadModule php_module modules /mod_php. so

</IfDefine>

<IfDefine HAVE_PHP3>

LoadModule php3_module modules /libphpS . so

</IfDefine>

<IfDefine HAVE_PHP4>

LoadModule php4_module modules/ Iibphp4. so

</IfDefine>

<IfDefine HAVE_DAV>

LoadModule dav_module modules /libdav. so

</IfDefine>

<If Define HAVE_ROAMING>

LoadModule roaming_module modules /mod_roaming. so

</IfDefine>

<IfDefine HAVE_SSL>

LoadModule ssl_module modules/libssl .so

</IfDef ine>

# Реконструкция полного списка модулей из всех доступных модулей

# (статических и совместных) для обеспечения правильного порядка

# выполнения модулей.

# [ВСЯКИЙ РАЗ ПОСЛЕ ПОПРАВОК В СЕКЦИИ LOADMODULE (см. выше)

# ТАКЖЕ ОТКОРРЕКТИРУЙТЕ И ЭТУ СЕКЦИЮ]

ClearModuleList

#AddModule mod_mmap_static.c

AddModule mod_vhost_alias.c

AddModule mod__env.с

AddModule mod_log_conf ig.c

AddModule mod_log_agent.c

AddModule mod_log_referer.c

#AddModule mod_mime_magic . с

AddModule mod_mime . с

AddModule mod_negotiation.c

AddModule mod_status.c

AddModule mod_info.c

AddModule mod_include.c

AddModule mod_auto index . с

AddModule mod_dir.c

AddModule mod_cgi.c

AddModule mod_asis.c

AddModule mod_imap.c

AddModule mod_actions.c

#AddModule mod_spel ing . с

AddModule mod_userdir . с

AddModule mod_alias.c

AddModule mod_rewrite .c

AddModule mod_access . с

AddModule mod_auth.c

AddModule mod_auth_anon . с

AddModule mod_auth_db . с

#AddModule mod_digest.c

#AddModule mod_proxy.c

#AddModule mod_cern_meta . с

AddModule mod_expires . с

AddModule mod_headers . с

#AddModule mocLuser track _e

#AddModule mod_example.c

#AddModule mod_unique_id . с

AddModule mod_so.c

AddModule mod_setenvif .c

#AddModule mod__bandwidth . с

#AddModule mod_put.c

< If Define HAVE_PERL>

AddModule mod_perl.с

</IfDefine>

<IfDefine HAVE_PHP>

AddModule mod_php.c

</IfDefine>

<IfDefine HAVE_PHP3>

AddModule mod_php3 . с

</IfDef ine>

<If Define HAVE_PHP4>

AddModule mod_php4.c

</IfDefine>

<If Define HAVE_DAV>

AddModule mod_dav . с

</IfDefine>

<IfDefine HAVE_ROAMING>

AddModule mod_roaming . с

</IfDef ine>

<IfDefine HAVE_SSL>

AddModule mod_ssl . с

</IfDef ine>

# ExtendedStatus : определяет, будет ли Apache генерировать

# информацию о состоянии в полном объеме (ExtendedStatus On)

# или только базисную информацию (ExtendedStatus Off) ,

# когда вызывается обработчик «server-status». По умолчанию

# используется значение Off.

#

#ExtendedStatus On

#

### Раздел 2: ‘Main’ конфигурация сервера

#

# Директивы этого раздела устанавливают значения, используемые

# ‘main’ сервером, который отвечает на любой запрос, не

# обработанный хостом <VirtualHost>.

# Эти значения также задают величины по умолчанию для любых

# контейнеров <VirtualHost>, которые вы можете

# определить позже.

#

# Все эти директивы могут возникать внутри контейнеров

# <VirtualHost>. В этом случае значения по умолчанию будут

# заменены этими величинами для виртуальных хостов.

#

#

# Если ваша директива ServerType (см. выше в разделе

# ‘Global Environment’) устанавливает значение «inetd»,

# следующие несколько директив не оказывают никакого эффекта,

# поскольку их значения определены inetd-конфигурацией.

#

# Переходите к директиве ServerAdmin.

#

# Port: порт, который прослушивает сервер в режиме standalone.

# Если номер порта < 1023, то при загрузке httpd нужно запускать с

# привилегиями root .

# Port 80

# Чтобы запустить httpd как другого пользователя или группу

# пользователей, необходимо вначале запустить httpd как root, a

# он затем сам выполнит переключение.

#

# User/Group: Имя (или #номер) пользователя/группы, под которым

# запустить httpd.

# На SCO (ОПТ 3) используйте User nouser и Group nogroup

# Если на HPUX указать nobody, то нельзя будет использовать

# разделяемую память и выходом из положения может быть

# создание пользователя www и его использование.

#

# ПРИМЕЧАНИЕ : в некоторых системах ядро отвергает запросы на

# setgid(Group) или semctl(IPC_SET), если величина (unsigned)

# Group больше 60000;

# не используйте группу nobody на таких системах!

User apache Group apache

# ServerAdmin: Адрес, куда направлять электронную почту

# для решения проблем с сервером.

#

ServerAdmin root@localhost

# ServerName позволяет установить имя хоста, которое будет возвращаться

# клиентам сервера, если оно отличается от имени, получаемого

# программой (т.е. используется «www» вместо настоящего имени хоста). #

# Примечание: Нельзя просто придумать имя хоста и надеяться, что оно

# будет работать. Имя, которое здесь определяется, должно быть

# допустимым DNS-именем для хоста. Если это не понятно -.

# проконсультируйтесь с вашим сетевым администратором.

# Если ваш хост не имеет зарегистрированного DNS-имени, # введите здесь его IP-адрес.

# Вы в любом случае получите доступ к хосту по его адресу

# (например, http://123.45.67.89/ и эта директива позволит

# выполнить переадресацию. ServerName localhost

#

# DocumentRoot: Каталог, из которого будут предоставляться документы.

# По умолчанию на все запросы файлы предоставляются из этого каталога,

# но могут использоваться символические ссылки и псевдонимы

# для указания других источников, #

DocumentRoot «/var/www/html»

#

# Каждый каталог, к которому Apache имеет доступ, может быть настроен

# с учетом того, какие сервисы и свойства разрешены и/или запрещены

# в этом каталоге (и его подкаталогах).

# Вначале установим для «default» очень ограниченный набор прав доступа.

#

<Directory />

Options FollowSymLinks AllowOverride None </Directory>

#

# Заметьте: начиная с этого места, необходимо конкретно разрешать

# каждое действие. Если что-то работает не так, как ожидалось,

# убедитесь, что соответствующее действие разрешено.

# Эта строчка должна содержать то же, что и элемент.DocumentRoot.

#

<Directory «/var/www/html»>

# Здесь допустимы также значения «None», «All» и любые комбинации

# «Indexes», «Includes», «FollowSymLinks», «ExecCGI» и «MultiViews».

# Заметьте: «MultiViews» должно быть указано *явно* — «Options All»

# не устанавливает эту опцию.

Options Indexes Includes FollowSymLinks

#

# Здесь указывается, какие опции могут переопределить файлы .htaccess,

# находящиеся в каталогах. Значение может быть «All» или любой

# комбинацией «Options», «Filelnfo», «AuthConfig» и «Limit».

AllowOverride None

# Указывает, кто может брать файлы на этом сервере

Order a How, deny

Allow from all

</Directory>

#

# UserDir: Имя каталога, которое добавляется к домашнему каталогу

# пользователя, если получен запрос типа ~user.

#

UserDir public_html

#

# Управление доступом к каталогам UserDir. Ниже приведен пример

# для узла, на котором каталоги объявлены доступными только для чтения.

#

#<Directory /home/*/public_html>

# AllowOverride Filelnfo AuthConfig Limit

# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

# <Limit GET POST OPTIONS PROPFIND>

# Order allow, deny

# Allow from all

# </Limit>

# <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>

# Order» deny, allow

# Deny from all

# </Limit>

#< /Directory>

#

# Directorylndex: Имя или имена файлов, которые будут использоваться как

# индексные файлы HTML. Разделяйте имена пробелами, если их несколько.

#

Directorylndex index.html index.htm index. shtml index. php index. php4

-> index . php3 index . cgi

#

# AccessFileName: Имя файла, который нужно искать в каждом каталоге

# и который содержит информацию по управлению доступом.

#

AccessFileName .htaccess

#

# Следующие строки защищают файлы .htaccess от просмотра

# Web- клиентами. Поскольку файлы .htaccess часто содержат

# сведения об авторизации, доступ закрывается из соображений

# безопасности. Закомментируйте эти строки, если хотите

# предоставить Web-клиентам возможность просмотра содержимого

# файлов .htaccess. Если вы изменили директиву AccessFileName

# выше, то внесите соответствующие изменения и здесь.

# Поскольку часто для файлов парольной защиты используются

# файлы .htpasswd, защита будет обеспечена.

#

<Files — н/ч \ .ht»>

Order allow, deny

Deny from all

</Files>

#

# CacheNegotiatedDocs : По умолчанию Apache посылает псевдокомментарий:

# не кэшировать содержимое документов по договоренности. Это указывает

# прокси-серверу не кэшировать документы. Раскомментирование нижестоящей

# строки отменяет это действие и прокси-серверам будет разрешено

# кэширование документов.

#

# CacheNegotiatedDocs

#

# UseCanonicalName: (появилось в 1.3) Если включить эту опцию, то

# всякий раз, когда Apache нужно построить самоссылающийся URL

# (URL, который ссылается на сервер, с которого идет ответ) , он будет

# использовать ServerName и Port для формирования «канонического»

# имени. Когда эта опция выключена, сервер будет использовать

# переданный клиентом hostname:port, если это возможно. Это также влияет

# на SERVER NAME И SERVER PORT в CGI.

#

UseCanonicalName On

#

# TypesConfig указывает где нужно искать файл mime. types (или его аналог)

#

TypesConfig /etc /mime. types

#

# DefaultType — тип MIME по умолчанию для тех документов, тип

# которых сервер не может определить по расширению файлов.

# Если ваш сервер содержит в основном текстовые или

# HTML-документы, следует задать значение «text/plain».

# Если содержимое в основном дцоичное, например, приложения

# или иллюстрации, можно использовать значение

# «application/ octet-stream», чтобы заблокировать попытки

# браузеров отобразить двоичные файлы как текст.

#

DefaultType text/plain

#

# mod mime magic позволяет серверу использовать различные

# особенности самого файла для определения его типа.

# Директива MIMEMagicFile указывает модулю, где

# расположены предлагаемые определения..

# mod mime magic не является частью сервера по умолчанию

# (необходимо добавить его самостоятельно с помощью

# LoadModule [см параграф DSO в разделе ‘Global Environment’],

# или рекомпилировать сервер и включить mod mime_magic

# как часть конфигурации) , поэтому он заключен в контейнер

# <IfModule>.

# Это значит, что директива MIMEMagicFile будет отработана

# только если модуль является частью сервера.

#

<IfModule mod_mime_magic . о

MIMEMagicFile /usr/ share/magic

</IfModule>

#

# HostnameLookups : Протоколировать имена клиентов или же только

# их IP-адреса т.е. www.apache.org (on) или 204.62.129.132 (off)

# По умолчанию off, так как для сети намного лучше, когда люди

# должны сознательно включать эту опцию. Вариант on приводит

# к тому, что каждый клиентский запрос порождает по крайней

# мере одно обращение к серверу имен.

#

HoetnameLookupe O££

#

# ErrorLog: Расположение файла протокола ошибок.

# Если директива ErrorLog не задана в контейнере

# <VirtualHost>, сообщения об ошибках, касающихся

# виртуального хоста, будут регистрироваться здесь.

# Если вы определили файл регистрации ошибок для

# контейнера <VirtualHost>, то сообщения об .ошибках хоста

# будут регистрироваться в этом файле, а не здесь.

#

ErrorLog /var/log/httpd/error_log

#

# Log~Level: Управляет количеством сообщений,

# записывающихся в error log.

# Перечень возможных вариантов: debug, info, notice, warn,

# error, crit, alert, emerg.

#

LogLevel warn

#

# Далее следуют команды, определяющие формат мнемонических

# имен, которые будут использоваться в команде CustomLog (см. ниже) .

#

LogFormat «%h %1 %u %t \»%r\» %>s %b \ «%{Referer}i\» \»%{User-

-> Agent }i\» » combined

LogFormat «%h %1 %u %t \»%r\» %>s %b» common

LogFormat «%{Referer}i -> %U» referer

LogFormat «% {User-agent}!» agent

#

# Расположение файла протокола доступа (Обычный Формат Протокола) .

# Если вы не определили никаких файлов протокола доступа в контейнере

# <VirtualHost>, транзакции будут регистрироваться здесь.

# Если вы определили файл регистрации для контейнера

# <VirtualHost>, то транзакции; хоста будут регистрироваться

# в этом файле, а не здесь.

#

CustomLog /var/log/httpd/access_log common

# # Если нужен файл протокола для агентов и рекомендателей —

# раскомментируйте нижестоящие команды.

#

# CustomLog /var/log/httpd/referer_log referer

# CustomLog /var/log/httpd/agent_log agent

# Чтобы использовался один общий файл для протоколирования доступа,

# агента и рекомендателя (Комбинированный Файл Протокола) можно

# использовать следующую команду.

#

# CustomLog /var/log/httpd/access_log combined

#

# Можно добавить строку, содержащую версию сервера

# и имя виртуального хоста для страниц, сгенерированных

# сервером (сообщения об ошибках,, списки ЕТР-каталогов,

# вывод mod status и mod info и т.п.,

# но не документы, сгенерированные CGI) .

# Задайте значение «EMail», чтобы также включить ссылку

# mailto: на ServerAdmin.

# Задайте одно из значений: On | Off | EMail

#

ServerSignature On

#

# Aliases: Укажите здесь столько псевдонимов, сколько’ необходимо

# (без ограничения) . Формат следующий: Alias fakename realname

#

# Заметьте: если завершить фиктивное имя fakename символом «/»,

# то сервер требует его присутствия в URL. Так, «/icons» не замещается

# в этом примере.

#

Alias /icons/ «/var/www/ icons/»

<Directory » /var/www/ icons «>

Options Indexes MultiViews

AllowOverride None

Order a 1 1 ow , deny

Allow from all

</Directory>

#

# ScriptAlias: Указывает каталоги, в которых находятся сценарии сервера.

# ScriptAliases по сути представляют собой то же самое, что и Aliases,

# кроме документов из каталога realname, которые интерпретируются

# как приложения и запускаются сервером по запросу вместо отправки

# клиенту в качестве документов .

# Правила в отношении «/»/ описанные выше для Alias,

# справедливы и для директив ScriptAlias .

#

ScriptAlias /cgi-bin/ «/var/www/cgi-bin/ »

#

# «/var/www/cgi-bin» следует заменить на CGI-каталог

# ScriptAliased, если он существует и сконфигурирован.

#

<Directory «/var/www/cgi-bin»>

AllowOverride None

Options ExecCGI

Order allow, deny

Allow from all

</Directory>

# Redirect позволяет указать клиентам те документы, которые раньше

# были в вашем пространстве имен, а теперь отсутствуют. Это позволяет

# вам сообщить клиентам, где можно найти перемещенный документ.

# Формат: Redirect old-URI new-URL

#

#

# Директивы, управляющие отображением листингов,

# сгенерированных сервером.

#

#

# Fancy Indexing указывает на тип индексирования .каталогов —

# узорчатый или стандартный.

#

IndexOptions Fancylndexing

#

# Addlcon указывает серверу какие значки показывать для

# различных файлов или расширений файлов. Они отображаются

# только для проиндексированных Fancylndexing каталогов.

#

AddlconByEncoding (CMP, /icons /compressed. gif) x-compress x-gzip

AddlconByType (TXT, /icons /text. gif) text/*

AddlconByType (IMG, /icons /irnage2 .gif ) image/*

AddlconByType ( SND , / icons / sound2 .gif) audio / *

AddlconByType (VID, /icons /movie.gif) video/*

Addlcon /icons /binary. gif .bin .exe

Addlcon / icons /binhex. ‘gif .hqx

Addlcon /icons /tar. gif .tar

Addlcon /icons /world2 .gif .wrl .wrl.gz .vrml .vrm .iv

Addlcon /icons /compressed. gif .z .z .tgz .gz .zip

Addlcon /icons /a. gif .ps .ai .eps

Addlcon /icons /layout. gif .html .shtml .htm .pdf

Addlcon /icons /text. gif . txt

Addlcon /icons/c.gif .с

Addlcon /icons/p.gif .pi .py

Addlcon / icons /f. gif .for

Addlcon /icons/dvi.gif .dvi

Addlcon /icons /uuencoded.gif .uu

Addlcon /icons/script. gif .conf .sh . shar .csh . ksh .tcl

Addlcon / icons /tex. gif .tex

Addlcon /icons /bomb. gif core

Addlcon /icons /back. gif ..

Addlcon /icons/hand. right. gif README

Addlcon /icons /folder. gif ^^DIRECTORY^^

Addlcon /icons /blank. gif ^^BLANKICON^^

#

# Defaultlcon указывает, какой значок .использовать для файлов,

# для которых он явно не указан.

#

Defaultlcon /icons/unknown. gif

# AddDescription позволяет разместить краткое описание после.

# имени файла в генерируемых сервером индексах.

# Формат: AddDescription «описание» ИмяФайла

#

# AddDescription «GZIP compressed document» . gz

# AddDescription «tar archive» .tar

# AddDescription «GZIP compressed tar archive» .tgz

#

#

# ReadmeName — имя README-файла, которое сервер будет искать

# по умолчанию, чтобы добавить к списку каталогов.

#

# HeaderName — имя файла, которое сервер будет искать,

# чтобы добавить к началу индекса каталогов.

#

# Сервер сначала будет искать файл name.html и учтет его,

# если найдет. Если этот файл не обнаружится, то будет

# выполнен поиск файла name . txt . Если сервер найдет

# этот файл, то включит его как текстовый файл.

#

ReadmeName README

HeaderName HEADER

#

# Indexlgnore — список имен файлов, игнорируемых

# при индексировании каталога. Разрешается использование

# символов подстановки в соответствии с синтаксисом оболочки.

#

Indexlgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

#

# AddEncoding позволяет указать некоторым браузерам

# (Mosaic/X 2.1+) распаковывать информация? на лету.

# Примечание : не все браузеры это поддерживают .

# Несмотря на схожесть названий, следующие директивы Add*

# не оказывают влияния на директивы настройки FancyIndexing

# приведенные выше. #

AddEncoding x-compress Z AddEncoding x-gzip gz

#

# AddLanguage позволяет указать язык, используемый в документе., Затем

# можно выполнить согласование содержимого, чтобы вернуть браузеру файл

# использованием понимаемого им языка. Заметьте: суффикс не обязан быт

# таким же, как и ключевое слово языка — те, кто имеет документы на

# польском, для которого стандартный сетевой код pi, могут использоват

# «AddLanguage p1.ро» во избежание двусмысленности с таким же

# суффиксом для сценариев perl. #

AdSLanguage en .en

AddLanguage fr .fr

AddLanguage de .de

AddLanguage da .da

AddLanguage el .el

AddLanguage it .it

#

# LanguagePriority позволяет назначить приоритет для некоторых

# языков на случай, если при согласовании содержимого не удастся

# достичь единого мнения.

# Просто перечислите языки в убывающем порядке предпочтения. #

LanguagePriority en fr de

#

# AddType позволяет откорректировать mime.types без их реальной

# модификации, а также позволяет установить определенный тип

# для некоторых файлов.

# Далее приведены директивы для РНР4 (конфликт с PHP/FI, ниже): <IfModule mod_php4.c>

AddType application/x-httpd-php .php4 .php3 .phtml .php

AddType application/x-httpd-php-source .phps </IfModule>

# Далее приведены директивы для РНРЗ: <IfModule mod_php3.c>

AddType application/x-httpd-php3 .php3

AddType application/x-httpd-php3-source .phps </IfModule>

# Далее приведены директивы для PHP/FI (PHP2):

<IfModule mod_php.c>

AddType application/x-httpd-php .phtml </IfModule>

AddType application/x-tar .tgz

# AddHandler позволяет назначить некоторые расширения файлов

# «обработчикам», действия которых не связанны с типом файлов.

# Их можно встроить в сервер либо добавить командой Action (см. ниже). #

# Если вы хотите использовать дополнения на сервере, или CGI вне

# каталогов ScriptAliased, раскомментируйте следующие строки. #

# Для использования сценариев CGI: #

AddHandler cgi-script .cgi #

# Для использования файлов HTML, анализируемых сервером: #

AddType text/html .shtml AddHandler server-parsed .shtml

#

# Раскомментируйте следующую строку, чтобы разрешить

# использовать свойство Apache «send-asis HTTP file» #

#AddHandler send-as-is asis

#

# Для использования файлов рисунков, анализируемых сервером: #

AddHandler imap-file map #

# Чтобы разрешить использование плат типов: #

#AddHandler type-map var

# Action позволяет указать типы источников, которые будут запускать

# сценарий при указании соответствующего файла. Это позволяет

# избежать использования повторяющихся URL в часто используемых

# процессорах CGI-файлов.

# Формат: Action media/type /cgi-script/location

I Формат: Action handler-name /cgi-script/location #

# MetaDir: указывает имя каталога, в котором Apache может

# найти метафайлы. Эти файлы содержат дополнительные HTTP-заголовки,

# включаемые в документы при отправке.

# #MetaDir .web

#

# MetaSuffix: указывает суффикс имен файлов, содержащих метаинформацию. #

# MetaSuffix .meta

#

# Настраиваемые ответные сообщения об ошибках (стиль Apache)

# имеется три варианта #

# 1) обычный текст

# ErrorDocument 500 «The server made a boo boo.

# N.B. Символ («) является признаком текста и не отображается

# 2) локальное перенаправление

#ErrorDocument 404 /missing.html

# для перенаправления на локальный URL /missing.html

#ErrorDocument 404 /cgi-bin/missing_handler .pi

# N.B. Можно перенаправлять на сценарий или документ,

# используя включения со стороны сервера.

#

# 3) внешнее перенаправление

#ErrorDocument 402 http : / /some . other_server . com/subscription_inf о . html

# N.B. Многие переменные окружения, связанные

# с исходным запросом, в таком сценарии будут недоступны.

#

# Следующие команды модифицируют обычную процедуру ответа HTTP.

# Первая команда запрещает keepalive для Netscape 2.x и браузеров,

# которые представляются как Netscape 2.x. Известны проблемы,

# связанные с этим. Вторая команда — для Microsoft Internet

# Explorer 4.0Ь2, которая имеет неправильную реализацию НТТР/1.1

# и неправильно поддерживает keepalive, когда эта опция

# используется в ответах 301 и 302 (перенаправление) .

BrowserMatch «Mozilla/2» nokeepalive

BrowserMatch «MSIE 4\.0b2; » nokeepalive downgrade- 1.0 force-response- 1. 0

#

# Следующие команды запрещают ответы HTTP/1.1 браузерам,

# которые нарушают спецификацию НТТР/1 отсутствием понимания самых

# простых ответов 1.1.

#

BrowserMatch «RealPlayer 4\.0» force-response-1 .0

BrowserMatch «Java/l\.0» force-response-1 . 0

BrowserMatch «ODK/IN.O» force-response-1 .0

# Если модуль perl установлен, то следующие директивы выполнятся.

<IfModule mod_perl.c>

Alias /perl/ /var/www/perl/

<Location /perl>

SetHandler perl-script

PerlHandler Apache: : Registry

Options +ExecCGI

</Location>

</IfModule>

#

# Разрешает http-размещение (наподобие публикации в Netscape Gold) .

# Используйте htpasswd для генерации /etc/httpd/conf/passwd.

# Необходимо раскомментировать эти две строки и в начале этого файла:

#

#LoadModule put_module modules /mod_put. so

#AddModule mod_put.c

#

#Alias /upload /tmp

#<Location /upload>

# EnablePut On

# AuthType Basic

# AuthName Temporary

# AuthUserFile /etc/httpd/conf/passwd

# EnableDelete Off

# umask 007

# <bimit PUT>

# require valid-user

# </Limit>

#</Location>

#

# Позволяет серверу возвращать отчет, находящийся по URL

# http://servername/server-status

# Для включения этого режима следует изменить

# «.your_domain.com» на ваш домен.

#

#<Location /server-status>

# SetHandler server-status

# Order deny, allow

# Deny from all

# Allow from .your_domain.com

#</Location>

# Позволяет отчеты о конфигурации удаленного сервера

# с URL http: //servername/server-info

# (необходимо, чтобы mod info. с был загружен)

# Для включения этого .режима следует изменить

# «.your_domain.com» на ваш домен.

#

#<bocation /server- info>

# SetHandler server- info

# Order deny, allow

# Deny from all

# Allow from .your_dpmain.com

#</Location>

# Разрешает доступ к документам локального компьютера с localhost

Alias /doc/ /usr/share/doc/

<Location /doo

order deny, allow

deny from all

allow from localhost

Options Indexes FollowSymLinks

</Location>

# Имеются сообщения, что некоторые люди пытаются незаконно использовать

# старую ошибку со времен версии 1.1. Эта ошибка была в сценарии CGI,

# поставлявшемся как часть Apache. Сняв комментарии с этих строк, можно

# перенаправить эти атаки на протоколирующий сценарий, который находится

# на phf.apache.org. Или можно самостоятельно записывать их,

# используя сценарий support/phf abuse log.cgi.

#

#<Location /cgi-bin/phf*>

# Deny from all

### Раздел З: Виртуальные хосты

# VirtualHost: Если вы хотите поддерживать несколько

# доменов/имен хостов на вашем компьютере, можете задать

# для них контейнеры VirtualHost. См. документацию по адресу

# <URL: http://www.apache.org/docs/vhosts/ >

# для ознакомления с подробностями перед тем, как

# приступить к установке виртуальных хостов.

# Можно использовать в командной строке опцию ‘-S’, чтобы

# проверить конфигурацию вашего виртуального хоста.

#

# Если вы хотите использовать именованные виртуальные

# хосты, необходимо определить, по крайней мере, один

# IP-адрес (и номер порта) для них. #

#NameVirtualHost 12.34.56.78:80 #NameVirtualHost 12.34.56.78

#

# Пример VirtualHost:

# Практически любая директива Apache может вставляться в

# контейнер VirtualHost .

#

# <VirtualHos t ip . address . of . host . some_domain . com>

# ServerAdmin webmasterShost .some_domain.com

# DocumentRoot /www/docs/host . some_domain. com

# ServerName host . some_domain . com

# ErrorLog logs/host .some_domain.com-error_log

# CustomLog logs /host. some_domain.com-access_log common

#</VirtualHost>

#<VirtualHost _default_:*>

#</VirtualHost>

<If Define HAVE_SSL>

##

## SSL Virtual Host Context

##

# По умолчанию Apache только слушает порт 80.

# Определение виртуального сервера (см. ниже) не вызывает

# автоматического прослушивания порта виртуального сервера.

Listen 443

<VirtualHost _default_:443>

# Общая установка виртуального хоста

DocumentRoot «/var/www/html»

# SSL Engine ключ:

# Разрешение/запрет SSL для этого виртуального хоста.

SSLEngine on

# SSL шифры:

# Список шифров, которые клиент может использовать.

# См. в документе mod ssl полный список шифров.

#SSLCipherSuite ALL: !ADH:RC4+RSA:+HIGH: +MEDIUM: +LOW: +SSLv2 : +EXP: +eNULL

# Сертификат сервера:

# Адресует SSLCertificateFile на РЕМ-кодированный сертификат.

# Если сертификат зашифрован, появится запрос пароля.

# Обратите внимание: kill -HUP- вызовет повторный запрос

# пароля. Тестовый сертификат можно сгенерировать с помощью

# `make certificate’ в ходе построения. Если вы используете и

# RSA и DSA сертификаты, то оба можно конфигурировать одновременно

# (чтобы также разрешить использование шифров DSA и т.д.) .

SSLCertificateFile /etc/httpd/conf /ssl .crt/server ,crt

#SSLCertif icateFile /etc/httpd/conf /ssl . crt/server-dsa. crt

# Частный ключ сервера:

# Если ключ не объединен с сертификатом, используйте эту директиву,

# чтобы указать файл ключа. Если вы используете и RSA и DSA

# сертификаты, то оба можно конфигурировать одновременно

# (чтобы также разрешить использование шифров DSA и т.д.) .

SSLCertif icateKeyFile /etc/httpd/conf /ssl . key/server . key

#SSLCertificateKeyFile /etc/httpd/conf /ssl. key/server-dsa. key

# Цепочка сертификатов сервера :

# Адресует SSLCertificateChainFile на файл, содержащий

# соединение РЕМ- кодированных СА- сертификатов. Он

# формирует цепочку сертификатов для серверного сертификата .

# Альтернатива: указанный файл может быть тем же, что и файл

# SSLCertificateFile, если СА-сертификаты, для удобства,

# непосредственно связаны с серверным сертификатом.

#SSLCertificateChainFile /etc/httpd/conf /ssl . crt/ca.crt

# Авторизация сертификата (СА) :

# Задайте пути верификации сертификата СА, т.е. место где

# можно найти сертификаты СА для аутентификации клиентов или

# один большой файл, содержащий все сертификаты (файл должен

# быть РЕМ-кодированным) .

# Внимание : Внутри SSLCACertificatePath следует

# хешировать ссылки на файлы сертификатов. Пользуйтесь

# Makefile для обновления хешированных ссылок после

# внесения изменений.

#SSLCACertificatePath /etc/httpd/conf /ssl. crt

#SSLCACertificateFile /etc/httpd/conf /ssl. crt/ca-bundle. crt

# Список отмененных сертификатов (CRL) :

# Задайте путь отмененных СА, чтобы можно было найти список

# отмененных СА для аутентификации клиентов или один большой файл,

# содержащий все сертификаты (файл должен быть РЕМ-кодированным) .

# Внимание : Внутри SSLCARevocationPath следует

# хешировать ссылки на файлы сертификатов. Пользуйтесь

# Makefile для обновления хешированных ссылок после

# внесения изменений.

#SSLCARevocationPath /etc/httpd/conf /ssl . crl

#SSLCARevocationFile /etc/httpd/conf /ssl . crl/ca-bundle. crl

# Аутентификация клиента (тип) :

# Тип и глубина верификации сертификатов клиентов. Типы:

# none, optional, require и optional no ca. Глубина

# задается как номер, который определяет, насколько глубоко

# следует проверять цепочку издателя сертификата,

# чтобы убедиться в негодности сертификата.

#SSLVerifyClient require

#SSLVerifyDepth 10

# Контроль доступа:

# Посредством SSLRequire можно управлять доступом к каталогам,

# задавая произвольные булевы выражения, содержащие обращения

# к серверным переменным. Синтаксис выражений представляет собой

# нечто среднее между С и Perl. Подробности см. в файле mod ssl.

#<Location />

#SSLReqUire ( %{SSL_CIPHER) ! ~ m/ n (ЕХР |NULL) -/ \

# and %{SSL_CLIENT_S_DN_O} eq «Snake Oil, Ltd.» \

# and %{SSL_CLIENT_S_DN_OU} in {«Staff», «CA», «Dev»} \

# and %{TIME_WDAY) >= 1 and %{TIME_WDAY} <= 5 \

# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \

tt or %{REMOTE_ADDR) =~ m/ n !92\ .76\ . 162\ . [0-9] +$/

#</Location>

# Опции SSL Engine:

# Установка различных опций SSL engine.

# о FakeBasicAuth:

# Трансляция клиента Х.509 в Basic Authorisation.

# Это значит, что для контроля доступа могут

# использоваться стандартные методы Auth/DBMAuth.

# Имя пользователя представляет собой однострочную версию

# клиентского сертификата Х.509.

# Обратите внимание, что от пользователя не требуется

# пароль. Каждый ввод в пользовательском файле требует

# пароля: ~xxj31ZMTZzkVA’ .

# о ExportCertData :

# Экспортируются две дополнительных переменных:

# SSL CLIENT CERT и SSL_SERVER_CERT . Они

# содержат РЕМ-кодированные сертификаты сервера

# (они существуют всегда) и клиента (существуют

§ только, если используется аутентификация клиента) .

# Это можно использовать для импорта сертификатов

# в CGI- сценарии.

# о StdEnvVarc:

# Экспортируются V SSL *’ переменные окружения,

# относящиеся к стандартным SSL/TLS.

# По умолчанию это экспортирование заблокировано из

# соображений производительности, поскольку операция

# извлечения относится к достаточно дорогим, и бесполезна

# для обслуживания статического контента. Поэтому

# разрешение выдается обычно только для CGI- и

# SSI-запросов.

# о CompatEnvVars :

# Экспортируются устаревшие переменные окружения

# для совместимости со старыми версиями Apache-SSL 1.x,

# mod ssl 2.0.x, Sioux 1.0 и Stronghold 2.x. Используйте

# для совместимости с существующими CGI-сценариями.

# о StrictRequire:

# Запрещается доступ, когда применяется «SSLRequireSSL»

f или «SSLRequire», даже в ситуации «Satisfy any»,

# т.е. когда применяется эта опция, доступ запрещен

# и никакой другой модуль изменить этого не может..

# OptRenegotiate:

# Разрешает оптимизированную обработку SSL-соединения

# когда SSL-директивы используются в контексте

# отдельного каталога.

tSSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire

<Files ~ «\. (cgi|shtml)$»>

SSLOptions +StdEnvVars

</Files>

<Directory «/var/www/cgi-bin»>

SSLOptions +StdEnvVars

</Directory>

# Примечание: Большинство проблем взлома клиентов

# связаны с возможностями подтверждения активности

# HTTP (keepalive) , поэтому следует запретить keepalive

# для этих клиентов. Используйте для этого переменную

# «nokeepalive».

SetEnvIf User-Agent «.*MSIE.*» nokeepalive ssl-unclean-shutdown

# Протокол для каждого сервера:

# Место хранения пользовательского SSL файла протокола,

# Используйте эту опцию, если нужен компактный файл

# протокола SSL (без ошибок) на виртуальном хосте.

CustomLog /var/log/httpd/ssl_request_log \

«%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \»%r\» %b»

</VirtualHost>

</IfDefine>

Заметьте: этот файл содержит и комментарии, и реальные команды конфигурирования. Комментарии начинаются с символа диеза (#). Команды состоят из имени команды, за которым следует параметр.

В файле httpd.conf три раздела: Global Environment, Main Server Configuration и Virtual Hosts. Рассмотрим каждый из них подробно.

Понравилась статья? Поделить с друзьями:
  • Задание исправь ошибки 1 класс математика
  • Задания на нахождение речевых ошибок
  • Задание егэ исправить ошибку
  • Задания на логические ошибки
  • Задание выполняющееся нами не вызывает особых затруднений ошибка