Разное

Веб сервер апач: Как установить веб-сервер Apache c PHP, MySQL и phpMyAdmin на Windows

06.05.2019

Содержание

Установка и настройка Apache сервера

В этой статье расказано как установить и настроить Apache-сервер на стандартный домашний компьютер, работающий под управлением Windows, чтобы на нём можно было заняться разработкой и написанием CGI-программ. Выполнив все приведённые здесь этапы, вы сможете запускать и проверять на своем компьютере все программы, представленные на этом сайте в качестве примеров.

  1. Скачайте Web-сервер Apache
  2. Установите Web-сервер Apache
  3. Настройте файла конфигурации Apache mime.types
  4. Настройте файла httpd.conf
  5. Проверте Web-сервера
  6. Проверте выполнение CGI-программы

Сервер Apache вы можете загрузить с узла компании по адресу http://www.apache.org. Щелкните на ссылке с именем download и выберите самую повую версия сервера для платформы Win32. Имя файла будет скорее всего вроде apache_1_3_9_win32.exe.

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

Рекомендуем установить сервер так (шесть шагов):

  1. Определитесь с директорией, в которую Вы будете устанавливать Apache. Все дальнейшие рассуждения основаны на том, что Вы выбрали для этой цели такой каталог: f:usrlocalapache Если диска F: у Вас нет, или если Вы не хотите его захламлять, советуем сделать одно из трех:
    1. Создайте диск F: с помощью какой-нибудь программы для виртуальных разделов (например, с помощью встроенной в Windows 95/98 программы DriveSpace). Это самое лучшее решение, и с точки зрения экономии памяти, и с точки зрения быстродействия. Ведь что такое Web-сайт, как не набор очень небольших файлов? А DriveSpace как раз и оптимизирует работу с такими файлами.
    2. Сделайте виртуальный диск F:. Для этого создайте где-нибудь на любом диске директорию, которая в будущем будет являться корневой для диска F:. Предположим, Вы выбрали C:INTERNET. Далее, в начале файла c:autoexec.bat пропишите такую строку:

      и перезагрузите компьютер. У вас должен появиться виртуальный пустой диск F:.

      ВНИМАНИЕ: имеются сведения, что в Windows 95/98 есть ошибка, в результате которой иногда subst-пути «сами по себе» преобразуются в абсолютные. То есть, например, иногда в рассмотренном выше примере команды

      f:
      cd
      cd
      dir

      (а точнее, команда dir в своем заголовке) ошибочно выведут, что текущая директория C: (а не F:, как это должно быть). Указанная ошибка чаще всего проявляется в неработоспособности Perl-транслятора. Так что лично мы не рекомендуем Вам использовать subst. Вместо этого воспользуйтесь пунктом 1.

    3. Наконец, Вы можете всего этого не делать и поставить Apache на любой другой диск, только тогда Вам придется немного тяжелее при выполнении всех остальных действий. Нужно будет все указываемые пути заменять на Ваши собственные, а это крайне неприятно. Еще раз настоятельно рекомендуем воспользоваться диском F:.

    Рекомендуем все же разместить Apache в указанном в начале каталоге, так как он максимально соответствует каталогу для реального Web-сервера Интернета. Ведь чем ближе в плане конфигурации мы будем к такому серверу, тем лучше и эффективнее сможем работать.

  2. Запустите только что скачанный файл. В появившемся диалоге нажмите кнопку Yes, а затем — кнопку Next.
  3. Теперь нажмите Browse. Вручную задайте директорию для установки: f:usrlocalapache и нажмите кнопку OK.
  4. Выберите тип установки — Сustom и уберите флажок Source Code (если, конечно, не хотите посмотреть исходные тексты Apache). Этим Вы сэкономите себе 3 Мбайта.
  5. Нажмите Next и подождите, пока будут копироваться файлы Apache.
  6. На запрос о перезагрузке компьютера ответьте «Перезагрузить».

Поздравляем — Apache установлен! Теперь самое неприятное — его настройка.

  1. Откройте директорию f:usrlocalapacheconf. Откройте находящийся там файл mime.types.
  2. Найдите в нем такую строчку:

    Измените ее на

    text/html      html htm shtml shtm sht

    Следует заметить, что если Вы по каким-то причинам не хотите портить файл mime.

    types, то можно вместо этого прописать в файле httpd.conf (см. ниже) строки вида

    AddType text/html html htm shtml shtm sht

Внимание! Это — самый ответственный момент установки. Просим соблюдать инструкции БУКВАЛЬНО.

  1. Откройте директорию f:usrlocalapacheconf Откройте находящийся там файл httpd.conf. Это — единственный файл, который Вам осталось настроить. Вам предстоит найти и изменить в нем некоторые строки, а именно те, о которых упоминается далее. Во избежание недоразумений не трогайте все остальное. Следует заметить, что в нем каждый параметр сопровождается несколькими строками комментариев, разобраться в которых с первого раза довольно тяжело. Поэтому не обращайте на них внимание.
  2. В поле ServerAdmin укажите Ваш E-mail адрес, который будет показываться в сообщениях об ошибке сервера. Например:
  3. В поле ServerName напишите любое слово — на работе это не сказывается, например:

    Только не забудьте раскомментировать поле ServerName, то есть убрать символ «#» перед этим параметром (по умолчанию он закомментирован)!

  4. В поле DocumentRoot укажите ту директорию, в которой будут храниться Ваши html-файлы, например:

    Разумеется, можете указать и любую другую директорию, если хотите. В любом случае, не забудьте ее создать, лучше сделайте это прямо сейчас!

  5. Найдите блок, начинающийся строкой <Directory /> и заканчивающийся </Directory> (вообще, такие блоки обозначают установки для заданной директории и всех ее поддиректорий). Его нужно изменить на:
    <Directory />
   Options Indexes Includes
   AllowOverride All
 </Directory>

    Таким образом, в этом блоке будут храниться установки для всех директорий по умолчанию (т.к. это — корневая директория).

  6. Найдите аналогичный блок, начинающийся <Directory «f:/usr/local/apache/htdocs»> и заканчивающийся </Directory>. Там будет много комментариев, не обращайте на них внимание. Этот блок следует заменить на:
    <Directory "f:/www"> Options Indexes Includes AllowOverride All Order allow,deny Allow from all </Directory>

    Это — установки для директории с Вашими html-документами. Если хотите, можете установить другую директорию, главное, чтобы она совпадала с той, которая прописана в параметре DocumentRoot

  7. Идем дальше. Установите UserDir, например так:

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

  8. Установите DirectoryIndex так:
    DirectoryIndex index.htm index.html

    Это — так называемые файлы индекса, которые автоматически выдаются сервером при обращении к какой-либо директории, если не указано имя html-документа. В принципе, можно добавить сюда и другие имена, например, index.phtml, если Вы будите работать с PHP и т.д.

  9. Найдите и пропишите такой параметр:
    ScriptAlias /cgi-bin/ "f:/cgi-bin/"

    Да, именно так, с двумя слэшами. Это будет та директория, в которой должны храниться Ваши CGI-скрипты. Если хотите, можете задать другое имя, например:

    ScriptAlias /mycgi/ "f:/mycgidir/"

    Подобный параметр говорит Apache о том, что, если будет указан путь вида http://localhost/cgi-bin, то на самом деле следует обратиться к директории f:/cgi-bin.

  10. Теперь следует найти и настроить блок параметров, начинающийся с <Directory «f:/cgi-bin»> и заканчивающийся </Directory>. Это — установки для Вашей CGI-директории (если Вы установили для нее другое имя на предыдущем шаге, соответственно модифицируйте путь). Там должно быть:
    <Directory "f:/cgi-bin">
   AllowOverride All
   Options ExecCGI
 </Directory>
  11. Настройте следующий параметр:
    AddHandler cgi-script .bat .exe

    Это говорит Apache о том, что файлы с расширением .exe и .bat нужно рассматривать как CGI-скрипты.

  12. И последнее — установите:
    AddHandler server-parsed .shtml .shtm .sht

    Или, если Вы хотите, чтобы и обычные файлы html обрабатывались SSI, напишите так:

    AddHandler server-parsed .shtml .shtm .sht .html .htm

Поздравляем — Вы настроили свой Apache, и он должен уже работать! Для запуска сервера нажмите Пуск->Программы->Apache Web Server->Start Apache as console app, при этом появится окно, очень похожее на Сеанс MS-DOS, и ничего больше не произойдет.

Не закрывайте его и не трогайте до конца работы с Apache.

Несколько слов о том, как можно упростить запуск и завершение сервера. В Windows можно назначить любому ярлыку функциональную комбинацию клавиш, нажав которые, Вы запустите этот ярлык. Так что щелкните правой кнопкой на панели задач, в контекстном меню выберите Свойства, затем Настройка меню и кнопку Дополнительно. В открывшемся Проводнике назначьте ярлыку Start Apache as console app комбинацию Ctrl+Alt+A, а ярлыку Shutdown Apache as console app — Ctrl+Alt+S

  • Проверка html: в директории f:/www с html-документами Apache создайте файл index.html. Теперь запустите браузер и наберите:
    http://localhost/index.html

    или просто

    Загрузится Ваш файл.

  • Проверка CGI: в директории f:/cgi-bin для CGI-скриптов создайте файл test.bat с таким содержанием:
    @echo off
 echo Content-type: text/html
 echo.
 echo.
 dir

    Теперь в браузере наберите:

    http://localhost/cgi-bin/test. bat

    В окне отобразится результат команды DOS dir. (Хотелось бы отметить, что указанный тест работает не на всех версиях Windows: иногда вместо того, чтобы выполнить файл test.bat, Apache выводит в браузер его содержимое. С чем это связано — не совсем ясно, однако, кажется, можно избавиться от указанной ошибки путем манипулирования с Реестром. Если у Вас test.bat не запускается, не расстраивайтесь: вряд ли Вы когда-нибудь будете писать скрипты в виде bat-файлов, тем более, что это несовместимо с Unix.)

  • Проверка SSI: аналогична проверке html. Используйте, например, директиву
    <!--#include virtual="/cgi-bin/test.bat"-->

Если bat-файлы Ваш Apache запускать не хочет (см. выше), то дождитесь установки Perl или PHP.

Если вы получили страницу с надпиьсю о правильной работе, вам нужно убедиться что сервер может выполнять CGI-программы. Для этого вы должны написать простую программу, поместить ее в правильный каталог и проверить, как она выполняется Web-сервером.

Ниже вы видите текст простой проверочной программы на языке Perl.

#!/usr/local/bin/perl
use CGI;
$query = new CGI;
print $query->header;

print "<html><head><title>Проверка</title></head>n";
print "<body>Проверка прошла успешно.</body></html>";

Скопируйте текст этой программы в Блокнот, сохраните его в файле test.pl и поместите этот файл в каталог cgi-bin корневого каталога вашего сервера. Первую строку в этой программе нужно изменить так, чтобы она отражала действительное положение интерпритатора Perl на вашем компьютере.

Примечание: Первая строка важна при работе под управлением UNIX, так как именно в ней указывается, какая программа должна обрабатывать этот текст. Версия Apache для Windows тоже придерживается этого соглашения.

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

http://localhost/cgi-bin/test.pl

Если все работает правильно, вы должны увидеть в окне броузера страницу, HTML-код которой указан в операторах print. Результат выполнения этой программы вы можете увидеть кликнув тут. Русский текст может быть отображен броузером в неверной кодировке. Если это случилось, то в открывшемся окне вручную выставте кодировку Кирилица (Windows). Как устанавливать кодировку HTML-страницы возвращаемой CGI-программой, чтобы броузер ее всегда верно отображал, будет рассказано позже.

Эта программа проверяет правильность установки компонентов для CGI-программирования. В частности, при выполнении этой программы проверяется следующее.

  • Web-сервер настроен и сконфигурирован правильно и может выполнять CGI-программы.
  • Программа помещена в правильный каталог, сервер распознает файлы в этом каталоге как программы.
  • Интерпритатор Perl установлен и работает правильно; путь к программе интерпритатора правильно указан в первой строке.
  • Библиотеки, входящие в комплект поставки Perl, установлены правильно, в частности CGI.pm.

При написании статьи использовались материала сайта http://www. dklab.ru.

Настройка виртуальных хостов Apache | Losst

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

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

Содержание статьи:

Как работают виртуальные хосты Apache?

Не будем пока о локальных системах. Если у вас есть веб-сайт, то наверное, вы занимались парковкой домена и уже знаете как все настраивается. Сначала используется DNS сервер, который выдает IP адрес вашего сервера всем клиентам, запросившим адрес этого домена. Затем клиенты отправляют запрос на ip вашего сервера, а веб-сервер уже должен его обработать.

Обычно, на хостингах один веб-сервер обслуживает десятки, а то и сотни сайтов. И как вы понимаете, все запросы поступают на один ip. Для распределения их между папками на сервере используется имя домена, которое передается вместе с запросом в HTTP заголовке «Host». Именно поэтому нужно выполнять парковку домена не только на DNS сервисе, но и на вашем сервере.

Вы настраиваете виртуальные хосты Apache, а затем веб-сервер сравнивает домен, переданный в заголовке «Host» с доступными виртуальными доменами и если находит совпадение, то возвращает содержимое настроенной папки или содержимое по умолчанию, или ошибку 404. Нужно сказать, что вы можете настроить виртуальный хост для любого домена, например, vk.com или losst.ru. Но пользователи смогут получить доступ к этому домену у вас, только если к вам будут поступать запросы от браузеров, в которых будет значиться этот домен. А теперь детальнее про настройку.

Настройка виртуальных хостов Apache?

Я уже подробно рассматривал как настроить Apache в отдельной статье. Поэтому не буду полностью расписывать здесь все конфигурационные файлы. Остановимся на файлах виртуальных хостов. Для удобства они вынесены в отдельные папки:

  • /etc/apache2/sites-available
  • /etc/apache2/sites-enabled

Ясно, что это разделение очень условно. Вы можете его убрать и добавлять свои виртуальные хосты прямо в основной конфигурационный файл. Все файлы из этих папок подключаются к нему с помощью директив Include. Но ведь так намного удобнее. В папке sites-available находятся все конфигурационные файлы, но они пока еще не активированы и отсюда не импортируются никуда. При активации нужного хоста на него просто создается ссылка в папку /etc/apache2/sites-enabled.

Для примера, создадим новый конфигурационный файл для виртуального хоста site1.ru. Для этого просто скопируем существующую конфигурацию для хоста по умолчанию — 000-default:

$ sudo cp /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/site1.ru.conf

Сначала рассмотрим синтаксис того, что вы увидите в этом файле:

<VirtualHost адрес_хоста_для прослушивания:порт>
ServerName домен
ServerAlias псевдоним_домена
ServerAdmin емейл@администратора
DocumentRoot /путь/к/файлам/сайта
ErrorLog /куда/сохранять/логи/ошибок/error. log
CustomLog /куда/сохранять/логи/доступа/access.log combined
</VirtualHost>

Это минимальная конфигурация, которую вам нужно указать, чтобы создать виртуальный хост Apache. Конечно, здесь вы можете использовать и другие директивы Apache, такие как Deny, Allow и многие другие. А теперь рассмотрим наш пример для тестового сайта site1.ru:

<VirtualHost *:80>
ServerName site1.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/site1.ru/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Здесь мы используем звездочку вместо ip адреса, это значит, что веб-сервер будет слушать соединения на всех адресах, как на внешнем, так и на localhost. Порт 80, это порт по умолчанию. Затем указываем домен, электронный адрес администратора, и путь к папке, в которой будут находиться данные сайта. Две строчки Log говорят куда сохранять логи, но добавлять их необязательно. Дальше, нам нужно активировать этот хост. Мы можем вручную создать ссылку или использовать уже заготовленную команду:

sudo a2ensite site1.ru

Затем перезапустите Apache:

sudo systemctl restart apache2

И нам осталось все это протестировать. Если ваш сервер имен еще не направляет запросы к домену на ваш ip, а вы хотите уже проверить как все работает, можно пойти обходным путем. Для этого достаточно внести изменения в файл /etc/hosts на машине, с которой вы собрались открывать сайт. Этот файл, такой себе локальный DNS. Если компьютер находит ip для домена в нем, то запрос в интернет уже не отправляется. Если вы собираетесь тестировать с той же машины, на которую установлен Apache2, добавьте:

sudo vi /etc/hosts

127.0.0.1 site1.ru

Если же это будет другой компьютер, то вместо 127.0.0.1 нужно использовать адрес вашего сервера, на котором установлен Apache. Затем можете открыть сайт в браузере:

site1. ru

Настройка виртуальных хостов с SSL

Если вы хотите использовать современный безопасный протокол https для работы вашего виртуального хоста, то вам кроме обычного хоста на порту 80 будет необходимо создать виртуальный хост на порту 443. Здесь будет не так много отличий, вот пример, для нашего сайта site1.ru:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName site1.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
</VirtualHost>
</IfModule>

Теперь о каждой новой строчке более подробно:

  • <IfModule mod_ssl.c> — весь код в этой секции будет выполнен только в том случае, если активирован модуль mod_ssl. Это нужно для безопасности, чтобы если модуль не активирован, то код не вызывал ошибок;
  • SSLEngine — включает поддержку SSL;
  • SSLCertificateFile, SSLCertificateKeyFile — пути к файлам сертификата и приватного ключа;
  • SSLOptions — для скриптов php, cgi и других мы передаем стандартные SSL опции.

Вот и все. Как видите, не так сложно. Осталось перезапустить Apache и проверить как все работает:

sudo a2enmod ssl
sudo a2ensite site1.ru-ssl
sudo systemctl restart apache2

Затем откройте https адрес в браузере:

https://site1.ru

 

Выводы

В этой статье мы рассмотрели как выполняется настройка виртуальных хостов Apache. Как видите, один веб-сервер может обслуживать сотни сайтов, а создание виртуальных хостов apache совсем не сложно. Надеюсь, эта статья была вам полезной. Если у вас остались вопросы, спрашивайте в комментариях!

Оцените статью:

Загрузка…

Как установить веб-сервер Apache на Ubuntu 16.04 – База знаний Timeweb Community

Введение

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

Из этого руководства вы узнаете о том, как установить Apache на сервер с установленной ОС Ubuntu 16.04.

Требования

Для того, чтобы выполнить необходимые действия, вам понадобится сервер с установленной ОС Ubuntu 16.04 и пользователем, который может выполнять команды sudo (не суперпользователь). Также вы можете настроить базовый фаервол для блокировки несущественных портов.

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

 

 

Шаг 1: установка Apache

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

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

После этого нужно установить пакет apache2:


$ sudo apt-get install apache2

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

Шаг 2: настройка фаервола

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

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

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

Вывод будет примерно таким:


Available applications:
 Apache
 Apache Full
 Apache Secure
 OpenSSH

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

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

В данном случае вам необходимо разрешить входящий трафик профиля Apache Full следующей командой:


$ sudo ufw allow 'Apache Full'

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

В выводе вы должны увидеть, что HTTP трафик разрешен:


Output
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
Apache Full ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
Apache Full (v6) ALLOW Anywhere (v6)

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

Шаг 3: проверка веб-сервера

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

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


$ sudo systemctl status apache2

Вывод будет примерно вот таким:


Output
● apache2.service - LSB: Apache2 web server
 Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
 Drop-In: /lib/systemd/system/apache2.service.d
 └─apache2-systemd.conf
 Active: active (running) since Fri 2017-05-27 18:30:10 UTC; 1h 5min ago
 Docs: man:systemd-sysv-generator(8)
 Process: 4336 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
 Process: 4359 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
 Tasks: 55
 Memory: 2.3M
 CPU: 4.094s
 CGroup: /system.slice/apache2.service
 ├─4374 /usr/sbin/apache2 -k start
 ├─4377 /usr/sbin/apache2 -k start
 └─4378 /usr/sbin/apache2 -k start

May 27 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Stopped LSB: Apache2 web server. 
May 27 18:30:09 ubuntu-512mb-nyc3-01 systemd[1]: Starting LSB: Apache2 web server...
May 27 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: * Starting Apache httpd web server apache2
May 27 18:30:09 ubuntu-512mb-nyc3-01 apache2[4359]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
May 27 18:30:10 ubuntu-512mb-nyc3-01 apache2[4359]: *
May 27 18:30:10 ubuntu-512mb-nyc3-01 systemd[1]: Started LSB: Apache2 web server.

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

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

1 вариант. Ввести в командной строке сервера:

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

2 вариант. Следующие команды также помогут вам получить IP-адрес вашего сервера (как будто вы обращаетесь к нему из другого места сети):


$ sudo apt-get install curl
$ curl -4 icanhazip.com

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

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

Шаг 4: базовые команды Apache

Для работы с веб-сервером Apache вам необходимо знать базовые команды.

Команда для остановки веб-сервера:


$ sudo systemctl stop apache2

Команда для запуска веб-сервера (после остановки):


$ sudo systemctl start apache2

Команда для перезапуска (остановки и запуска):


$ sudo systemctl restart apache2

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


$ sudo systemctl reload apache2

По умолчанию Apache настроен на автоматический запуск после начала работы сервера. Но эту настройку можно изменить при помощи команды:


$ sudo systemctl disable apache2

Если же вы все-таки хотите, чтобы Apache запускался вместе с сервером, введите:


$ sudo systemctl enable apache2

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

Шаг 5: важные файлы и директории Apache

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

Контент

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

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

  • /etc/apache2: конфигурационная директория Apache. Здесь находятся все конфигурационные файлы.
  • /etc/apache2/apache2.conf: основной конфигурационный файл Apache. Его можно использовать для общих конфигурационных изменений Apache. Этот же файл отвечает за загрузку остальных конфигурационных файлов в этой директории.
  • /etc/apache2/ports.conf: этот файл отвечает за порты, которые используются для подключения к серверу. По умолчанию это порт 80 и иногда 443 порт (если включен модуль для обработки SSL).
  • /etc/apache2/sites-available/: в этой директории для каждого сайта хранятся виртуальные хосты (Virtual Hosts). Apache не будет использовать файлы из этой директории до тех пор, пока они не привязаны к директории sites-enables. То есть sites-available – это все доступные хосты, а sites-enabled – это включаемые сервером. Поэтому для создания нового виртуального хоста вам нужно сначала создать его файл в этой директории, а затем дать ссылку на этот виртуальный хост в директории sites-enabled для того, чтобы включить его.
  • /etc/apache2/sites-enabled/: директория для включения виртуальных хостов, которая была упомянута выше.
  • /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: по умолчанию каждый запрос к вашему серверу записывается в этот лог (до тех пор, пока вы не измените эту настройку).
  • /var/log/apache2/error.log: по умолчанию в этот лог записываются все ошибки. Директива LogLevel определяет, какое количество информации об ошибках будет записываться.

Заключение

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

Настройка VDS на Ubuntu 14.04. Часть 6. Установка и настройка APACHE – База знаний Timeweb Community

Мы продолжаем рассказывать о пошаговой настройке VDS с операционной системой Ubuntu 14.04. 

Предыдущая статья нашего цикла была посвящена веб-серверу Nginx, а сегодня мы поговорим об Apache.

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

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

 

 

Установка Apache

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


$ sudo apt-get update
$ sudo apt-get install apache2

После завершения установки введите в адресной строке браузера IP-адрес Вашего сервера. Если установка прошла успешно, Вы увидите стандартное приветственное окно Apache:

На этом же этапе можно установить дополнительные необходимые модули.
Например, если Вам в дальнейшем потребуются инструменты для анализа работы сервера, рекомендуем установить модуль utils — он содержит полезные утилиты для тестирования и администрирования сервера.


$ sudo apt-get install apache2-utils

Если Вам будет необходимо разделять права между пользователями, рекомендуем также установить модуль mpm-itk. При этом нужно будет настроить дополнительные параметры виртуальных хостов — информацию об этом Вы можете найти в открытых источниках сети.

В рамках данной инструкции мы не будем касаться установки и настройки данного модуля.

Для работы сервера с различными языками программирования (а также для расширения функционала сервера) можно установить библиотеки.

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


$ sudo apt-get install libapache2-mod-php5

При использовании python полезно расширение libapache2-mod-wsgi;
при использовании Rails and Rack — libapache2-mod-passenger.

Установка происходит аналогичным образом — просто замените наименование библиотеки в команде.

Теперь перейдем к непосредственной настройке Apache.

Настройка виртуальных хостов

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

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

По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available.

Файлы наших виртуальных хостов будут храниться здесь же, и мы сформируем их на основе 000-default.conf.

Однако сначала мы отключим стандартный файл конфигурации командой:


$ sudo a2dissite 000-default

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

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


$ sudo cp /etc/apache2/sites-available/000-default.conf 
/etc/apache2/sites-available/site1.conf

Далее нам нужно отредактировать конфигурационный файл. Откроем его командой:


$ sudo nano /etc/apache2/sites-available/site1.conf

Приведем содержимое файла к следующему виду:


<VirtualHost *:80>
 ServerName site1.com 
 DocumentRoot /var/www/site1/public_html

<Directory /var/www/site1/public_html>
 AllowOverride All
 Require all granted
 </Directory>

ErrorLog /var/www/site1/error.log
 CustomLog /var/www/site1/access.log combined
</VirtualHost>

Поясним приведенные выше параметры.

Блок <VirtualHost> включает в себя набор директив, задающих настройки для конкретного виртуального хоста.

Имя этого хоста Вы указали в параметре ServerName — полное доменное имя Вашего сайта.

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

Следующий параметр — блок <Directory>. Он задает настройки, которые будут применены для конкретной папки.

В данном случае:

  • AllowOverride All — разрешение допускать настройки, заданные в .htaccess;
  • Require all granted — доступ к каталогу разрешен всем.

В параметре ErrorLog мы указали расположение файла с логами ошибок.

В CustomLog — расположение файла с логами доступа.

Этого набора директив достаточно для функционирования виртуального хоста, хотя список не является исчерпывающим. Дополнительно могут указываться, например, ServerAdmin (e-mail администратора сервера), ServerAlias (альтернативное имя сайта), AssignUserID (пользователь; настройка этого параметра необходима при использовании mpm-itk) и др. Со списком всех возможных директив и их описанием можно ознакомиться на сайте Apache (информация на английском языке).

После указания всех необходимых параметров закройте файл, сохранив изменения.

Далее мы создадим все необходимые папки, которые мы прописали в конфигурационном файле, и установим права на них:


$ sudo mkdir /var/www/site1/
$ sudo chown www-data:www-data /var/www/site1/
$ sudo mkdir /var/www/site1/public_html
$ sudo chown www-data:www-data /var/www/site1/public_html

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


$ nano /var/www/site1/public_html/index.html

Внесите в него любой самый простой html-код для проверки и сохраните документ.
Например:


<html>
 <head>
 <title>Удалось!</title>
 </head>
 <body>
 <h2>Виртуальный хост работает!</h2>
 </body>
</html>

Далее включите сайт следующей командой:

И выполните перезагрузку Apache:


$ sudo service apache2 restart

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

Модули Apache

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

Список доступных модулей можно просмотреть в директории /etc/apache2/mods-available

Список уже включенных модулей — в директории /etc/apache2/mods-enabled

Перейти в директорию можно командой cd, например:


$ cd /etc/apache2/mods-enabled

 

Чтобы просмотреть содержимое текущего каталога, наберите:


$ ls

Для включения и выключения нужных Вам модулей используйте команды a2enmod и a2dismod.

Например, Вы можете включить CGI-скрипты следующей командой:

С информацией о каждом модуле можно ознакомиться на сайте Apache.

Команды для управления сервером Apache

Для запуска веб-сервера используйте команду:


$ sudo service apache2 start

Для перезагрузки:


$ sudo service apache2 restart

Если Вам требуется сделать «мягкую» перезагрузку, то есть перезапуск без завершения всех процессов, вводите:


$ sudo service apache2 reload

Для остановки веб-сервера существует следующая команда:


$ sudo service apache2 stop

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

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

Основы Apache (httpd) » Linux

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

Базовая настройка сервера Apache

Настроить базовый сервер Apache несложно. Он состоит из нескольких простых шагов:
  1. Установить необходимые пакеты.
  2. Определить основной файл конфигурации.
  3. Создать некоторый контент веб-сервера.

Установка необходимых пакетов

Сервер Apache предоставляется через несколько различных пакетов. Базовый пакет — httpd; этот пакет содержит все, что нужно для рабочего, но базового веб-сервера. Также есть несколько дополнительных пакетов. Для полного обзора пакетов вы можете использовать команду yum search http или использовать yum install httpd для установки базового пакета.

Обратите внимание, что команда yum search http выдает много пакетов. Это связано с тем, что веб-сервер Apache является модульным, а различные модули предоставляются через дополнительные пакеты yum.

Вместо использования отдельных пакетов вы также можете использовать yum groups. Команда yum groups list предоставляет обзор всех доступных групп yum, а yum group Basic Web Server предоставляет все необходимое для установки веб-сервера Apache и все необходимые зависимости. Чтобы выполнить установку Apache используйте yum groups install «Basic Web Server».

Определение основного файла конфигурации

Конфигурация веб-сервера Apache проходит через различные файлы конфигурации.  Основной файл конфигурации Apache — /etc/httpd/conf/httpd.conf. В этом файле указано много параметров. Самый важный параметр, который нужно понять для настройки базового веб-сервера, — это параметр DocumentRoot. Этот параметр указывает местоположение по умолчанию, где веб-сервер Apache ищет контент.

Другим важным параметром конфигурации является ServerRoot. Он определяет каталог по умолчанию, где Apache будет искать свои файлы конфигурации. По умолчанию для этой цели используется каталог /etc/httpd, но могут использоваться и другие каталоги.

Вы заметите, что в httpd.conf упоминаются многие другие файлы конфигурации. Использование дополнительных файлов конфигурации позволяет приложениям легко устанавливать snap-in файлы, которые будут включены сервером Apache из пакетов RPM. Все имена этих файлов конфигурации относятся к ServerRoot в /etc/httpd.

В листинге 1 показана часть содержимого файла конфигурации httpd.conf.

Листинг 1

[root@kvm ~]# cat /etc/httpd/conf/httpd.conf | grep -v '#'

ServerRoot "/etc/httpd"

Listen 80

Include conf.modules.d/*.conf

User apache
Group apache


ServerAdmin root@localhost


<Directory />
    AllowOverride none
    Require all denied
</Directory>


DocumentRoot "/var/www/html"

<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted
</Directory>

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

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>


    CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>


    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig /etc/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz



    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>


EnableSendfile on

IncludeOptional conf.d/*.conf
[root@kvm ~]#

Создание контента веб-сервера

После определения  DocumentRoot веб-сервера вы знаете все, что нужно знать для настройки базового веб-сервера. По умолчанию веб-сервер Apache ищет файл с именем index.html и представляет содержимое этого документа клиентам, использующим браузер для доступа к веб-серверу. Достаточно настроить этот файл с очень простым содержанием; подойдет только строка типа «Добро пожаловать на мой веб-сервер».

Чтобы протестировать веб-сервер, вы можете запустить браузер. Браузер Firefox установлен по умолчанию во всех графических установках RHEL / CentOS. Если ваш сервер не поддерживает графический интерфейс, используйте yum install elinks для установки текстового браузера elinks.

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

В упражнении 1 вы узнаете, как настроить базовый веб-сервер.

Упражнение 1. Настройка базового веб-сервера

В этом упражнении вы узнаете, как настроить базовый веб-сервер Apache.

1. Выполните yum groups install «Basic Web Server». Это установит пакет httpd, а также некоторые из наиболее часто используемых дополнительных пакетов.

2. Откройте главный файл конфигурации Apache в редакторе и найдите строку, которая начинается с DocumentRoot. DocumentRoot определяет местоположение, где сервер Apache будет искать контент, который он будет обслуживать. Убедитесь, что он установлен в /var/www/html.

3. В каталоге /var/www/html создайте файл с именем index.html. В этом файле введите «Добро пожаловать на мой веб-сервер».

4. Чтобы запустить и включить веб-сервер, выполните systemctl start httpd; systemctl enable httpd. Команда запускает веб-сервер и гарантирует, что он будет запускаться автоматически после перезапуска сервера. Выполните systemctl status httpd, чтобы убедиться, что веб-сервер запущен и работает. В листинге 2 вы можете увидеть, как должен выглядеть результат этой команды.

5. Выполните yum install elinks, чтобы установить текстовый браузер elinks. Введите elinks http://localhost, чтобы подключиться к веб-серверу и убедиться, что он работает.

[root@kvm ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-10-27 21:48:23 +10; 13min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 29160 (httpd)
   Status: "Total requests: 3; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─29160 /usr/sbin/httpd -DFOREGROUND
           ├─29167 /usr/sbin/httpd -DFOREGROUND
           ├─29168 /usr/sbin/httpd -DFOREGROUND
           ├─29169 /usr/sbin/httpd -DFOREGROUND
           ├─29170 /usr/sbin/httpd -DFOREGROUND
           ├─29171 /usr/sbin/httpd -DFOREGROUND
           ├─29172 /usr/sbin/httpd -DFOREGROUND
           ├─29831 /usr/sbin/httpd -DFOREGROUND
           ├─29833 /usr/sbin/httpd -DFOREGROUND
           └─29834 /usr/sbin/httpd -DFOREGROUND

Oct 27 21:48:23 kvm systemd[1]: Starting The Apache HTTP Server...
Oct 27 21:48:23 kvm httpd[29160]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, usi...message
Oct 27 21:48:23 kvm systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@kvm ~]#

Понимание файлов конфигурации Apache

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

Листинг 3

[root@kvm ~]# ls -l /etc/httpd/
total 0
drwxr-xr-x. 2 root root  37 Oct 27 21:47 conf
drwxr-xr-x. 2 root root 135 Oct 27 21:48 conf.d
drwxr-xr-x. 2 root root 186 Oct 27 21:48 conf.modules.d
lrwxrwxrwx. 1 root root  19 Oct 27 21:47 logs -> ../../var/log/httpd
lrwxrwxrwx. 1 root root  29 Oct 27 21:47 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root  10 Oct 27 21:47 run -> /run/httpd
[root@kvm ~]#

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

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

Основные файлы конфигурации для веб-сервера Apache находятся в каталоге /etc/httpd/conf. Для начала, есть файл httpd.conf, который содержит наиболее важные параметры конфигурации. Кроме того, есть файл с именем magic. Этот файл используется браузером для интерпретации того, каким должно быть содержимое веб-сервера. Это гарантирует, что содержимое веб-сервера отображается правильно в разных браузерах.

Каталог /etc/httpd/conf.d содержит файлы, которые включены в конфигурацию Apache. Это делается с помощью строки  Include conf.modules.d/*.conf в файле httpd.conf.

Этот каталог может использоваться RPM, которые включают snap-in файлы оснастки Apache. Как и в случае с ServerRoot, этот подход позволяет добавлять файлы конфигурации, которые определяют различные веб-страницы, без изменения содержимого файла /etc/httpd/conf/httpd.conf.

Последним каталогом конфигурации является /etc/httpd/conf.modules.d. Apache — это модульный веб-сервер. Поэтому функциональность веб-сервера Apache можно легко расширить, добавив дополнительные модули, которые обеспечивают множество различных функций.

Если используются модули, они могут использовать свои собственные файлы конфигурации, специфичные для модулей, которые будут помещены в каталог /etc/httpd/conf.modules.d. Опять же, цель этого подхода состоит в том, чтобы сохранить конфигурацию в /etc/httpd/conf.d/httpd.conf настолько чистой, насколько это возможно, и убедиться, что конкретная конфигурация модуля не перезаписывается при обновлении универсальной конфигурации Apache.

Создание виртуальных хостов Apache

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

При работе с виртуальными хостами процедура доступа к хосту примерно такая:

  1. Клиент начинает сеанс с конкретным виртуальным хостом, обычно запуская браузер и вводя URL-адрес веб-сайта, который клиент хочет использовать.
  2. DNS помогает определить IP-адрес виртуального хоста, который является IP-адресом сервера Apache, на котором могут размещаться разные виртуальные хосты.
  3. Процесс Apache получает запросы на все виртуальные хосты, которые он размещает.
  4. Процесс Apache считывает заголовок HTTP, чтобы проанализировать, на какой виртуальный хост необходимо отправить этот запрос.
  5. Apache читает конкретный файл конфигурации виртуального хоста, чтобы определить, какой корневой каталог документов используется этим конкретным виртуальным хостом.
  6. Запрос перенаправляется в соответствующий файл содержимого в корне этого конкретного документа.
При работе с виртуальными хостами необходимо помнить несколько вещей:
■ Если ваш сервер Apache настроен для виртуальных хостов, все серверы, на которых он размещается, должны обрабатываться виртуальными хостами. Чтобы создать все записи перехвата для всех HTTP-запросов, которые направлены на этот хост, но у которых нет определенного файла виртуального хоста, вы можете создать виртуальный хост _default_: 80.

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

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

Упражнение 2. Установка виртуальных хостов Apache

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

Предполагается, что у вас есть два сервера с именем server1 и server2. Если что, вы можете настроить гипервизор и создать две виртуальные машины по этой статье: KVM в CentOS 7.1. На сервере server1 и server2 откройте файл /etc/hosts с помощью редактора и добавьте две строки, которые позволяют сопоставить имена виртуальных хостов, которые вы собираетесь создать, с IP-адресом сервера:
192.168.122.210 server1.example.com server1
192.168.122.220 server2.example.com server2
192.168.122.210 account.example.com account
192.168.122.210 sales.example.com   sales

2. На сервере server1 добавьте следующее в файл /etc/httpd/conf/httpd.conf. (Вы можете оставить все остальные настройки как есть.)
<Directory "/www/docs">
        Require all granted
        AllowOverride None
</Directory>

3. Там же на сервере server1 создайте файл конфигурации с именем account.example.com.conf в каталоге /etc/httpd/conf.d.

Добавьте в этот файл:

<VirtualHost *:80>
        ServerAdmin [email protected]
        DocumentRoot /www/docs/account.example.com
        ServerName account.example.com
        ErrorLog logs/account/example.com-error_log
        CustomLog logs/account.example.com-access_log common
</VirtualHost>

4. Закройте файл конфигурации и выполните:
mkdir -p /www/docs/account.example.com; mkdir -p /etc/httpd/logs/account/example.com-error_log; chown apache.apache -R /etc/httpd/logs/account/example.com-error_log
 
5. В каталоге account.example.com, который вы указали выше в строке DocumentRoot, создайте файл с именем index.html и убедитесь, что в нём написано «Добро пожаловать в account».

6. Временно выключите SELinux командой setenforce 0.

7. Выполните systemctl restart httpd для перезапуска веб-сервера Apache.

8. Выполните elinks http://account.example.com. Теперь вы должны увидеть страницу приветствия account. (Возможно, вам придется установить elinks, используя yum install -y elinks.)

9. Вернувшись в терминал, скопируйте файл /etc/httpd/conf.d/account.example.com.conf в файл с именем /etc/httpd/conf.d/sales.example.com.conf.

10. Откройте файл sales.example.com.conf в vi и выполните команду :%s/account/sales/g. Этой командой вы сделаете замену текста account на sales, который встречается во всём файле.

11. Создайте каталог /www/docs/sales.example.com и создайте в нем файл index.html, содержащий текст «Добро пожаловать на сервер sales».

12. Перезапустите httpd и убедитесь, что account и sales доступны.

Если у вас что-то не получается или есть вопросы, пишите в комментариях.
Вместе решим вопросы 

Просьба поделиться статьёй в социальных сетях. Больше ссылок, больше шансов найти эту информацию тем, кому она нужна.

Что такое Apache? Свободный веб-сервер Apache HTTP Server


07.02.2019 Парк Лин Джун Интернет и компьютеры

Apache — мощный сервер, название которого происходит от английской фразы, связанной с названием племени североамериканских индейцев апачей. Среди русских пользователей имеет распространенное название «Апач». Это ПО с открытым исходным кодом с лицензией GPL. Одним из самых больших преимуществ его является кроссплатформенный сервер, то есть он может работать с различными операционными системами, поддерживая отличную производительность.

С 1996 года — это самый популярный сервер в мире благодаря его стабильности и безопасности. «Апач» разрабатывается сообществом пользователей-разработчиков, которое работает под руководством Apache Software Foundation.

История Apache

В марте 1989 года Тим Бернерс Ли, английский ученый, работающий в CERN (Швейцария), предложил новый способ управления огромным количеством информации в проектах CERN. В то время никто не знал, что такое Apache. Первичная разработка сети документов с гиперссылками, как их назвал Тед Нельсон в 1965 году, привела к созданию WWW — первого программного обеспечения, которое вышло в ноябре 1990 года под названием World Wide Web, с веб-браузером, графическим интерфейсом и редактором WYSIWYG. Два года спустя в списке WWW-серверов было всего около тридцати записей, среди которых был HTTPs NCSA.

Настоящая история «Апач» начинается в марте 1995 года с выпуском Apache 0.2 на основе сервера NCSA HTTPD 1.3. Многим пользователям интересно знать, что такое Apache сегодня и что программа представляла из себя в первые месяцы своего существования. Это был всего лишь набор правок, применяемых к серверу NCSA. Далее Роберт Тау выпустил Shambhala 0.1 с API для модулей, которые оказались очень успешными.

Крупнейшими вехами проекта было полное соответствие стандарту HTTP 1.1, включенному в апреле 1997 года в версию 1.2. В эту версию уже была включена платформа Windows NT, которая стартовала в июле 1997 года. Объединение файлов конфигурации было реализовано в выпуске 1.3.3.

Apache Group отвечает за эволюцию веб-сервера и конкретные решения по разработке. Эту группу следует отличать от разработчиков ядра — Core group. Добровольный характер большинства разработчиков делает маловероятным то, что все они одновременно активны в «Апач», поэтому ядро отвечает за постоянную работоспособность. В общем, решения, которые должны принимать разработчики, принадлежат ядру и ограничиваются голосованием за включение кода. С другой стороны, они обычно имеют право на запись в репозиторий CVS, поэтому служат воротами для кода, обеспечивая его правильность и качество.

Минимальные требования и преимущества

Apache получил широкое признание в сети, с 1996 года он является наиболее часто используемым HTTP-сервером. Достигнул своей максимальной доли рынка в 2005 году, когда сервер использовался на 70 % сайтов во всем мире. В последние годы его доля на рынке сократилась. Примечательно то, что для Apache такой спад не свидетельствует о непопулярности и деградации технологии.

Минимальные требования для эксплуатации:

  1. Процессор – Pentium.
  2. Оперативная память — 64 Мб.
  3. ОС-Microsoft Windows, GNU/Linux.
  4. Размер установки- 50 Мб.

Преимущества:

  1. Модульная конструкция.
  2. Открытый исходный код.
  3. Мультиплатформенная конструкция.
  4. Растяжимость.
  5. Популярность — легко получить помощь и поддержку.

Архитектура сервера

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

  1. mod_ssl — безопасная связь через TLS;
  2. mod_rewrite — перезапись адреса, обычно используется для преобразования динамических страниц, таких как php, в статические, чтобы обмануть поисковые системы относительно того, где они были разработаны;
  3. mod_dav — поддержка протокола WebDAV (RFC 2518) ;
  4. mod_deflate — алгоритм сжатия прозрачен, когда содержимое отправляется клиенту;
  5. mod_auth_ldap — позволяет пользователям проходить аутентификацию на сервере LDAP;
  6. mod_proxy_ajp — соединитель для связи с Jakarta Tomcat динамических страниц в Java (сервлеты и JSP).

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

  • mod_cband — управление трафиком и ограничение полосы пропускания;
  • mod_perl — динамические в Perl;
  • mod_php — динамические в PHP;
  • mod_python — динамические в Python;
  • mod_rexx — динамические в REXX и объект REXX;
  • mod_ruby — динамические в Ruby;
  • mod asp dot net — динамические в Microsoft.NET;
  • mod_mono — динамические в моно;
  • mod_security — фильтрация на уровне приложения для безопасности.

Конфигурация и безопасность

Для того чтобы понять, что такое Apache в свете безопасности, нужно рассмотреть его конфигурацию. Большая часть конфигурации выполняется в файле apache2.conf и httpd.conf, в зависимости от системы, в которой ПО работает. Любое изменение этого файла требует перезапуска сервера или повторного принудительного чтения.

Лицензия на программное обеспечение, по которой распространяется базовое ПО «Апач», является отличительной частью истории Apache HTTP Server и сообщества открытого исходного кода. Лицензия позволяет распространять продукты с открытым и закрытым исходным кодом.

Фонд свободного ПО не считает таковым Apache License, совместимого с версией 2 GNU General Public License (GPL), в которой программное обеспечение лицензируется и не интегрировано с ПО. Это нужно учитывать, перед тем как настроить веб-сервер Apache, распространяемого под лицензией GPL. Тем не менее версия 3 GPL включает в себя положение, которое позволяет ему быть совместимым с лицензиями, имеющими оговорки о патентном возмещении.

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

Проверка функционирования Апач

Чтобы убедиться, что «Апач» работает правильно, открывают веб-браузер и прописывают следующий адрес: http: // localhost. Затем нажимают Enter, появляется белая страница с сообщением «Это работает», что является доказательством того, что веб-сервер работает отлично.

«Апач» позволяет создавать специальные конфигурации для настройки и адаптации к потребностям. Для этого находят файл http.conf в C: appserv Apache2.2 conf. Создается его резервная копия, чтобы избежать ошибок выполнения, затем его открывают посредством любого редактора и изменяют нужные строки.

Чтобы правильно выполнить эти действия, нужно хорошо знать Apache worker, поскольку любые сделанные изменения будут отражены в производительности и запуске «Апач». Благодаря последним рекомендациям сервер будет установлен. Работать он будет в базовой конфигурации, которая позволяет загружать страницы или сетевые приложения в интернет.

Управление информацией

Apache — наиболее используемый веб-сервер, лидер с наибольшим количеством установок в мире, намного опережающий другие решения, такие как Microsoft Internet Information Server (IIS). Этот проект открыт для использования, так как он мультиплатформенный, имеющий версии для всех основных операционных систем, очень надежный и выделяющийся своей безопасностью и производительностью.

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

  1. Эффективность запросов.
  2. Большое количество HTTP-запросов, включая многозадачное выполнение, может оставить сервис свернутым.
  3. Ограничения на доступ к файлам, управления аутентификации пользователей или фильтрации запросов в соответствии с их происхождением.
  4. Обработка ошибок по страницам с информацией посетителя и перенаправлением на заранее определенные страницы.
  5. Управление информацией, подлежащей передаче в соответствии с ее форматом, и адекватное информирование браузера, запрашивающего указанный ресурс.
  6. Журнал управления для хранения полученных запросов, произошедших ошибок и в целом всей информации, которая зарегистрирована и проанализирована для получения статистики доступа к сайту.

«Апач» позволяет настраивать виртуальный хостинг на основе IP-адресов или имен, то есть иметь несколько веб-сайтов на одном компьютере.

Файл apache2.conf

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

Он находится в каталоге /etc /apache2, и, поскольку это текстовый файл, его можно легко редактировать с помощью текстового редактора. Свойства файла конфигурации — глобальные переменные сервера и расширение функциональности.

Глобальные переменные сервера — это переменные, которые определяют общее функционирование:

  1. Таблица директив «Апач». Имя сервера обозначено переменной ServerName, поэтому любое перенаправление или ссылка, существующие в HTML-документах, работают хорошо. Большинство переменных конфигурации распределены среди других небольших файлов, хранящихся в mods-available.
  2. .htaccess — это скрытый текстовый файл, который позволяет настроить работу сервера.
  3. «Апач» — конкретный каталог без необходимости изменять основной файл конфигурации apache2.conf. Когда веб-клиент запрашивает файл с сервера, он смотрит из корневого каталога в подкаталог, содержащий запрошенный для .htaccess, и принимает во внимание содержащиеся в нем директивы перед выполнением запроса.

Принцип .htaccess:

  1. Запрещает перечисление файлов в каталоге.
  2. Перенаправляет веб-трафик.
  3. Настраивает страницы ошибок.
  4. Ограничивает доступ к определенным файлам.
  5. Запрещает доступ к определенным IP-адресам или диапазонам IP-адресов.
  6. Расширяет функциональность, что связано с вызовами других модулей и файлами конфигурации. Всем директивам, связанных с этим пунктом, будет предшествовать слово «Включить».

Установка веб-сервера Apache

«Апач» изначально был разработан для работы с технологией PHP, но без проблем может работать и с .NET, что делает его более успешным по сравнению с IIS Microsoft, являющимся коллаборантом для серверов, использующих IIS, и обеспечивающим полную поддержку PHP без необходимости изменять конфигурацию.

Чтобы установить и запустить веб-сервер, в первую очередь необходимо загрузить его с официального сайта. Всегда находят самую последнюю версию доступного программного обеспечения и проверяют, будет ли она идентифицирована, как Win32 Binary, включая OpenSSL.

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

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

Далее появится окно установки, где указаны все доступные компоненты. Выбирают их все и проверяют, наличие папки c: appserv Apache2.2. Далее выполняют настройку веб-сервера Apache.

Веб-Monitor на панели задач

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

Алгоритм установки:

  1. В консоли Windows находят папку bin Apache, для этого прописывают следующее предложение в консоли — c: appserv Apache2.2? in.
  2. После ввода нажимают Enter и системный компонент, который будет выглядит так — C: appserv Apache2.2? In>.
  3. Находясь в папке bin, вводят http: .exe -k install и нажимают Enter.
  4. Появиться сообщение, похожее на «.Apache 2.2: служба уже установлена». Это сообщение проверит, что «Апач» был успешно установлен.

Один из наиболее эффективных способов проверить правильность работы Apache — установить, активен ли монитор приложения. Его можно увидеть на панели задач. Если он неактивен, активируют его, переходя в меню «Пуск», раздел «Все программы» и Apache http Server 2.2., нажимают на Monitor Apache Server и активируют его.

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

Советы по установке в Linux

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

Алгоритм установки:

  1. Скачивают последнюю стабильную версию «Апач».
  2. Загружают исходные файлы, соответствующие системе.
  3. Извлекают файлы ПО.
  4. После того загруженные файлы нужно будет распаковать:gunzip -d httpd-2_0_NN.tar.gz; tar xvf httpd-2_0_NN.tar.
  5. Это создает новый каталог в текущем каталоге с исходными файлами.
  6. Как только появятся файлы, указывают машине, где найти все исходные. Самый простой способ сделать это — принять все значения по умолчанию и просто набрать: ./configure.
  7. Настраивают Apache при условии, что не было никаких проблем с установкой и сборкой. Пользователь настраивает конфигурацию, что равносильно редактированию файла httpd.conf. Он обычно редактируется с текстовым редактором- vi PREFIX /conf/httpd.conf. Для внесения любых изменений нужно быть пользователем root.
  8. Проверяют работу сервера.

Применение в World Wide Web

Apach используется в основном для отправки статических и динамических страниц в World Wide Web. Многие приложения разработаны с учетом среды реализации «Апач» или будут использовать характеристики этого сервера. Apach — компонент сервера в популярной платформе приложений LAMP наряду с языками программирования MySQL и PHP, Perl , Python и Ruby, включая базу данных Oracle и сервер приложений IBM WebSphere. Mac OS X интегрирует его как часть собственного web-server и поддержку приложений WebObjects.

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

Разработчики веб-приложений иногда используют локальную версию Apache для предварительного просмотра и тестирования кода во время разработки. Microsoft Internet Information Services (IIS) является основным конкурентом «Апач», а также веб-сервером Sun Java System от Sun Microsystems и множеством других приложений, таких как Zeus Web-Server.

Некоторые из крупнейших сайтов в мире работают на Apache. Внешний интерфейс поисковой системы Google основан на ее модифицированной версии, которая называется Google веб-сервер (GWS). Многие проекты «Википедии» также работают на серверах «Апач».

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



веб-серверов — Apache | Ubuntu

Apache — наиболее часто используемый веб-сервер в системах Linux. Веб-серверы используются для обслуживания веб-страниц, запрашиваемых клиентскими компьютерами. Клиенты обычно запрашивают и просматривают веб-страницы с помощью приложений веб-браузера, таких как Firefox, Opera, Chromium или Internet Explorer.

Пользователи вводят унифицированный указатель ресурса (URL), чтобы указать на веб-сервер с помощью его полного доменного имени (FQDN) и пути к требуемому ресурсу. Например, для просмотра домашней страницы веб-сайта Ubuntu пользователь вводит только полное доменное имя:

.
  www.ubuntu.com
  

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

  www.ubuntu.com/community
  

Наиболее распространенным протоколом, используемым для передачи веб-страниц, является протокол передачи гипертекста (HTTP). Также поддерживаются такие протоколы, как протокол передачи гипертекста через Secure Sockets Layer (HTTPS) и протокол передачи файлов (FTP), протокол для загрузки и выгрузки файлов.

Веб-серверы

Apache часто используются в сочетании с ядром базы данных MySQL, языком сценариев препроцессора гипертекста (PHP) и другими популярными языками сценариев, такими как Python и Perl.Эта конфигурация называется LAMP (Linux, Apache, MySQL и Perl / Python / PHP) и образует мощную и надежную платформу для разработки и развертывания веб-приложений.

Установка

Веб-сервер Apache2 доступен в Ubuntu Linux. Для установки Apache2:

В командной строке терминала введите следующую команду:

  sudo apt установить apache2
  

Конфигурация

Apache2 настраивается путем помещения директив в файлы конфигурации в виде простого текста.Эти директивы разделены между следующими файлами и каталогами:

  • apache2.conf: основной файл конфигурации Apache2. Содержит настройки, которые являются глобальными для Apache2.

  • httpd.conf: исторически основной файл конфигурации Apache2, названный в честь демона httpd. В других дистрибутивах (или более старых версиях Ubuntu) файл может присутствовать. В Ubuntu все параметры конфигурации перенесены на apache2.conf и указанные ниже каталоги, и этот файл больше не существует.

  • conf-available: этот каталог содержит доступные файлы конфигурации. Все файлы, которые ранее находились в /etc/apache2/conf.d , следует переместить в / etc / apache2 / conf-available .

  • conf-enabled: содержит символических ссылок на файлы в / etc / apache2 / conf-available . Когда файл конфигурации имеет символическую ссылку, он будет включен при следующем перезапуске apache2.

  • envvars: файл, в котором установлены переменные среды Apache2 .

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

  • с включенными модами : содержит символических ссылок на файлы в / etc / apache2 / mods-available . Когда файл конфигурации модуля имеет символическую ссылку, он будет включен при следующем перезапуске apache2.

  • ports.conf: содержит директивы, определяющие, какие TCP-порты прослушивает Apache2.

  • сайтов-доступных: в этом каталоге есть файлы конфигурации для Apache2 Virtual Hosts . Виртуальные хосты позволяют настраивать Apache2 для нескольких сайтов с отдельными конфигурациями.

  • сайтов с поддержкой: с поддержкой модов, с поддержкой сайтов содержит символические ссылки на каталог / etc / apache2 / sites-available .Точно так же, когда файл конфигурации в sites-available имеет символическую ссылку, настроенный им сайт будет активен после перезапуска Apache2.

  • magic: инструкции для определения типа MIME на основе первых нескольких байтов файла.

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

Сервер также читает файл, содержащий типы документов mime; имя файла устанавливается директивой TypesConfig , обычно через /etc/apache2/mods-available/mime.conf , который также может включать дополнения и переопределения, и по умолчанию /etc/mime.types .

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

В этом разделе описаны основные параметры конфигурации сервера Apache2.Обратитесь к документации Apache2 для получения более подробной информации.

  • Apache2 поставляется с конфигурацией по умолчанию, дружественной к виртуальному хосту. То есть он настроен с одним виртуальным хостом по умолчанию (с использованием директивы VirtualHost ), который можно изменить или использовать как есть, если у вас один сайт, или использовать в качестве шаблона для дополнительных виртуальных хостов, если у вас несколько сайтов. . Если оставить его в покое, виртуальный хост по умолчанию будет служить вашим сайтом по умолчанию, или пользователи сайта увидят, не соответствует ли введенный ими URL-адрес ServerName директиве любого из ваших настраиваемых сайтов.Чтобы изменить виртуальный хост по умолчанию, отредактируйте файл /etc/apache2/sites-available/000-default.conf .

    Примечание

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

    Если вы хотите настроить новый виртуальный хост или сайт, скопируйте этот файл в тот же каталог с выбранным вами именем.Например:

      sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mynewsite.conf
      

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

  • Директива ServerAdmin указывает адрес электронной почты, который будет объявлен администратору сервера. Значение по умолчанию — webmaster @ localhost. Его следует изменить на адрес электронной почты, который будет доставлен вам (если вы являетесь администратором сервера).Если на вашем веб-сайте возникла проблема, Apache2 отобразит сообщение об ошибке, содержащее этот адрес электронной почты, чтобы сообщить о проблеме. Найдите эту директиву в файле конфигурации вашего сайта в / etc / apache2 / sites-available.

  • Директива Listen указывает порт и, необязательно, IP-адрес, который Apache2 должен прослушивать. Если IP-адрес не указан, Apache2 будет прослушивать все IP-адреса, назначенные машине, на которой он работает. Значение по умолчанию для директивы Listen — 80.Измените это на 127.0.0.1:80, чтобы Apache2 прослушивал только ваш интерфейс обратной петли, чтобы он не был доступен для Интернета, на (например) 81, чтобы изменить порт, который он слушает, или оставьте его как есть для Нормальная операция. Эту директиву можно найти и изменить в ее собственном файле, /etc/apache2/ports.conf

  • Директива ServerName является необязательной и указывает, на какое полное доменное имя должен отвечать ваш сайт. Для виртуального хоста по умолчанию не указана директива ServerName, поэтому он будет отвечать на все запросы, которые не соответствуют директиве ServerName на другом виртуальном хосте.Если вы только что приобрели доменное имя mynewsite.com и хотите разместить его на своем сервере Ubuntu, значение директивы ServerName в файле конфигурации вашего виртуального хоста должно быть mynewsite.com . Добавьте эту директиву в новый файл виртуального хоста, который вы создали ранее ( /etc/apache2/sites-available/mynewsite.conf ).

    Вы также можете захотеть, чтобы ваш сайт отвечал на www.mynewsite.com , поскольку многие пользователи сочтут уместным префикс www.Используйте для этого директиву ServerAlias ​​. Вы также можете использовать подстановочные знаки в директиве ServerAlias.

    Например, следующая конфигурация заставит ваш сайт отвечать на любой запрос домена, заканчивающийся на .mynewsite.com .

      ServerAlias ​​* .mynewsite.com
      
  • Директива DocumentRoot указывает, где Apache2 должен искать файлы, составляющие сайт. Значение по умолчанию — / var / www / html, как указано в / etc / apache2 / sites-available / 000-default.conf . При желании измените это значение в файле виртуального хоста вашего сайта и не забудьте при необходимости создать этот каталог!

Включите новый VirtualHost с помощью утилиты a2ensite и перезапустите Apache2:

  sudo a2ensite mynewsite
sudo systemctl перезапустить apache2.service
  

Примечание

Не забудьте заменить mynewsite на более описательное имя VirtualHost. Один из способов — назвать файл после директивы ServerName VirtualHost.

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

  судо a2dissite mynewsite
sudo systemctl перезапустить apache2.service
  

Настройки по умолчанию

В этом разделе объясняется конфигурация настроек сервера Apache2 по умолчанию. Например, если вы добавляете виртуальный хост, настройки, которые вы настраиваете для виртуального хоста, имеют приоритет для этого виртуального хоста.Для директивы, не определенной в настройках виртуального хоста, используется значение по умолчанию.

  • DirectoryIndex — это страница по умолчанию, обслуживаемая сервером, когда пользователь запрашивает индекс каталога, указывая косую черту (/) в конце имени каталога.

    Например, когда пользователь запрашивает страницу http://www.example.com/this_directory/ , он или она получит либо страницу DirectoryIndex, если она существует, либо список каталогов, созданный сервером, если это не так, и Указана опция индексов или страница с отказом в разрешении, если ни один из них не является истинным.Сервер попытается найти один из файлов, перечисленных в директиве DirectoryIndex, и вернет первый найденный. Если он не найдет ни одного из этих файлов и если для этого каталога задано Options Indexes , сервер сгенерирует и вернет список в формате HTML подкаталогов и файлов в каталоге. Значение по умолчанию, которое находится в /etc/apache2/mods-available/dir.conf , — «index.html index.cgi index.pl index.php index.xhtml index.htm». Таким образом, если Apache2 найдет файл в запрошенном каталоге, соответствующий любому из этих имен, будет отображаться первый.

  • Директива ErrorDocument позволяет указать файл, который Apache2 будет использовать для определенных событий ошибки. Например, если пользователь запрашивает ресурс, которого не существует, возникает ошибка 404. По умолчанию Apache2 просто возвращает код возврата HTTP 404. Прочтите /etc/apache2/conf-available/localized-error-pages.conf для получения подробных инструкций по использованию ErrorDocument, включая расположение файлов примеров.

  • По умолчанию сервер записывает журнал передачи в файл / var / log / apache2 / access.журнал . Вы можете изменить это для каждого сайта в файлах конфигурации вашего виртуального хоста с помощью директивы CustomLog или опустить его, чтобы принять значение по умолчанию, указанное в / etc / apache2 / conf-available / other-vhosts-access-log .conf . Вы также можете указать файл, в котором регистрируются ошибки, с помощью директивы ErrorLog , по умолчанию /var/log/apache2/error.log . Они хранятся отдельно от журналов передачи, чтобы помочь в устранении проблем с вашим сервером Apache2.Вы также можете указать LogLevel (значение по умолчанию «предупреждать») и LogFormat (см. /etc/apache2/apache2.conf для значения по умолчанию).

  • Некоторые параметры указываются для отдельных каталогов, а не для серверов. Опции — одна из этих директив. Раздел каталога заключен в теги, подобные XML, например:

      
    ...
    
      

    Директива Options в разделе Directory принимает одно или несколько из следующих значений (среди прочих), разделенных пробелами:

    • ExecCGI — Разрешить выполнение сценариев CGI.Если этот параметр не выбран, сценарии CGI не выполняются.

      Осторожно

      Большинство файлов не следует выполнять как сценарии CGI. Это было бы очень опасно. Сценарии CGI должны храниться в каталоге отдельно от вашего DocumentRoot и вне его, и только в этом каталоге должна быть установлена ​​опция ExecCGI. Это значение по умолчанию, а расположение по умолчанию для сценариев CGI — / usr / lib / cgi-bin .

    • Включает — Разрешить включение на стороне сервера.Серверные включения позволяют HTML-файлу включать других файлов. См. Документацию Apache SSI (сообщество Ubuntu) для получения дополнительной информации.

    • Включает NOEXEC — Разрешить серверные включения, но отключить команды #exec и #include в сценариях CGI.

    • Индексы — отображение отформатированного списка содержимого каталога, если в запрошенном каталоге нет DirectoryIndex (например, index.html).

      Осторожно

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

    • Multiview — Поддержка многовидовых изображений с согласованием содержимого; эта опция по умолчанию отключена из соображений безопасности. См. Документацию Apache2 по этому параметру.

    • SymLinksIfOwnerMatch — Переходите по символическим ссылкам только в том случае, если у целевого файла или каталога того же владельца, что и у ссылки.

Настройки apache2

В этом разделе объясняются некоторые основные параметры конфигурации демона apache2.

LockFile — Директива LockFile устанавливает путь к файлу блокировки, который используется при компиляции сервера с помощью USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT.Он должен храниться на локальном диске. Следует оставить значение по умолчанию, если каталог журналов не находится в общей папке NFS. В этом случае значение по умолчанию следует изменить на расположение на локальном диске и на каталог, доступный для чтения только пользователю root.

PidFile — Директива PidFile устанавливает файл, в который сервер записывает свой идентификатор процесса (pid). Этот файл должен быть доступен для чтения только root. В большинстве случаев следует оставить значение по умолчанию.

Пользователь — Директива User устанавливает идентификатор пользователя, используемый сервером для ответа на запросы.Этот параметр определяет доступ к серверу. Любые файлы, недоступные для этого пользователя, также будут недоступны для посетителей вашего сайта. Значение по умолчанию для пользователя — «www-data».

Предупреждение

Если вы точно не знаете, что делаете, не устанавливайте в директиве User значение root. Использование root в качестве пользователя создаст большие дыры в безопасности для вашего веб-сервера.

Группа — Директива группы аналогична директиве пользователя. Группа устанавливает группу, в которой сервер будет отвечать на запросы.Группа по умолчанию также «www-data».

Модули Apache2

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

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

Вы можете установить дополнительные модули Apache2 и использовать их на своем веб-сервере. Например, для установки модуля Python 3 WSGI выполните следующую команду в командной строке терминала:

  sudo apt установить libapache2-mod-wsgi-py3
  

Установка включит модуль автоматически, но мы можем отключить его с помощью a2dismod :

  судо a2dismod wsgi
sudo systemctl перезапустить apache2.служба
  

Затем используйте утилиту a2enmod , чтобы снова включить ее:

  судо a2enmod wsgi
sudo systemctl перезапустить apache2.service
  

См. Каталог / etc / apache2 / mods-available для дополнительных модулей, уже доступных в вашей системе.

Конфигурация HTTPS

Модуль mod_ssl добавляет важную функцию к серверу Apache2 — возможность шифровать обмен данными. Таким образом, когда ваш браузер обменивается данными с использованием SSL, префикс https: // используется в начале унифицированного указателя ресурсов (URL) на панели навигации браузера.

Модуль mod_ssl доступен в пакете apache2-common. Выполните следующую команду в командной строке терминала, чтобы включить модуль mod_ssl :

  судо a2enmod SSL
  

Файл конфигурации HTTPS по умолчанию находится в /etc/apache2/sites-available/default-ssl.conf . Чтобы Apache2 предоставлял HTTPS, также необходимы сертификат и файл ключа . В конфигурации HTTPS по умолчанию будут использоваться сертификат и ключ, сгенерированные пакетом ssl-cert .Они подходят для тестирования, но автоматически сгенерированные сертификат и ключ следует заменить сертификатом, специфичным для сайта или сервера. Для получения информации о создании ключа и получении сертификата см. Сертификаты.

Чтобы настроить Apache2 для HTTPS, введите следующее:

  sudo a2ensite default-ssl
  

Примечание

Каталоги / etc / ssl / certs и / etc / ssl / private являются местоположениями по умолчанию.Если вы устанавливаете сертификат и ключ в другой каталог, обязательно измените SSLCertificateFile и SSLCertificateKeyFile соответственно.

Теперь, когда Apache2 настроен для HTTPS, перезапустите службу, чтобы активировать новые настройки:

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

Примечание

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

Вы можете получить доступ к страницам защищенного сервера, набрав https: // your_hostname / url / в адресной строке браузера.

Совместное использование разрешения на запись

Чтобы более одного пользователя могли писать в один и тот же каталог, необходимо предоставить разрешение на запись группе, которую они совместно используют. В следующем примере предоставляется общее разрешение на запись в / var / www / html группе «веб-мастера».

  sudo chgrp -R webmasters / var / www / html
sudo chmod -R g = rwX / var / www / html /
  

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

Предупреждение

Демон apache2 будет работать как пользователь www-data , которому соответствует группа www-data . Этим не следует предоставлять доступ на запись в корень документа, поскольку это будет означать, что уязвимости в Apache или обслуживаемых им приложениях позволят злоумышленникам перезаписать обслуживаемый контент.

Список литературы

  • Документация Apache2 содержит подробную информацию о директивах конфигурации Apache2.Также смотрите официальную документацию Apache2 в пакете apache2-doc.

  • O’Reilly’s Apache Cookbook — хороший ресурс для выполнения определенных конфигураций Apache2.

  • По вопросам, связанным с Apache2 для Ubuntu, задавайте их в IRC-канале # ubuntu-server на freenode.net.

Apache Tutorials for Beginners

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • Database Testing
      • ETL Testing
      • Jmeter
      • JIRA
      • JUnit
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • Назад
      • Центр качества (ALM)
      • RPA
      • SAP Testing
      • Selenium
      • Управление тестированием SoapUI
      • TestLink
  • SAP

      • Назад
      • ABAP
      • 90 039 APO
      • Начинающий
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • FICO
      • HANA
      • HR
      • MM
      • QM
      • Заработная плата
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Безопасность
      • Менеджер решений
      • Successfactors
      • SAP Tutorials
  • Web

      • Назад
      • AngularJS
      • ASP.Net
      • C
      • C #
      • C ++
      • CodeIgniter
      • СУБД
      • JavaScript
      • Назад
      • Java
      • JSP
      • Kotlin
      • Linux
      • MariaDB
      • MS Access
      • MYSQL
      • Node. js
      • Perl
      • Назад
      • PHP
      • PL / SQL
      • PostgreSQL
      • Python
      • ReactJS
      • Ruby & Rails
      • Scala
      • SQL
      • SQLite
      • Назад
      • SQL Server
      • UML
      • VB.Net
      • VBScript
      • Веб-службы
      • WPF
  • Обязательно изучите!

      • Назад
      • Бухгалтерия
      • Алгоритмы
      • Android
      • Блокчейн
      • Бизнес-аналитик
      • Создание веб-сайта
      • Облачные вычисления
      • COBOL
      • Дизайн компилятора
      • Назад
      • Встроенные системы

Apache — Apache Digital Corporation

Добро пожаловать в Apache.ком! Мы — ваш полный веб-сервер Apache и ресурс управления сервером. Независимо от того, являетесь ли вы опытным экспертом или новичком, у нас есть советы и информация, которые помогут вам!

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

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

Заказать веб-хостинг на базе Apache

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

Сравните самые популярные веб-хосты

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

Рейтинг Веб-хостинг Характеристики Бонусы Обзор хостинга
1 FatCow
Дешевый хостинг для бизнеса
Место: БезлимитТрафик: Безлимит
Цена: 3 доллара.67
Бесплатный домен навсегда, неограниченное количество доменов, $ 75 маркетинговый бонус Обзор FatCow
2 JustHost
Выбор редакции Хостинг
Место: Неограниченное Трафик: Неограниченное Цена: 3,95 $ Бесплатный домен навсегда, неограниченное количество доменов, маркетинговый бонус в размере 75 долларов США Обзор JustHost
3 GreenGeeks
Зеленый веб-хостинг
Место: Неограниченное Трафик: Неограниченное Цена: 6 долларов.95 Бесплатный домен навсегда, неограниченное количество доменов, маркетинговый бонус в размере 25 долларов США Обзор GreenGeeks
4 WebHostingPad
Дешевый надежный хостинг
Место: Неограниченное Трафик: Неограниченное Цена: 1,99 $ Бесплатный домен навсегда, неограниченное количество доменов, маркетинговый бонус в размере 100 долларов США Обзор WebHostingPad
5 Inmotion
Веб-хостинг для бизнеса
Место: Неограниченное Трафик: Неограниченное Цена: 8 долларов.95 Бесплатное доменное имя, выбор центров обработки данных, высшая техническая поддержка Обзор Inmotion
6 Hostmonster
Дешевый хостинг Unix
Место: Неограниченное Трафик: Неограниченное Цена: 6,95 $ Бесплатный домен навсегда, неограниченное количество доменов, маркетинговый бонус в размере 75 долларов США Обзор Hostmonster
7 Globat
Дешевый хостинг
Место: Неограниченное Трафик: Неограниченное Цена: 4 доллара.44 Бесплатное доменное имя, неограниченное количество доменов, маркетинговый бонус в размере 55 долларов США Обзор Globat
8 Lunarpages
Дешевый общий хостинг
Пространство: БезлимитТрафик: БезлимитЦена: 4,95 $ Бесплатный домен навсегда, неограниченное количество доменов, бесплатно 775 долларов в программном обеспечении Обзор Lunarpages
9 GoDaddy
Крупнейший веб-хостинг
Место: Неограниченное Трафик: Неограниченное Цена: 12 $.74 Бесплатное доменное имя, неограниченное количество доменов, бесплатный SSL-сертификат Обзор GoDaddy
10 Bluehost
Безлимитный веб-хостинг
Место: Неограниченное Трафик: Неограниченное Цена: 6,95 $ Бесплатный домен навсегда, неограниченное количество доменов, маркетинговый бонус в размере 75 долларов США Обзор Bluehost

Веб-хостинг для Apache.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *