Разное

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

23.04.2021

Содержание

Легендарный бесплатный веб-сервер из России выпустил свою первую платную версию

, Текст: Владислав Мещеряков

Разработчики открытого веб-сервера Nginx выпустили свой первый коммерческий продукт — Nginx Plus с ценой подписки $1350. Сервером Nginx сейчас пользуются около 150 млн ресурсов.

Основанная российским программистом Игорем Сысоевым компания Nginx, разработчик одноименного популярного открытого веб-сервера выпустила свой первый коммерческий продукт под названием Nginx Plus.

Как ожидается, российское сообщение о запуске продукта будет распространено завтра, 23 августа 2013 г.

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

Разработчики позиционируют свой продукт как программную замену ADC (Application Delivery Controllers), аппаратным контроллерам доставки.

PC World приводит слова CEO компании Nginx Гуса Робертсона (Gus Robertson) о том, что функции, реализованные в Nginx Plus близки к тому, что есть в аппаратных ADC: «Мы являемся альтернативой Apache, но также и альтернативой аппаратным контроллерам для доставки контента».

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


Мировая распространенность веб-серверов по данным Netcraft

Одна подписка на пакет Nginx Plus будет продаваться по $1350. Как сообщил CNews сооснователь Nginx Андрей Алексеев, выход компании на рентабельность ожидается в 2014 г. Планы по выручке компании на настоящий момент не раскрываются.

По данным Netcraft, в августе 2013 г. Nginx удерживал второе место среди веб-серверов по числу работающих на нем активных сайтов: 148,9 млн или 14,89% от общего числа. По этому показателю он уступал только серверу Apache (569,3 млн или 56,93%) и незначительно опережал сервер Microsoft (132,9 млн или 13,29%).

В числе прочих Nginx используют сервисы Dropbox, Facebook, Hulu, Instagram, Netflix, Pinterest, Zynga и «Яндекс».

Напомним, что разработка веб-сервера nginx была начата Игорем Сысоевым в 2002 г. В 2004 г. появился первый публично доступный релиз веб-сервера, распространяемый бесплатно под открытой лицензией BSD.

В июле 2011 г. стало известно, что Игорь Сысоев основал для дальнейшего развития проекта компанию Nginx, где и стал техническим директором. Осенью того же года Nginx получила $3 млн инвестиций от трех инвестфондов: Runa Capital, BV Capital и MSD Capital, фонда гендиректора Dell

Майкла Делла (Michael Dell). Доли инвесторов к настоящему времени не раскрыты.

В апреле 2013 г. компания Nginx заявила о привлечении на работу в должности генерального директора бывшего вице-президента Red Hat Гаса Робертсона.



Java EE | Установка Apahe Tomcat

Установка Tomcat

Последнее обновление: 02.09.2018

Tomcat представляет веб-контейнер сервлетов и предназначен для работы с рядом технологий Java EE, в частности, с JSP, сервлетами и рядом других. Нередко Tomcat называют веб-сервером.

В данном случае мы будем использовать последнюю на сегодняшний день (29.08.2018) 9-ю версию. Для установки Tomcat перейдем на официальный сайт данного контейнера на странцу загрузок — https://tomcat.apache.org/download-90.cgi. На данной странице мы можем увидеть различные опции для загрузки: в виде архива, который достаточно распаковать, либо в виде инсталлятора.

В данном случае большой разницы не будет, какой именно пакет использовать. Но в моем случае для упрощения настройки я выберу пункт 32-bit/64-bit Windows Service Installer.

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

Вначале надо принять лицензионное соглашение:

Затем надо настроить устанавливаемые компоненты:

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

Далее будет предложено настроить порты и ряд дополнительных моментов конфигурации Tomcat:

Здесь стоит обратить внимание на пункт HTTP/1.1 Connector Port. Он указывает, по какому порту будет запускаться приложение. Укажем в этом поле номер 8081.

Затем надо будет указать версию java, которая будет использоваться:

По умолчанию инсталлятор должен определять путь к Java. Но естественно при необходимости его можно изменить. И в конце надо будет указать путь к устанавливаемому веб-контейнеру на жестком диске:

Также можно оставить путь по умолчанию. И после этого собственно произойдет установка контейнера.

После установки на финальном экране оставим отмеченнным пункт Run Apache Tomcat и нажмем на кнопку Finish. После этого Tomcat будет запущен, и мы сможем к нему обращаться.

Убедимся, что Tomcat работает. Для этого обратимся в строке браузера по адресу http://localhost:8081. В данном случае 8081 — это тот порт, который был указан на этапе установке выше. Если все Tomcat установлен и запущен правильно, то в браузере мы увидим некоторое стандартное содержимое:

что это, как работает и почему лучше других брокеров сообщений

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

Давайте посмотрим, что такое Apache Kafka, как он работает и кому пригодится.

Нервная система бэкенда: зачем нужен Apache Kafka

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

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

Но таким распределенным системам нужно как-то передавать данные между собой. В этом месте на сцене появляются системы обмена сообщениями (брокеры сообщений, диспетчеры сообщений). Это некая разветвленная система труб, в которую с одного конца можно бросить, например, контейнер с сообщениями, а с другого конца его кто-то получит и прочитает. К таким системам относят и Apache Kafka.

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

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

Почему установка Apache Kafka — лучший выбор

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

  1. Шина пересылки данных — узкое место. Представим, что ваши сервисы работают не на максимум, но в шине закончился ресурс для пересылки сообщений. В этом случае вся система будет парализована нагрузкой, несмотря на то, что у каждого компонента в отдельности остается достаточно мощности для обработки запросов.
  2. Потеря данных в шине может запутать и нарушить состояние системы. И хорошо, если вы потеряете в сообщениях что-то малозначительное, вроде статистических данных. Но что, если что-то пойдет не так при пересылке финансовой операции или важного заказа?

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

Описание Apache Kafka

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

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

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

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

Apache Kafka: обзор возможностей

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

  1. Самый очевидный подход — для связи микросервисов между собой. Сделал действие, послал сообщение другим сервисам — все, молодец. Или подписался на обновления от других частей системы и потихоньку на них реагируешь.
  2. Организация потоков данных. Допустим, у вас идет постоянный стрим каких-то событий, их нужно передавать по цепочке и на каждом этапе что-то с ними делать. Apache Kafka идеально реализует этот сценарий с помощью грамотной организации роутинга сообщений.
  3. Агрегация записей. В Apache Kafka можно писать данные куда быстрее, чем в обычную базу данных. Это значит, что с помощью сообщений можно организовать сбор кучи метрик, считать от них, например, средние, и уже эти значения писать в БД.
  4. Сбор логов. Apache Kafka дает возможность хранить сообщения в течение определенного времени. Это значит, что сообщения можно использовать для кратковременного (часы/сутки) хранения логов. Это позволяет разгрузить БД и медленные системы логирования.

Как пользоваться VDS?

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

Виртуальный сервер — это эмулированная вычислительная машина с установленной операционной системой. Соответственно, при работе с ней инструменты администрирования и настройки VDS ничем не отличаются от таковых выделенного физического сервера. Работа VDS осуществляется под управлением ОС Microsoft Windows, Mac OS или Linux в зависимости от выбора тарифного плана. Как и физический сервер, его виртуальный собрат обеспечивает работу с правами root, назначением IP, портов, политик безопасности и т. п.

Чтобы начать пользоваться VDS, первым делом необходимо заказать соответствующие услуги у хостинг-провайдера. Подключиться к виртуальному серверу можно с помощью утилиты «Удаленный рабочий стол». Подобное приложение разработано для всех популярных операционных систем —Microsoft Windows, MaсOS, Linux и даже Android. В случае с Linux подойдут программы rdesktop, FreeRDP или Remmina, а в Microsoft Windows используют mstsc.exe.

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

  • в соответствующих справочных материалах;
  • самостоятельно —для этого достаточно скачать и установить веб-сервер nginx или Apache, пакеты PHP и MySQL и другое необходимое для полноценной работы сервера программное обеспечение;
  • обратиться к хостинг-провайдеру, который даст вам необходимые пошаговые инструкции.

Чтобы было удобно управлять системой, используются специальные программы — панели управления VDS. К ним, например, относится ISP Manager — коммерческое приложение, активно используемое в российских интернет-агентствах.

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

Цены на VDS

Файл конфигурации Httpd.conf

Httpd.conf — главный файл конфигурации сервера Apache, содержащий директивы, которые управляют работой сервера.

Различают несколько основных разделов группирования директив конфигурации:

— Директивы, управляющие процессом Apache в целом (глобальное окружение).

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

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

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


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

ServerAdmin

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

ServerAdmin [email protected]
ServerRoot

Директива ServerRoot отвечает за базовый каталог, в котором будет установлено программное обеспечение HTTP-сервера Apache.

ServerRoot "C:/web_server/apache"
ErrorLog

Директива ErrorLog задает местоположение журнального файла, в котором регистрируются ошибки сервера. Если имя файла не начинается с символа слеш (/), то путь к файлу устанавливается относительно ServerRoot.

ErrorLog "logs/error.log"
ErrorDocument

Директива ErrorDocument позволяет сопоставить кодам ошибок HTTP-сервера адреса URL. Этой возможностью можно пользоваться для более красивого визуального взаимодействия с пользователями.

ErrorDocument 404 /404.html
ServerName

Директива ServerName задает официальное имя вашего сервера в том виде, в котором оно появляется в строке URL. Это должно быть имя компьютера, зарегистрированное в системе имен серверов вашей организации или провайдера.

ServerName localhost:80
DefaultType

При запросе файла с расширением, для которого на сервере не имеется соответствующего МIME-типа, будет использоваться MIME-тип, указанный в директиве DefaultType.

DefaultType text/plain
AddType

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

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/pdf pdf
<Directory directory> … </Directory>

Директива <Directory> указывает каталог, к которому будет включена группа директив, которые необходимо применить только к указанному каталогу и его подкаталогам.

<Directory C:/>
Options Indexes Includes
AllowOverride All
Allow from all
</Directory>
<Files имя-файла> … </Files>

Директива <Files> предназначена для управления доступом к файлу. Директивы, которые применяются к данному имени файла должны быть перечислены внутри.

<IfModule имя модуля> … </IfModule>

Раздел <IfModule> используется для того, чтобы отметить директивы, которые являются условными. Директивы внутри раздела IfModule обрабатываются только, если Имя модуляTrue. Параметр Имя модуля являет собой имя модуля как имя файла модуля. Например.

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<VirtualHost адрес>

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

<VirtualHost profiphp>
ServerName profiphp:80
DocumentRoot "C:/localhost/profiphp"
ErrorLog "c:/localhost/profiphp/error.log"
CustomLog "c:/localhost/profiphp/access.log" common
</VirtualHost>
Данная статья являет собой только ознакомительную информацию, которая подходит для использования веб-сервера в домашних условиях. Для настройки полноценного сервера, необходимо иметь более глубокие знания по настройке не только самого Apache, но и операционной системе.

Как найти использование памяти веб-приложений в apache tomcat



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

apache tomcat memory-management web-applications
Поделиться Источник Sugosh Ravindra     11 января 2015 в 09:20

4 ответа


  • где найти веб-проект после deployment по tomcat

    После развертывания войны веб-приложений на tomcat я хочу запустить классы веб — приложений в папке tomcat так что я нашел этот путь (C:\программное обеспечение\apache-tomcat-7\apache-tomcat-7.0.28\wtpwebapps\SeleniumebDriverProject\веб-инф\классы), которые содержат все классы . Я хочу, чтобы вы…

  • Почему New Relic ест много памяти tomcat?

    Недавно мы начали использовать New Relic для мониторинга нашего производственного веб-приложения, размещенного на сервере tomcat 7.0.6, но мы заметили, что объем памяти этого tomcat постоянно увеличивается, и в течение недели он съедает всю память сервера(AWS High-Memory Double Extra Large. ..



7

Вы можете получить доступ к использованию памяти для Tomcat JVM с помощью JMX довольно легко. См. этот SO для получения дополнительной информации. Обратите внимание, что вы получите использование памяти для tomcat + всех развернутых веб-приложений. Вы не можете получить использование памяти для одного веб-приложения, так как Tomcat совместно используют один процесс java как для контейнера, так и для приложений. Если вы хотите лучше контролировать использование памяти для каждого приложения, я предлагаю вам либо использовать более сложный сервер приложений, либо использовать экземпляр tomcat для каждого веб-приложения.

Чтобы отслеживать подключенных пользователей, я думаю, вам нужно что-то сделать на прикладном уровне. Tomcat на самом деле не знает о концепции «user», так как это обычно то, что вы реализуете в коде (например, Spring Security).

Поделиться Petter Nordlander     11 января 2015 в 09:45


Поделиться jagb     11 января 2015 в 09:53



0

Я бы порекомендовал glowroot очень хороший инструмент мониторинга производительности приложений с открытым исходным кодом Java (APM), который вы можете прикрепить к Tomcat без изменения исходного кода java.

Чтобы использовать его просто нужно скачать его и добавить в начало вашего JVM -javaagent:path/to/glowroot.jar

Для tomcat вам нужно добавить переменную окружения

JAVA_OPTS="$JAVA_OPTS -javaagent:path/to/glowroot.jar" on /etc/tomcat8/tomcat8.conf

Для получения более подробной информации см. инструкции по проекту github

Он имеет очень легкие накладные расходы, которые вы можете использовать временно в производстве для извлечения нескольких сведений о производительности приложений и тестирования с помощью Tomcat.

Вы можете увидеть демонстрацию датчиков из JVM и гистограмму памяти кучи здесь

Поделиться brunocrt     25 июня 2018 в 15:39


  • Список развернутых веб-приложений в Apache Tomcat

    Мне нужно получить список развернутых веб-приложений в Apache Tomcat. Кроме того, для каждого веб-приложения мне нужно получить список инициализированных сервлетов и JSPs. Есть идеи, как это можно сделать? Я обнаружил, что каталог \tomcat\work\Catalina\localhost\ содержит дочерний каталог для…

  • Apache Tomcat: несколько веб-приложений

    Я разрабатываю веб-приложение с использованием Apache Tomcat. Это веб-приложение будет развернуто на сервере, на котором размещаются другие веб-приложения. Теперь, поскольку мое веб-приложение требует от пользователя аутентификации, мне нужно будет изменить некоторые файлы в каталоге conf Tomcat,…



0

Pinpoint, glowroot, java melody, visualVM(поставляется с JDK), Java mission control(поставляется с JDK) могут помочь вам понять использование кучи и другие параметры производительности (например, использование трэйда, время отклика, узкие места и т. д..) Мой любимый-Glowroot.. 🙂 он прост в установке и обеспечивает действительно хорошее понимание приложения. Демо Url Glowroot: https:/ / demo.glowroot.org / транзакция / среднее значение?transaction-type=Web Java мелодия: http://javamelody.org/demo/monitoring я надеюсь, что это поможет вам 🙂

Поделиться khushal wadake     03 апреля 2019 в 10:07


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


Действительно ли Apache Tomcat достаточно Java веб-приложений?

Я наткнулся на эту статью: Перестаньте тратить деньги на серверы приложений WebLogic, WebSphere и JBoss через твит сегодня. Статья начинается с Я не понимаю, почему фирмы тратят миллионы долларов на…


Виртуальные хосты в веб-сервере Apache и среде Apache Tomcat

У меня есть несколько веб-приложений,которые поставляются в комплекте с их сервером Apache Tomcat. Когда этот сервер tomcat запускается, они дают мне возможность получить доступ к приложению,…


Tomcat в настройках памяти веб-приложения

У меня есть два веб-приложения, работающих внутри tomcat. Java пространство кучи выделено для Tomcat,и оно является общим для обоих приложений. В этом одно приложение потребляет больше, а другое…


где найти веб-проект после deployment по tomcat

После развертывания войны веб-приложений на tomcat я хочу запустить классы веб — приложений в папке tomcat так что я нашел этот путь (C:\программное…


Почему New Relic ест много памяти tomcat?

Недавно мы начали использовать New Relic для мониторинга нашего производственного веб-приложения, размещенного на сервере tomcat 7.0.6, но мы заметили, что объем памяти этого tomcat постоянно…


Список развернутых веб-приложений в Apache Tomcat

Мне нужно получить список развернутых веб-приложений в Apache Tomcat. Кроме того, для каждого веб-приложения мне нужно получить список инициализированных сервлетов и JSPs. Есть идеи, как это можно…


Apache Tomcat: несколько веб-приложений

Я разрабатываю веб-приложение с использованием Apache Tomcat. Это веб-приложение будет развернуто на сервере, на котором размещаются другие веб-приложения. Теперь, поскольку мое веб-приложение…


Утечки памяти в Tomcat 7.0.50

В настоящее время мы используем Apache Tomcat 7.0.50, развернутый с несколькими экземплярами веб-приложений, и где мы пытаемся исправить некоторые ошибки в catalina.out, которые кажутся серьезными….


Является ли Apache Tomcat веб-сервером или сервером приложений

Является ли Apache Tomcat веб-сервером или сервером приложений?


несколько веб-приложений на одном экземпляре tomcat плохо или хорошо?

мы собираемся развернуть новые веб-сервисы на наших производственных серверах (HP-UX). у нас уже есть другое веб-приложение, развернутое на нашем контейнере сервлетов (apache-tomcat 5.5). у нас уже…

Как установить и настроить LAMP-сервер в Ubuntu

Операционные системы Linux предлагают своим пользователям большие возможности для создания веб-сайтов, их хранения на сервере и тестирования. Многие наверняка слышали, что правильная настройка Apache и MySQL позволяет удобно работать с серверами. Пора познакомиться и с LAMP, которая их всех объединяет, а также понять, как установить и настроить LAMP-сервер в Ubuntu.

Установка LAMP позволяет создать web-сервер.

Что такое LAMP?

LAMP — это не программа, как можно подумать сперва, и не сервер. За этой аббревиатурой скрывается стек или комплекс программ серверного назначения: Apache, MySQL, PHP. Отсюда и название — первые буквы каждой из этих программ. Первая буква взята от Linux.

Подробнее о компонентах.

  • Apache — это свободный HTTP-сервер.
  • MySQL — мощная, также бесплатная система управления базами данных. Используется на многих сайтах.
  • PHP — язык программирования. На нём очень часто пишут различные веб-приложения.

Всё это ПО полезно и практически незаменимо для размещения веб-сайтов в сети. Осталось научиться устанавливать его и пользоваться.

Установка LAMP

ЛАМП устанавливается несколькими способами. Так как это комплекс программ, то можно загрузить каждую из них по отдельности, но удобнее сделать это вместе. Для этого проще воспользоваться Tasksel:

sudo tasksel install lamp-server

Tasksel — специальный инструмент, установленный на Убунту, с помощью которого в систему легко грузить различные программные пакеты. Во время установки система попросит ввести пароль для MySQL. Необходимо сделать это.

Удаление

Удалить стек полностью также можно одной командой:

sudo tasksel remove lamp-server

Произойдёт установка всех компонентов: PHP 7, Apache, MySQL. Для более удобной работы программы добавляются в автозагрузку. Если вы хотите это изменить, сделайте это через настройки: Система — Параметры — Запускаемые приложения. Там просто удалите компоненты ЛАМПа.

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

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

  1. Устанавливаем необходимые пакеты вторым способом:
    sudo apt-get install apache2 mysql-server php5 phpmyadmin 
  2. Придумываем и вводим пароль суперпользователя для того, чтобы установить MySQL на Ubuntu, затем делаем это повторно.
  3. Высвечивается окно настройки phpmyadmin. Здесь нужно указать, что использоваться будет Apache
  4. После нужно будет прочитать информацию в паре окон и подтвердить настройку БД. dbconfig-common — специальный вспомогательный пакет, который используется как на Debian, так и на Ubuntu.
  5. Система снова попросит нас ввести пароль. Это нужно сделать три раза: для совмещения MySQL с phpmyadmin, для создания базы данных и в подтверждение.
  6. Проверяем: работает ли сервер. Вводим в адресной строке браузера «localhost». Должно появиться сообщение: «It works!».
  7. Теперь вводим «localhost/phpmyadmin» в строке, авторизуемся. Логин: root, пароль тот же, что и вводимый ранее.

Настраиваем сервер и добавляем веб-сайт

Настройка сервера LAMP — наиболее важная часть, так как установка MySQL, Apache, PHP 7 на Ubuntu не представляет никакой сложности. Далее нужно будет поработать с программным кодом.

Делаем ссылку на phpmyadmin:

sudo ln -s /etc/phpmyadmin /var/www

Открываем, а затем редактируем конфигурацию сервера:

sudo nano /etc/apache2/apache2.conf

Добавляем в конец строку:

ServerName localhost:80

Открываем файл hosts:

sudo nano /etc/hosts

Добавляем строку:

127. 0.1.1             testsite.ru

Делаем файл конфигурации нового сайта:

‹VirtualHost *:80›
ServerAlias testsite.ru www.testsite.ru
DocumentRoot /home/server/testsite.ru
‹Directory home/server/testsite.ru/›
AllowOverride All
‹/Directory›
‹/VirtualHost›

Помещаем этот файл с root-правами сюда: /etc/apache2/sites-available/

Активируем сайт:

sudo a2ensite testsite.ru

Перезапускаем сервер:

sudo /etc/init.d/apache2 restart

Создание страницы для веб-сайта

Делаем первую страницу — файл index.php в папке с сайтом (home/server/testsite.ru).

Вводим туда:

‹?
echo ‘Привет!!!’;
?›

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

Открываем через браузер нашу страничку: вводим веб-адрес в строку.

После этого мы должны увидеть заветное «Привет!!!». Если это произошло, то всё настроено правильно. Теперь в этой папке можно расположить полноценный веб-сайт, который будет тестироваться на LAMP. Папку, как и адрес сайта, конечно же, можно менять.

Теперь вы знаете, что установка и настройка MySQL, Apache, PHP (LAMP) на Ubuntu не так уж страшны, как кажутся изначально. Это лишь базовые возможности софта. Со временем вы научитесь использовать всю мощь программ.

Начало работы — HTTP-сервер Apache, версия 2.5

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

Адреса в Интернете выражаются с помощью URL-адресов — унифицированных указателей ресурсов. — которые определяют протокол (например, http ), имя сервера (например, www.apache.org ), URL-путь (например, / документы / текущий / начало работы.html ) и, возможно, запрос строка (например, ? arg = значение ), используемая для передачи дополнительных аргументы серверу.

Клиент (например, веб-браузер) подключается к серверу (например, к вашему HTTP-серверу Apache), с указанным протоколом и делает запрос для ресурса, используя URL-путь.

URL-путь может представлять любое количество объектов на сервере. Это может быть файлом (например, getting-started.html ) обработчиком (например, server-status) или какой-то программой файл (например, index.php ). Мы обсудим это подробнее ниже в раздел «Контент веб-сайта».

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

Подробная информация о транзакции и любые условия ошибки записываются в лог-файлы.Это обсуждается более подробно ниже в разделе «Файлы журналов и устранение неполадок».

Чтобы подключиться к серверу, клиент сначала должен решить имя сервера на IP-адрес — место в Интернете, где сервер находится. Таким образом, чтобы ваш веб-сервер был доступен, он необходимо, чтобы имя сервера было в DNS.

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

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

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

127.0.0.1 www.example.com

Файл hosts, вероятно, будет расположен по адресу / etc / hosts или C: \ Windows \ system32 \ drivers \ etc \ hosts .

Вы можете узнать больше о файле hosts на Wikipedia.org/wiki/Hosts_(file) и больше о DNS на Wikipedia.org/wiki/Domain_Name_System.

HTTP-сервер Apache настраивается с помощью простых текстовых файлов.Эти файлы могут быть расположены в любом месте, в зависимости от того, как именно вы установили сервер. Общие расположения для этих файлов могут быть найденным в вики httpd. Если вы установили httpd из источника, по умолчанию расположение файлов конфигурации / usr / local / apache2 / conf . Файл конфигурации по умолчанию: обычно называется httpd.conf . Это тоже может варьироваться в зависимости от сторонние дистрибутивы сервера.

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

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

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

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

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

Статическое содержимое — это файлы HTML, файлы изображений, файлы CSS и т. Д. и другие файлы, находящиеся в файловой системе. Директива DocumentRoot указывает, где в вашем файловая система, вы должны разместить эти файлы. Эта директива либо установлена глобально или на виртуальном хосте. Посмотрите в своем файле (-ах) конфигурации, чтобы определите, как это установлено для вашего сервера.

Обычно обслуживается документ с именем index.html . когда каталог запрашивается без указания имени файла.Для Например, если DocumentRoot установлен на / var / www / html и делается запрос на http://www.example.com/work/ , файл /var/www/html/work/index.html будет доставлен клиент.

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

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

Как администратор HTTP-сервера Apache, ваши самые ценные активы: файлы журналов и, в частности, журнал ошибок.Устранение неполадок любого проблема без журнала ошибок — это как езда с закрытыми глазами.

Местоположение журнала ошибок определяется директивой ErrorLog , которая может быть установлена ​​глобально, или на виртуальный хост. Записи в журнале ошибок сообщают, что пошло не так, и когда. Они также часто говорят вам, как это исправить. Каждое сообщение журнала ошибок содержит код ошибки, который вы можете найти в Интернете, чтобы получить дополнительную информацию. подробное описание того, как решить проблему. Вы также можете настройте журнал ошибок так, чтобы он содержал идентификатор журнала, который затем можно соотнесены с записью в журнале доступа, чтобы вы могли определить, какой запрос вызвало состояние ошибки.

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

Когда у вас есть все необходимое, самое время двигаться на.

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

Как настроить Apache 2

Важно прочитать документацию, распространяемую вместе с сервером Apache. Эти документы обычно хранятся в каталоге « \ manual » или « \ htdocs \ manual » (где обозначает установленный каталог вашего Apache).Прочтите руководства и инструкции.

Чтобы установить Apache 2, прочтите «Как установить Apache 2». Я предполагаю, что HTTP-сервер Apache установлен в d: \ myProject \ apache2 , работающий в порту 8000. Корневой каталог документа — « \ htdocs ».

Базовая конфигурация

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

Файл конфигурации по умолчанию называется « httpd.conf » (или « apache2.conf ») в каталоге « \ conf ». Браузер через этот конфигурационный файл.

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

  • Слушать: привязать Apache к определенным IP-адресам и / или портам. HTTP-сервер по умолчанию работает на порту 80 для производства. Для тестирования вы можете выбрать номер порта от 1024 до 65535, который не используется существующим приложением (вы можете запустить команду « netstat », чтобы проверить существующие соединения).Мы запустим Apache на порту 8000.
    Слушайте 8000 
  • ServerName: укажите имя вашего DNS-хоста или IP-адрес (чтобы узнать ваш IP-адрес, выполните команду « ipconfig »), или имя вашего компьютера, или «localhost» (localhost предназначен только для тестирования локальной петли, вы также можете использовать IP-адрес localhost 127.0.0.1), за которым следует номер порта, выбранный выше.
    ServerName  YourHostNameOrIPAddres : 8000 
  • ServerRoot: установленный каталог Apache « «, e.грамм.,
    ServerRoot "d: / myProject / apache2" 

    Вы должны использовать косую черту в стиле Unix (/) в качестве разделителя каталогов вместо обратной косой черты в стиле Windows ( \ ) в файле конфигурации.

  • DocumentRoot: корневой каталог документов, то есть домашний каталог сервера. По умолчанию установлено значение « \ htdocs ».
    DocumentRoot " d: / myPorject / apache2   / htdocs "
        
    
    <Каталог " d: / myPorject / apache2   / htdocs ">
        
        Индексы опций FollowSymLinks
     
        
        AllowOverride Нет
     
        
        Заказать разрешить, запретить
        Разрешить от всех
     

    Внимание! Вы ДОЛЖНЫ выполнить глобальный поиск по « htdocs » перед изменением корневого каталога документов.

Контроль доступа в HTTP-сервере Apache

Управление доступом занимается управлением доступом к ресурсу, который может быть набором каталогов, файлов или местоположений. Управление доступом может быть основано на идентификаторе клиента, который называется аутентификацией (обсуждается в разделе «Аутентификация HTTP»). Контроль доступа также может быть основан на других критериях, таких как сетевой адрес, время суток, браузер, который использует клиент, типы методов запроса и т. Д.

Управление доступом к каталогам

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

: может использоваться для применения контроля доступа к набору каталогов. Синтаксис:

<Каталог , каталог >

......
 

Директива блока включает в себя набор директив управления доступом, которые будут применяться к совпадающему каталогу (ам) и его подкаталогам.Каталоги задают каталоги, применимые к этому блоку. При сопоставлении можно использовать подстановочный знак: «? » соответствует ровно одному символу; « * » соответствует нулю или более символов; [...] может использоваться для указания диапазона символов, например [c-f] . Можно использовать расширенное регулярное выражение (regexe), которое начинается с « ~ ».

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

 Опция [+ | -]  Опция-1  [+ | -]  Опция-2  ... 

Доступные варианты:

  • Индексы: если клиент запрашивает каталог, а в каталоге нет файла индексации (например, « Index.html »), то сервер вернет список каталога. Если опция « Indexes » отключена, сервер возвращает ошибку «403 Forbidden».
  • ExecCGI: разрешить выполнение сценария CGI.
  • Включает: Разрешить включение на стороне сервера (SSI).
  • Включает NOEXEC: разрешить SSI, но отключить команду #exec и #exec CGI.
  • FollowSymLinks: переход по символическим ссылкам.
  • SymLinksIfOwnerMatch: переходите по символическим ссылкам, только если владелец тот же самый.
  • MultiViews: разрешить согласование содержимого, например согласование языка.
  • Нет: ничего.
  • Все: все параметры, кроме MultiViews . Это значение по умолчанию.
  • + (или -) добавляет (или удаляет) этот конкретный параметр относительно текущего параметра.Все остальные варианты остаются прежними. Например, директива « Option + Indexes -ExecGGI » добавляет параметр « Indexes » и удаляет параметр « ExecCGI » из текущей настройки. Остальные параметры остаются без изменений.

Если не используется директива Options , эффект будет All, кроме MultiViews . Однако, если директива Options используется без +/- , например, « Options Indexes », доступна только опция Indexes , а остальные параметры отключены.Если используется +/- , изменяется только этот конкретный параметр, остальные параметры остаются такими же (унаследованными от настройки на более высоком уровне).

Пример 1
<Справочник  / www >
   Индексы опционов ExecCGI

   
<Справочник  / www / продажи >
   Индексы опционов

   
<Справочник  / www / support >
   Параметры -Индексы
 

Поскольку сопоставление применяется к подкаталогам, « / www » имеет параметры Индексы и ExexCGI , « / www / sales » имеет параметр Только индексы (настройка в родительский каталог игнорируется), а « / www / support » имеет параметр ExecCGI (унаследованный от родительского каталога).

Порядок

: указывает порядок, в котором оцениваются директивы Allow и Deny .

 Order Deny, Allow | Разрешить, запретить 
  • Запретить, Разрешить: доступ разрешен по умолчанию, и директивы Запретить оцениваются перед директивами Разрешить . Любому клиенту, который не соответствует директиве Deny «или» соответствует директиве Allow , будет разрешен доступ к серверу. (Клиенту разрешен доступ, если он находится в обоих списках Deny и Allow , поскольку Allow оценивается последним.)
  • Allow, Deny: доступ запрещен по умолчанию, и директивы Allow оцениваются перед директивами Deny . Любому клиенту, который не соответствует директиве Allow «или» соответствует директиве Deny , будет отказано в доступе к серверу. (Клиенту в Allow и Deny будет отказано в доступе, так как Deny оценивается последней.)
Apache 2.4

Apache 2.4 использует новый модуль mod_authz_host для управления доступом.Вместо директив Order , Allow и Deny в Apache 2.2 используется новая директива Require . Например,

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

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

Заказать разрешить, запретить
Разрешить от всех

Требовать все предоставлено


Заказ запретить, разрешить
Запретить всем
Разрешить с example.com

Требовать хост example.org 

[TODO] Приведите в порядок следующие примеры.

Пример 2
 Заказ запрещен, разрешен
Запретить всем
Разрешить с test101.com 
  1. доступ разрешен по умолчанию;
  2. все хосты запрещены;
  3. разрешены в домене « * .test101.com ».

Следовательно, разрешены только хосты в « * . test101.com «.

Пример 3
 Заказать разрешить, запретить
Разрешить с test101.com
Запретить на sales.test101.com 
  1. доступ запрещен по умолчанию;
  2. все хосты в категории « *.test101.com разрешен домен «, и;
  3. хостов в субдомене «* .sales.test101.com » не принимаются.

Следовательно, разрешены все хосты в домене « * .test101.com », кроме «* .sales.test101.com ».

С другой стороны, если Order изменен на Deny, Allow , всем хостам будет разрешен доступ (по умолчанию). Это происходит потому, что, независимо от фактического порядка директив в файле конфигурации, Allow from test101.com будет оцениваться последним и переопределит Deny от sales.test101.com . Любым другим хостам разрешен доступ по умолчанию.

Пример 4
<Каталог / главная>
  Заказать разрешить, запретить
 

В соответствии с настройками по умолчанию всем хостам запрещен доступ к каталогу « / home ».

Пример 5
<Каталог / главная>
  Заказ запретить, разрешить
  Запретить всем
 

Всем хостам запрещен доступ к каталогу « / home ».Хотя доступ разрешен по умолчанию, Запретить со всех запрещает все хосты.

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

 Разрешить от всех | host | env =  env-variable  

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

  • Имя-домена: Хостам, имена которых совпадают или оканчиваются на эту строку, разрешен доступ. \.ht «> Заказать разрешить, запретить Запретить всем Удовлетворить всех <Файлы .htaccess> Заказать разрешить, запретить Запретить всем

    Использование .htaccess может предотвратить частый перезапуск сервера. Это связано с тем, что директивы конфигурации в « httpd.conf » читаются при запуске. Любое изменение требует перезапуска. .htaccess проверяется при каждом доступе. Изменения вступят в силу при последующих доступах.Недостатком является снижение производительности, поскольку .htaccess необходимо проверять при каждом доступе к каталогу.

    <Ограничение методов > & <Ограничение исключений методов >:

     <ограничение  метод-запроса-1   метод-запроса-2 >
     

    Контроль доступа обычно эффективен для всех методов запроса (таких как GET, POST, HEAD, PUT, DELETE). Блоки и могут использоваться для ограничения контроля доступа на основе метода HTTP-запроса, используемого во входящем запросе.Это полезно, если вы реализовали запрос PUT, но хотите ограничить запросы PUT, но не запросы GET; или вы можете разрешить GET / HEAD, но ограничить PUT / DELETE.

    Для контроль доступа применяется к перечисленным методам; все остальные методы не ограничены, например,

    <Ограничить POST PUT DELETE>
       Заказать отказать, разрешить
       Запретить от всех
     

    Контроль доступа, применяемый к методам POST, PUT и DELETE; все другие методы не ограничены.

    Перечисленные имена методов могут быть одним или несколькими из следующих: GET, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK и UNLOCK. Если используется GET, он также ограничивает запросы HEAD. Метод TRACE не может быть ограничен.

    используется для включения группы директив управления доступом, которые будут применяться к любому НЕ перечисленному методу доступа HTTP; т. е. он противоположен блоку и может использоваться для управления как стандартными, так и нестандартными / нераспознанными методами.При ограничении доступа следует использовать блок вместо блока , поскольку блок обеспечивает защиту от произвольных методов. Например,

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

    Методы запроса, отличные от GET и POST, такие как PUT, DELETE, не будут разрешены.

    Пример 7
    <Каталог "d: / myPorject / apache2 / users">
        AllowOverride FileInfo AuthConfig Limit
        Параметры MultiViews Индексы SymLinksIfOwnerMatch IncludesNoExec
        <Ограничить GET POST OPTIONS PROPFIND>
            
            Заказать разрешить, запретить
            
            Разрешить от всех
        
        
            
            Заказать отказать, разрешить
            
            Запретить всем
        
     
    Контроль доступа к файлам
     <Файлы имя-файла>
    ......
     

    В отличие от <каталог> , имя файла относится к DocumentRoot.

    (В разработке) (Приведите примеры)

    Контроль доступа к местоположению
    
    ......
     

    Ограничьте объем директив, определенных в блоке, соответствующими URL-адресами.

    (В разработке) (Приведите примеры)

    Виртуальные хосты

    Очень часто ваш веб-сервер должен поддерживать несколько имен хостов (например,g., www.test101.com, www.test102.com и т. д.), несколько IP-адресов (с несколькими сетевыми картами) или прослушивание нескольких портов. Довольно необычно и беспорядочно запускать один сервер для каждого имени хоста, IP-адреса или порта. Лучше запустить несколько «виртуальных хостов» на одном физическом веб-сервере.

    HTTP / 1. 1 представляет новую функцию, называемую «виртуальный хост», которая позволяет вам запускать несколько имен хостов на одном физическом сервере / машине. HTTP / 1.1-совместимый сервер может поддерживать множество имен хостов / IP-адресов / портов на одном сервере.С другой стороны, сервер HTTP / 1.0 поддерживает только один адрес TCP и одно имя хоста. В HTTP / 1.1 заголовок запроса «Хост» является обязательным для выбора одного из виртуальных хостов.

    Прочтите «Virtual Host — How-to» в «htdocs \ manual \ programs \ vhosts \ index.html.html»

    Поддержка Apache (a) виртуальные хосты на основе имен, (b) виртуальные хосты на основе IP и (c) виртуальные хосты на основе портов.

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

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

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

    Следующим шагом является создание блока для каждого отдельного хоста, который вы хотите обслуживать. Аргумент директивы должен быть таким же, как аргумент директивы NameVirtualHost (то есть IP-адрес или * для всех адресов). Внутри каждого блока вам потребуется как минимум директива ServerName , чтобы указать, какой хост обслуживается, и директива DocumentRoot , чтобы показать, где в файловой системе находится содержимое этого хоста.

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

    Например, предположим, что вы обслуживаете домен www.test101.com, и вы хотите добавить виртуальный хост www.test102.com, который разрешается на тот же IP-адрес. Затем вы просто добавляете в « httpd.conf » следующее:

    ИмяVirtualHost *
       
    
    
    Имя сервера www.test101.com
    DocumentRoot / www101
    
       
    
    Имя сервера www.test102.com
    DocumentRoot / www102
     

    Вы также можете указать явный IP-адрес вместо * в директивах NameVirtualHost и , если ваш сервер принимает несколько IP-адресов.

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

     ServerAlias ​​www.test101.com * .test101.com 

    , то запросы для всех хостов в домене test101.com будут обслуживаться виртуальным хостом www.test101.com. Подстановочные знаки « * » и «? » могут использоваться для сопоставления имен.Конечно, вы не можете просто придумать имена и поместить их в ServerName или ServerAlias ​​. Сначала необходимо правильно настроить DNS-сервер для сопоставления этих имен с IP-адресом, связанным с вашим сервером.

    Теперь, когда поступает запрос, сервер сначала проверяет, использует ли он IP-адрес, соответствующий NameVirtualHost . Если это так, он будет просматривать каждый раздел с соответствующим IP-адресом и пытаться найти тот, в котором ServerName или ServerAlias ​​ совпадает с запрошенным именем хоста.Если он его находит, он использует конфигурацию для этого сервера. Если соответствующий виртуальный хост не найден, будет использоваться первый виртуальный хост в списке, соответствующий IP-адресу.

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

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

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

    Для тестирования виртуального хоста без доступа к DNS-серверу: Вы можете создать несколько имен хостов, указывающих на ваш собственный IP-адрес (или localhost) в вашей локальной таблице поиска DNS «hosts».Например:

     192.123.123.1 www.yellow.com
    192.123.123.1 www.sales.yellow.com
    192.123.123.1 www.orange.com
    127.0.0.1 локальный хост
    127.0.0.1 яблоко88
    127.0.0.1 оранжевый 99 

    В Windows локальная таблица поиска DNS называется «% SYSTEM_ROOT% \ system32 \ drivers \ etc \ Hosts ».

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

    Как указывает термин на основе IP, сервер должен иметь разные IP-адреса для каждого виртуального хоста на основе IP. Это может быть достигнуто с помощью машины, имеющей несколько физических сетевых подключений, или с помощью виртуальных интерфейсов, которые поддерживаются большинством современных операционных систем (подробности см. В документации по системе, они часто называются «ip aliases» и « ifconfig ») команда обычно используется для их настройки).

    Например:

     
      DocumentRoot / www201
      Имя сервера www.test201.com
    
       
    
      DocumentRoot / www202
      Имя сервера www.test202.com
     

    Host может быть _default_ , и в этом случае он не совпадает ни с чем .

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

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

    Пример выглядит следующим образом:

     Слушайте 80
    
      ServerName localhost: 80
      DocumentRoot / var / www1
      ErrorLog  /error.log
      CustomLog  /access.log объединены
      
      
      <Каталог "/ var / wwwl">
        Параметры Индексы FollowSymLinks MultiViews
        AllowOverride Нет
    
        # Apache 2.4
        Требовать все предоставлено
        # Apache 2.2
        # Заказать разрешить, запретить
        # разрешить от всех
      
    
    
    Слушай 8080
    
      Имя сервера localhost: 8080
      DocumentRoot / var / www2
      ErrorLog  / error.журнал
      CustomLog  /access.log объединены
     
      
      <Каталог "/ var / www2">
        Параметры Индексы FollowSymLinks MultiViews
        AllowOverride Нет
        
        # Apache 2.4
        Требовать все предоставлено
        # Apache 2.2
        # Заказать разрешить, запретить
        # разрешить от всех
      
     

    Директива Listen сообщает Apache, какой порт слушать. Apache может прослушивать более одного порта с помощью нескольких директив Listen.

    Настройка HTTPS для сервера Apache (Windows)

    Для Ubuntu прочтите «Настройка HTTPS для Apache (Ubuntu)».

    Шаг 1. Создайте сертификат для веб-сервера

    Первым шагом для настройки поддержки SSL является создание сертификата для вашего веб-сервера. Для этого вам понадобится OpenSSL, программное обеспечение с открытым исходным кодом, доступное на http://www.openssl.org. Бинарный пакет Apache для Windows включает OpenSSL в « \ bin «.

    Выполните следующую команду, чтобы создать самозаверяющий сертификат для сервера.Прежде всего, создается пара открытого и закрытого ключей. Закрытый ключ сохраняется в « MyServer.key » (который должен храниться в безопасном месте). Открытый ключ сохраняется в сертификате « MyServer.crt » для передачи пользователю.

    >  openssl req -x509 -days 36500 -newkey rsa: 2048 -nodes -keyout MyServer.key -out MyServer.crt
         -subj / C = SG / O = MyCompany / CN = localhost 
     
    
    >  openssl req -x509 -days 36500 -newkey rsa: 2048 -nodes -keyout MyServer.ключ -out MyServer.crt
         -subj / C = SG / O = MyCompany / CN = localhost   -config ../conf/openssl.cnf  

    Варианты:

    • -x509 : запрашивает сертификат X.509 для создания.
    • -дней 36500 : устанавливает срок действия сертификата. По умолчанию 30 дней. Я поставил 100 лет.
    • -newkey rsa: 2048 : создать новую пару ключей, используя RSA длиной 2048 бит.
    • -nodes : для файла закрытого ключа нельзя использовать парольную фразу.
    • -keyout и -out : укажите выходной файл закрытого ключа и сертификат.
    • -subj устанавливает код страны (/ C), название компании (/ O) и общее название (/ CN). Если вы не укажете их, вам будет предложено их ввести. CN (общее имя) должно совпадать с вашим ServerName в вашей конфигурации Apache, иначе сертификат не будет совпадать, и пользователи получат предупреждение при подключении.
    • -config : укажите файл конфигурации openssl.
    • См. Http://www.modssl.org/docs/2.2/ssl_reference.html для получения дополнительной информации о синтаксисе команд OpenSSL.

    Чтобы просмотреть содержимое сертификата (который содержит открытый ключ сервера), введите следующую команду openssl:

    >  openssl x509 -in server.crt -noout -text  
    Шаг 2. Настройка HTTP-сервера Apache

    Прежде всего переместите файл закрытого ключа ( MyServer.ключ ) и сертификат ( MyServer.crt ) в каталог конфигурации Apache ( / conf ).

    В основной конфигурации apache « httpd.conf » (под / conf ) проверьте следующие директивы:

    LoadModule модули ssl_module / mod_ssl.so
     
    
    Включите conf / extra / httpd-ssl.conf 

    LoadModule загружает модуль SSL, а директива Include включает дополнительные параметры конфигурации для поддержки SSL в « conf / extra / httpd-ssl.conf «, как показано ниже

    Слушайте 443
     
    
    
    DocumentRoot " / wwwssl"
    Имя сервера localhost: 443
    ErrorLog " /logs/error.log"
    TransferLog " /logs/access.log"
    SSLEngine включен
    SSLProtocol все -SSLv2
    SSLCipherSuite ВЫСОКИЙ: СРЕДНИЙ:! ANULL:! MD5
    SSLCertificateFile " /conf/MyServer.crt"
    SSLCertificateKeyFile " / conf / MyServer.ключ"
     
    
    <Каталог " / wwwssl">
        Параметры Индексы FollowSymLinks MultiViews
        AllowOverride Нет
        Заказать разрешить, запретить
        разрешить от всех
    
    
     
     
    Проверка установки SSL

    Создайте корневой каталог документов « wwwssl » и разместите страницу приветствия (например, index. html ).

    Запустите сервер Apache. Запустите браузер и введите https: // localhost .

    Поскольку сертификат сервера самоподписан и не подписан доверенным центром сертификации (CA), браузер выдает предупреждение. Примите предупреждение и продолжите …

    Что если …

    В случае ошибки при установке:

    Файл закрытого ключа, защищенный паролем

    Вы можете прикрепить парольную фразу (т. Е. Пароль) к файлу закрытого ключа. Однако, чтобы запустить Apache, вам необходимо либо жестко закодировать парольную фразу в файле конфигурации apache (такая же степень защиты, как без парольной фразы), либо предоставить парольную фразу во время диалогового окна запуска (это означает, что вы не можете автоматизировать запуск Apache. !).

    Сертификат, подписанный ЦС

    Для создания сертификата для подписи CA:

    1. Создайте пару ключей общего доступа и запрос сертификата:
      >  openssl req -new -newkey rsa: 2048 -nodes
        -keyout MyServer.key -out www.mysite.com.csr
        -subj /O=MyCompany/OU=MyDepartment/CN=www.mysite.com  
      мы не использовали переключатель -x509 . Таким образом, команда сгенерирует пару открытого и закрытого ключей и запрос сертификата в .csr , но не сертификат (файл .crt ).
    2. Отправьте этот файл запроса сертификата « www.mysite.com.csr » в центр сертификации (вместе с оплатой). Вы можете получить бесплатный сертификат на сайте CAcert.org .
    3. Переименуйте полученный сертификат в MyServer.crt и проверьте его содержимое:
      >  openssl verify -CAfile /path/to/trusted_ca.crt -purpose sslserver server.crt  
      Убедитесь, что сертификат соответствует вашему закрытому ключу:
      >  openssl x509 -noout -modulus -in server.пем | openssl sha1 
      >  openssl rsa -noout -modulus -in server.key | openssl sha1  
    4. Установите свой закрытый ключ ( MyServer. key ) и сертификат ( Myserver.crt ) в свою конфигурацию apache.

    Разные конфигурации

    Файлы журнала

    Apache создает следующие файлы журнала: журнал ошибок, журнал доступа. Конфигурация по умолчанию помещает журнал ошибок в « $ APACHE_home \ logs \ error.log «и войдите в журнал» $ APACHE_home \ logs \ access.log «. Просмотрите эти файлы журнала.

    Журнал ошибок: директивы конфигурации, относящиеся к регистрации ошибок: ErrorLog и LogLevel :

    .
    • Директива ErrorLog указывает расположение файла журнала ошибок. Например:
      Журналы ErrorLog / error.log 
    • LogLevel Директива управляет типами сообщений об ошибках, записываемых в журнал ошибок.Например:
      Предупреждение LogLevel 

    Примеры записей в журнале ошибок:

     [Вс, 18 октября, 16:53:40 xxxx] [ошибка] [клиент 127.0.0.1] Недействительный метод в запросе get /index.html HTTP / 1.0 
    [Вс, 18 октября, 18:36:20 xxxx] [ошибка] [клиент 127.0.0.1] Файл не существует: d: /myPorject/apache2/htdocs/t.html [Вс, 18 октября, 19:58:41 xxxx] [ошибка] [клиент 127.0.0.1] клиент отклонен конфигурацией сервера: d: / myPorject / apache2 / htdocs / запрещено / index.HTML

    Журнал доступа: директивы конфигурации, относящиеся к регистрации доступа: CustomLog и LogFormat :

    .
    • Директива CustomLog определяет расположение файлов журнала доступа. Есть 3 типа журналов доступа: общий, реферер и агент. Общий журнал доступа фиксирует доступ клиентов. Журнал доступа реферера фиксирует «реферер» (как в заголовке запроса Referer) запроса. (Реферер может использоваться для контроля доступа или учета, например для электронной рекламы.) Журнал доступа агента фиксирует типы браузеров, использованных при выдаче запроса (как в заголовке запроса User-Agent). Для большинства установок не требуются журналы доступа реферера и агента. Например:
      CustomLog "журналы / access.log" общие
      #CustomLog logs / referer.log referer
      #CustomLog logs / agent.log agent 

      Вы можете объединить все 3 журнала доступа в один файл журнала, используя ключевое слово «комбинированный».

      #CustomLog "журналы / доступ.бревно "комбинированное 
    • LogFormat директива управляет форматом журналов доступа. Например:
      LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-Agent} i \ "" вместе
      LogFormat "% h% l% u% t \"% r \ "%> s% b" общий
      LogFormat "% {Referer} i ->% U" referer
      LogFormat "% {User-agent} i" агент 

    Вот несколько примеров записей в «общем» журнале доступа:

     127.0.0.1 - - [18 октября 2009: 15: 41: 30 +0800] "GET / HTTP / 1.1" 200 44
    127.0.0.1 - - [18 октября 2009 г .: 18: 36: 20 +0800] «GET /t.html HTTP / 1.0» 404 204
    127.0.0.1 - - [18 октября 2009 г .: 18: 32: 05 +0800] "get /index.html HTTP / 1.0" 501215 
    Ответ об ошибке

    Основная роль Apache — доставка документов. Когда apache сталкивается с проблемами и не может удовлетворить запрос клиента, он генерирует код ошибки и возвращает сообщение об ошибке, чтобы объяснить ошибку. Apache предоставляет набор сообщений об ошибках по умолчанию.Тем не менее, вы можете настроить свой собственный ответ об ошибке с помощью директивы ErrorDocument следующим образом:

    • Создайте короткое сообщение, указав текстовую строку после («).
       ErrorDocument 404 "Не удается найти запрошенный документ. 
    • Перенаправить на локальную страницу с использованием относительного URL:
       ErrorDocument 404 /missing.html
      ErrorDocument 403 //cgi-bin/forbidden.pl 
    • Перенаправить на внешнюю страницу с использованием абсолютного URL.В этом случае apache отправит клиенту сообщение «перенаправить». Клиент должен отправить еще один запрос, чтобы получить перенаправленную страницу.
       ErrorDocument 404 http://www.green.com/missing.html 
    Индексирование каталогов и листинг

    Если клиент выдает URL-адрес для выбора каталога, Apache возвращает список этого каталога, если Options Indexes включен; в противном случае возвращается ошибка «403 запрещено». Однако, если в каталоге есть файл с именем « index.html «, Apache вместо этого возвращает» index.html «. Вы можете использовать директиву DirectoryIndex , чтобы указать имя файла индексации. Например,

    
        
        DirectoryIndex index.html myindex.html
     

    Вы можете контролировать внешний вид (например, причудливую индексацию) списка каталогов с помощью директивы IndexOptions (модуля mod_autoindex ). См. Документацию Apache для получения более подробной информации.

    Чтобы отключить автоматическое индексирование каталога, вы можете использовать директиву « Options -indexes ». Apache вернет ошибку «403 Forbidden», если будет сделан запрос каталога. Например:

     <путь к каталогу>
       Параметры -Индексы
     
    Включить на стороне сервера (SSI)

    [TODO]

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

    Наиболее важные шаги, которые необходимо предпринять для повышения безопасности сервера Apache — DreamHost Knowledge Base

    Обзор

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

    В этой статье предполагается, что вы установили и настроили Apache на экземпляре Debian или Ubuntu:

    Поддерживать обновление Apache

    Apache имеет хорошую репутацию в области безопасности, и ошибки безопасности редко обнаруживаются на самом веб-сервере. Тем не менее, важно постоянно обновлять Apache, чтобы использовать новейшие возможности безопасности, стабильности и доступные функции. Как правило, это просто вопрос обновления пакета Apache, предоставляемого ОС дистрибутива (например, через apt , yum и т. Д.). Также рекомендуется, чтобы операторы серверов Apache следили за списком рассылки объявлений Apache Server, чтобы быть в курсе последних новостей от команды разработчиков Apache. Вы можете подписаться на список здесь:

    Защита конфигураций

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

    Запуск от имени непривилегированного пользователя

    В сфере безопасности принцип наименьших привилегий гласит, что объекту не следует давать больше разрешений, чем необходимо для достижения его целей в данной системе. В контексте вашего веб-сервера это означает блокировку Apache для запуска только с разрешениями, необходимыми для запуска. Первым шагом в этом процессе является настройка Apache для работы от имени непривилегированного пользователя системы (например,г., а не корень). Это делается путем установки переменных APACHE_RUN_USER и APACHE_RUN_GROUP в файле / etc / apache2 / envvars:

    Отредактируйте файл и измените следующие строки:

     [пользователь @ экземпляр] $ sudo vim / etc / apache2 / envvars
    # Поскольку нет разумного способа получить проанализированную конфигурацию apache2 в скриптах, некоторые
    # настройки определяются через переменные среды и затем используются в apache2ctl,
    # /etc/init.d/apache2, /etc/logrotate.d/apache2 и т. д.
    экспорт APACHE_RUN_USER = apache
    экспорт APACHE_RUN_GROUP = apache
     
    Серверы

    Apache, распространяемые как общий пакет ОС, также могут использовать имя пользователя и группы, например www-data или никто. Независимо от выбора имени пользователя убедитесь, что выбранный пользователь / группа имеет как можно меньше прав, необходимых для правильной работы.

    Отключить серверные токены

    Спецификация HTTP рекомендует (но не требует), чтобы веб-серверы идентифицировали себя через заголовок Server. Исторически веб-серверы включали информацию о своей версии как часть этого заголовка. Раскрытие версии запущенного Apache может быть нежелательным, особенно в средах, чувствительных к раскрытию информации. Настройте Apache так, чтобы его версия не отображалась в заголовке сервера, отредактировав следующий файл:

     [пользователь @ экземпляр] $ sudo vim / etc / apache2 / conf-available / security.conf 

    В этом файле вы увидите несколько ServerTokens. Убедитесь, что все они закомментированы и отображается только ProductOnly.

     #ServerTokens
    #ServerTokens Minimal
    #ServerTokens OS
    #ServerTokens Full
    ServerTokens ProductOnly; 

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

     [пользователь @ экземпляр] $ sudo service apache2 reload 

    Отключить файлы .htaccess

    Файлы

    .htaccess — это мощная функция, которая позволяет Apache расширять свою конфигурацию за пределы основного файла конфигурации.Хотя это может быть удобно, но представляет угрозу безопасности, поскольку Apache будет читать любой файл .htaccess на своем пути — даже те, которые размещены злоумышленником, который может поставить под угрозу сервер. Может быть желательно заблокировать конфигурацию Apache, полностью отключив файлы .htaccess. Это можно сделать, отредактировав директиву AllowOverride в файле /etc/apache2/apache2.conf:

     [пользователь @ экземпляр] $ sudo vim /etc/apache2/apache2.conf
    AllowOverride Нет 

    Кроме того, детализированный контроль над тем, в каких директивах Apache можно использовать.Файлы .htaccess также можно контролировать с помощью AllowOverride:

     AllowOverride AuthConfig Индексы 

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

    Ограничить доступ по IP

    Чувствительные области веб-сайтов, такие как панели управления администратора, должны иметь строгий контроль доступа. Apache позволяет легко занести в белый список IP-доступ к определенным местоположениям вашего веб-сайта и запретить трафик для всех других IP-адресов.Вы можете добавить следующее в свой файл /etc/apache2/apache2.conf.

     <Каталог / ПУТЬ / К / WEBDIR / wp-admin>
        # разрешить доступ с одного IP и дополнительного диапазона IP,
        # и заблокировать все остальное
        Требуется ip 1.2.3.4
        Требуется ip 192.168.0.0/24
     

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

    Ограничить доступ по паролю

    Доступ к определенным местам также можно настроить с помощью учетных данных на основе пароля с помощью утилиты htpasswd.Для получения дополнительных сведений см. Следующую статью:

    Предотвращение DoS-атак

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

    Включить mod_reqtimeout

    mod_reqtimeout — это модуль Apache, предназначенный для отключения соединений от клиентов, которые слишком долго отправляют свой запрос, например, как это наблюдается в атаке Slowloris. Этот модуль предоставляет директиву, которая позволяет Apache закрыть соединение, если он обнаруживает, что клиент не отправляет данные достаточно быстро. Например, добавьте это в свой файл /etc/apache2/apache2.conf:

     Заголовок RequestReadTimeout = 10-20, MinRate = 500, тело = 20, MinRate = 500 

    В этом примере Apache закроет соединение, если клиенту требуется более 10 секунд для отправки своих заголовков HTTP или если клиенту требуется более 20 секунд для отправки заголовков со скоростью 500 байт в секунду.

    Apache также закроет соединение, если клиенту потребуется более 20 секунд для отправки тела запроса, но разрешит выполнение запроса до тех пор, пока клиент отправляет более 500 байт в секунду.

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

    Защита SSL / TLS

    Убедитесь, что на всех сайтах вашего сервера установлен сертификат SSL. Вы можете установить бесплатный сертификат Let’s Encrypt, выполнив следующие инструкции:

    Принудительно установить все соединения через TLS

    Если вы установили сертификат Let’s Encrypt, как показано выше, у вас уже была возможность принудительно использовать весь трафик через SSL. Если вы не используете сертификат Let’s Encrypt, вы также можете сделать это, добавив следующее в файл конфигурации вашего сайта, расположенный по адресу / etc / apache2 / sites-available / example.com.conf.

    Сначала убедитесь, что модуль заголовков активен.

     [пользователь @ экземпляр] $ sudo a2enmod заголовки
    [пользователь @ экземпляр] $ sudo service apache2 перезапуск 

    Затем вы можете добавить следующее в файл .conf вашего сайта.

     
    Заголовок всегда установлен Strict-Transport-Security «max-age = 15768000; includeSubDomains; preload»
     

    Для всех соединений с открытым текстом настройте Apache для отправки 301 редиректа для запросов к TLS-версии сайта:

     
        [...]
        ServerName example.com
        Перенаправление постоянное / https://example.com/
     

    Дополнительные меры безопасности

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

    Установите WAF

    WAF (брандмауэр веб-приложений) — это часть программного обеспечения, предназначенная для проверки трафика HTTP / HTTPS, отклонения злонамеренных запросов и, как правило, выступает в качестве дополнительного уровня безопасности в веб-стеке HTTP.Правильно настроенный WAF может защитить ваш сайт от атак SQLi, XSS, CSRF и DDoS, а также обеспечить смягчение атак методом грубой силы и исправление угроз нулевого дня. Самый популярный и стабильный WAF для Apache — ModSecurity. Посетите страницу проекта на GitHub для получения дополнительной информации об установке и настройке.

    Автоматический анализ журналов + мониторинг

    Такие программы, как Fail2Ban, можно использовать для мониторинга доступа Apache и журналов ошибок, поиска шаблонов атак и принятия мер против атакующего клиента (таких как удаление IP-адресов, сообщение о вредоносном поведении владельцу IP и т. Д.).Fail2Ban является расширяемым, что позволяет создавать уникальные шаблоны поиска и поведения ответа. Дополнительные сведения и подробности по установке и настройке см. На странице проекта на GitHub:

    .

    Ограничить входящий трафик через IPTables

    Помимо защиты самого Apache, важно защитить среду хоста, используемую для размещения веб-сервера. Блокирование доступа к таким вещам, как SSH, может значительно повысить безопасность хоста, предотвращая попытки вторжения. Распространенным подходом является занесение в белый список известных IP-адресов, которые будут получать доступ к хосту через SSH и запрещать весь другой трафик порта 22, или использовать поле перехода, которое строго фильтрует доступ к оболочке.Вы также можете сделать это, настроив настраиваемую группу безопасности для своего экземпляра. См. Дополнительную информацию в следующей статье:

    Разверните свои приложения на облачных серверах сегодня

    Как администрировать веб-сервер Apache с помощью инструмента «Apache GUI»

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

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

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

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

    1. Редактируйте файлы конфигурации веб-сервера прямо в браузере.
    2. Редактируйте свои веб-документы прямо из браузера.
    3. Скачивание, поиск и визуализация журналов Apache в режиме реального времени.
    4. Установите, отредактируйте или удалите модули Apache.
    5. Просмотр статистики выполнения или подробных графиков транзакций HTTP-сервера Apache.
    6. Управление глобальными настройками сервера.
    7. Управляйте всеми VirtualHosts и просматривайте их в виде дерева.
    Инструмент веб-администрирования Apache
    Требования

    Для целей этой статьи я установлю Apache GUI Web Tool на Linode CentOS 8 VPS с IP-адресом 192.168.0.100 и предоставлю вам короткий сценарий init для запуска или остановки процесса.

    Те же инструкции также работают для дистрибутивов RHEL / CentOS 6.x и Fedora .

    Шаг 1. Загрузите и установите Apache GUI

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

    Используйте следующие команды, чтобы найти версию пакета Java-openjdk и установить ее на RHEL / CentOS 7/8 .

     # yum search openjdk
    # yum install java-1.8.0
    ИЛИ ЖЕ
    # yum install java-11
     
    Установите пакет Java JDK

    2. Предполагая, что вы вошли в систему как root и ваш текущий рабочий каталог — / root , используйте следующую ссылку, чтобы загрузить последнюю версию исходного пакета Apache GUI (т.е. ApacheGUI-1.12 .0.tar.gz ) установочные файлы с Sourceforge.net.

    1. http://sourceforge.net/projects/apachegui/files/

    В качестве альтернативы, вы также можете получить исходные файлы tar-архива Linux-Solaris-Mac -> ApacheGUI tar, используя следующую команду wget, как показано ниже.

     # wget https://sourceforge.net/projects/apachegui/files/1.12-Linux-Solaris-Mac/ApacheGUI-1.12.0.tar.gz/download
     
    Загрузите ApacheGUI

    3. После загрузки архива распакуйте его и переместите весь полученный каталог в системный путь / opt , который будет местом установки вашего Apache GUI Server .

     # tar xfz ApacheGUI-1.9.3.tar.gz
    # mv ApacheGUI / opt
    # cd / opt
     
    Распакуйте архив ApacheGUI

    4.Теперь пора запустить и проверить функциональность Apache GUI Web Tool. Измените свой каталог на путь ApacheGUI / bin / и используйте сценарий run.sh для запуска инструмента и сценарий stop.sh для остановки сервера.

     # cd ApacheGUI / bin /
    # ./run.sh
     
    Запустите ApacheGUI Tool

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

     http: // локальный: 9999 / ApacheGUI /
     

    Чтобы получить удаленный контроль над Apache GUI Web Tool из браузера, вам нужно добавить правило в брандмауэр вашей системы, которое открывает порт 9999 / TCP , который является портом по умолчанию, который прослушивает Apache GUI Tools.Используйте следующие команды, чтобы открыть порт 9999 в RHEL / CentOS 7 с помощью утилиты Firewalld.

     # firewall-cmd --add-port = 9999 / tcp ## Правило на лету
    # firewall-cmd --add-port = 9999 / tcp --permanent ## Постоянное правило - вам необходимо перезагрузить брандмауэр, чтобы применить его
    # firewall-cmd --reload
     
    Откройте порт в брандмауэре

    6. Если порт 9999 , используемый графическим интерфейсом Apache, перекрывается с другим приложением в вашей системе, вы можете изменить его, отредактировав файл конфигурации ApacheGUI server.xml , найдите Connector port = «9999» protocol = » HTTP / 1.1 ” и замените оператор порта на свой любимый номер порта (не забудьте одновременно применить правило брандмауэра портов).

     # nano /opt/ApacheGUI/tomcat/conf/server.xml
     
    Изменение порта ApacheGUI

    Шаг 2. Настройте графический интерфейс Apache

    7. Пришло время настроить Apache GUI Web Tool для удаленного администрирования веб-сервера Apache. Предполагая, что вы настроили систему Firewall и разрешили внешние подключения, откройте удаленный браузер и введите использование внешнего IP-адреса вашего сервера
    для доступа к графическому интерфейсу Apache

    .
     http: // 192.168.1.80: 9999 / ApacheGUI /
     

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

     Имя пользователя: admin
    Пароль: admin
     
    Доступ к веб-панели ApacheGUI

    8. Затем инструмент предложит вам ввести Как был установлен веб-сервер Apache? Выберите вариант Пакет , если вы установили Apache на RHEL / CentOS с помощью инструмента управления пакетами yum, и нажмите OK , чтобы двигаться дальше.

    Выберите тип установки ApacheGUI

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

     Корень сервера: / etc / httpd
    Основной файл конфигурации: /etc/httpd/conf/httpd.conf
    Каталог конфигурации: / etc / httpd
    Каталог журналов: / var / log / httpd
    Каталог модулей: / etc / httpd / modules
    Двоичный файл: / usr / sbin / apachectl
    Имя пользователя: выберите имя пользователя
    Пароль: выберите надежный пароль
    Пароль: повторите указанный выше пароль
     
    Конфигурация графического интерфейса Apache

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

    Настройки ApacheGUI Информация о сервере ApacheApacheGUI VirtualHosts

    Шаг 3: Создайте сценарий инициализации systemv

    11. Если вам нужен метод управления Apache GUI Tool без постоянного изменения каталога на [APACHEGUI_HOME] , который для этой установки / opt / ApacheGUI / , и выполните run.sh и остановите.sh создайте файл конфигурации init /etc/init.d/apache-gui , как показано в следующем отрывке.

     # нано /etc/init.d/apache-gui
     

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

     #! / Bin / sh
    #
    #
    # Скрипт запуска системы для apache-gui
    #
    ### НАЧАТЬ НАЧАЛЬНУЮ ИНФОРМАЦИЮ
    # Предоставляет: apache-gui
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Краткое описание: запустите apache-gui
    # Описание: Запустить apache-gui
    ### КОНЕЦ НАЧАЛЬНОЙ ИНФОРМАЦИИ
    #
    # chkconfig: 2345 20 80
    # description: Запускает apache-gui
    # имя процесса: apache-gui
    #
    # Библиотека исходных функций
    ./etc/init.d/functions
    
    case "$ 1" в
        Начало)
        cd / opt / ApacheGUI / bin /
    ./run.sh
           ;;
        останавливаться)
       cd / opt / ApacheGUI / bin /
    ./stop.sh
            ;;
        *)
            echo $ "Использование: $ 0 {start | stop}"
            выход 2
    esac
    выход $?
     
    Сценарий инициализации ApacheGUI

    12. Используйте следующие команды для управления процессом графического интерфейса Apache в RHEL / CentOS 7.

     # запуск службы apache-gui
    # сервис apache-gui stop
    
    ИЛИ ЖЕ
    
    # systemctl start apache-gui
    # systemctl stop apache-gui
    # systemctl status apache-gui
     
    Запустите службу ApacheGUI

    13.Если вам нужно, чтобы веб-инструмент Apache GUI Web Tool автоматически запускался после перезагрузки системы, используйте следующую команду, чтобы включить его для всей системы.

     # chkconfig apache-gui на
     

    Чтобы отключить его в масштабе всей системы.

     # chkconfig apache-gui выкл.
     
    Запустите ApacheGUI в масштабе всей системы

    Несмотря на то, что Apache GUI Web Tool имеет некоторые ограничения и не обеспечивает такой же степени гибкости для веб-сервера Apache, какой вы можете достичь из командной строки, он может предоставить современный бесплатный веб-интерфейс Java для администрирования. ваш веб-сервер и имеет полный встроенный редактор для веб-документов, таких как HTML, CSS, JavaScript, XML, Json, PHP, Perl, Shell, Python, и может создавать некоторые подробные графики транзакций Apache.

    Ссылки

    Домашняя страница графического интерфейса Apache

    Если вы цените то, что мы делаем здесь, на TecMint, вам следует принять во внимание:

    TecMint — это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей доступны БЕСПЛАТНО для всех.

    Если вам нравится то, что вы читаете, пожалуйста, купите нам кофе (или 2) в знак признательности.

    Мы благодарны вам за бесконечную поддержку.

    Установка PHP на Apache 2

    На этой странице описывается, как установить php на Apache2. PHP 4.3.0 с Apache 2.0.46 использовался на Redhat 8.

    Установите Apache

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

    Загрузите последние исходные коды PHP

    Загрузите PHP tar.gz с php.net

    Извлеките исходный код

    Извлеките исходный код в каталог под / usr / local / src

    cp php-4.3.0.tar.gz / usr / local / src
    cd / usr / local / src
    gunzip php-4.3.0.tar.gz
    tar -xvf php-4.3.0.tar
    rm -f php-4.3.0.tar
    компакт-диск php-4.3.0
     

    Установить параметры компилятора (необязательно)

    Если вы хотите, вы можете установить некоторые параметры компилятора, обычно это делается для создания оптимизированного кода. Одна из очень распространенных вещей — установить CFLAGS = -O2 или CFLAGS = -O3 (это О, не ноль), который сообщает компилятору, сколько оптимизации кода нужно сделать, установка более высокого значения дает больше оптимизация, но также требует больше времени для компиляции и потенциально может вызвать неожиданные вещи (не часто).O2 — довольно безопасный уровень для использования. Для этого введите следующее:

    экспорт CFLAGS = -O2
     
    Вы также можете указать компилятору, какой процессор вам нужен для выполнения дополнительных оптимизаций, я не буду здесь вдаваться в подробности, но если вам интересно, ознакомьтесь с руководством GCC.

    Настройте php с помощью autoconf

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

    ./ настроить --help
     
    Вы увидите, что существует довольно много вариантов конфигурации, посмотрите в документации страницу, посвященную параметрам настройки. Мы скажем configure включить mysql, а также расскажем, где найти инструмент apxs Apache для создания модулей.
    настроить --with-mysql --with-apxs2 = / usr / local / apache2 / bin / apxs
     

    Компиляция PHP

    делать
     

    Установить PHP

    сделать установку
     

    Скажите apache загрузить модуль Отредактируйте httpd.conf /usr/local/apache2/conf/httpd.conf в текстовом редакторе. Добавьте следующее в httpd.conf

    Включите conf.d / *. Conf
     
    Это позволяет вам создать определенный файл конфигурации для каждого устанавливаемого модуля, например php.conf. Теперь создайте каталог в своем каталоге apache, если его там нет, с именем conf.d
    mkdir /usr/local/apache2/conf.d
    cd /usr/local/apache2/conf.d
     
    Создайте файл с именем php.conf, расположенный по адресу / usr / local / apache2 / conf.d / php.conf с содержимым:
    # Конфигурация PHP для Apache
    #
    # Загрузить модуль apache
    #
    LoadModule модули php4_module / libphp4.so
    #
    # Заставить интерпретатор PHP обрабатывать файлы с расширением .php.
    #
    <Файлы * .php>
    SetOutputFilter PHP
    SetInputFilter PHP
    LimitRequestBody 9524288
    
    Приложение AddType / x-httpd-php .php
    Приложение AddType / x-httpd-php-source .phps
    #
    # Добавить index.php в список файлов, которые будут использоваться как каталог
    # индексы.#
    DirectoryIndex index.php
     
    Обратите внимание, что вы могли просто вставить указанное выше в файл httpd.conf и при желании опустить шаг conf.d. Я считаю, что подход conf.d — более чистый способ сделать это.

    Вот и все, перезапустите apache, и PHP должен заработать.

    Примечание. Чтобы установить поддержку PostgreSQL на redhat 9 с помощью php / apache2, вам необходимо установить библиотеки postgresql, разработать rpms и добавить —with-pgsql в строку конфигурации

    .

    Спасибо, Джонатан Кроу за предложение директивы AddType.

    Установка PHP на Apache 2 впервые было опубликовано 1 декабря 2002 года.

    HowTo: Установить и запустить службу Apache или Httpd под Linux

    Как установить и запустить веб-сервер Apache или httpd в Fedora, RHEL или Red Hat / CentOS Linux?

    HTTP-сервер Apache — это бесплатное программное обеспечение / веб-сервер с открытым исходным кодом для Unix-подобных систем и других операционных систем.
    Подробности руководства
    Уровень сложности Easy
    Права root Да
    Требования Apache
    Приблиз.время чтения НЕТ
    Apache предлагает настраиваемые сообщения об ошибках, базы данных аутентификации на основе СУБД и согласование содержимого. Он также поддерживается несколькими графическими пользовательскими интерфейсами (GUI), которые позволяют более простую и интуитивно понятную настройку сервера.

    Используйте команду rpm для установки сервера Apache под Linux. Вы также можете использовать команду up2date или yum, чтобы установить то же самое.

    Задача: установить Apache / httpd в Fedroa Core / Cent OS Linux

    Введите следующую команду, если вы используете Fedora / RHEL / Cent OS Linux, выполните:
    # yum install httpd
    Чтобы запустить Apache / httpd, выполните:
    # chkconfig httpd on
    # / etc / init.d / httpd start

    Задача: установить Apache / httpd в Red Hat Enterprise Linux

    Введите следующую команду:
    # up2date httpd
    OR
    # yum install httpd
    Чтобы запустить Apache / httpd, выполните:
    # chkconfig httpd на
    # /etc/init.d/httpd start

    Задача: установка Debian Linux httpd / Apache

    Используйте команду apt-get:
    # apt-get install apache2
    # /etc/init.d/apache2 start

    Задача: Убедитесь, что порт 80 открыт

    # netstat -tulpn | grep: 80

    Вы также можете установить httpd с CDROM с помощью команды rpm:
    # rpm -ivh httpd *

    Задача: Хранить файлы / загружать файлы для вашего веб-сайта

    1. Вам необходимо загрузить файлы по адресу / var / www / html в операционной системе RHEL / CentOS / Fedora Linux.
    2. Вам необходимо загрузить файлы по адресу / var / www / в операционной системе Debian или Ubuntu Linux.

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

    Ваш сервер запущен, но вам необходимо настроить и использовать Apache в соответствии с вашими требованиями. Файл конфигурации /etc/httpd/conf/httpd.conf (RHEL / Cent OS / Fedora Core Linux) или /etc/apache2/httpd.conf (Debian / Ubuntu Linux). Используйте текстовый редактор, например vi, для редактирования файла. Этот файл очень хорошо документирован, или прочтите официальную документацию по конфигурации Apache для получения дополнительной информации.



    Пошаговое руководство по настройке сервера APACHE

    Это самый широко используемый веб-сервер в мире. Почти 65% -70% мировых веб-серверов используют сервер Apache. Причина, по которой он известен, заключается в том, что его открытый исходный код (что позволяет сэкономить деньги), очень безопасный, очень быстрый и очень надежный. Его можно настроить в соответствии с нашими потребностями с помощью различных модулей и расширений.
    В более технических терминах это модульный веб-сервер, основанный на процессах, который создает новый поток каждый раз, когда устанавливается новое соединение.
    Apache также имеет большое преимущество, так как он может поддерживать хостинг нескольких веб-сайтов на одном сервере. На самом деле существует два типа хостинга: —

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

    2- Виртуальный хостинг на основе имени — Хостинг на основе имени используется для размещения нескольких виртуальных веб-сайтов с использованием одного IP-адреса.

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

    (Рекомендуемое чтение: перенаправление http на https: сервер Apache)

    Также читайте: Localhost 127.0.0.1 — Настройка собственного веб-сервера

    Установка APACHE

    Существует три различных способа установки apache на наши машины RHEL / CentOS.
    1- Использование RPM — Для этого нам нужен пакет rpm.Как только вы получите пакет rpm для apache, мы сможем установить его с помощью следующей команды (Подробнее о RPM ЗДЕСЬ )

    $ об / мин –ivh httpd-2.4.x-1.i686.rpm

    2- Использование YUM — Yum — это самый простой способ установить apache в вашей системе. При использовании yum нам не нужно загружать какой-либо пакет, просто используйте следующий (Подробнее о YUM ЗДЕСЬ)

    3- Использование пакета исходного кода — этот процесс немного сложен, но предоставляет нам различные варианты для изменения нашей установки apache, поскольку мы используем пакеты исходного кода для компиляции и установки пакета apache.Сначала нам нужно загрузить исходный код (Загрузить отсюда), затем мы извлечем его, скомпилируем и затем установим,

    $ tar – xvf httpd-2.4.6.tar.gz
    $ cd httpd-2.2.26
    $. / Configure —prefix = PREFIX (здесь вы измените установку apache)
    $ make
    $ make install

    Таким образом мы установим apache из исходного кода, в качестве альтернативы вы также можете собрать пакет rpm из исходного пакета

    $ rpmbuild -tb httpd-2.4.6.tar.bz

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

    Настроить сервер Apache

    Хостинг на основе имен

    Сначала мы настроим 2 веб-сайта (test1.com и test2.com), используя хостинг на основе имени. Сначала откройте файл конфигурации apache /etc/httpd/conf/httpd.conf и добавьте следующие строки в конец файла,

    $ vi / и т.д. / httpd / conf / httpd.конф


    ServerAdmin [электронная почта защищена]
    DocumentRoot /var/www/html/test1.com
    ServerName www.test1.com
    Журналы ErrorLog / www.test1 .com-error_log
    Журналы CustomLog / www.test1.com-access_log common


    ServerAdmin [защита электронной почты]
    DocumentRoot / var / www / html / test2.com
    ServerName www.test2.com
    ErrorLog logs / www.test2.com-error_log
    CustomLog logs / www.test2.com-access_log common

    Затем выполните поиск « NameVirtualHost » в том же файле и раскомментируйте его, удалив « в начале строки и добавив IP-адрес сервера, чтобы он выглядел как

    ИмяVirtualHost 192.168.0.120:80

    Теперь сохраните файл и выйдите.

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

    $ mkdir /var/www/html/test1.com
    $ mkdir /var/www/html/test2.com

    Теперь добавьте контент в index.html, чтобы идентифицировать оба сайта,

    $ vi /var/www/html/test1.com/index.html



    Это test1.com

    и сделайте то же самое для test2.com

    $ vi /var/www/html/test2.com/index.html



    Это test2.com

    Вы также можете ввести «this is test1.com или test2.com» без использования тегов html. Теперь у нас есть готовый сервер apache с хостингом на основе имени. Теперь мы перезапустим наш сервер, чтобы внести изменения, а затем проверим наши сайты

    $ systemctl перезапустить httpd.service или
    $ service httpd restart

    Теперь откройте браузер и введите URL-адрес веб-сайта

    .

    www.test1.com
    www.test2.com

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

    Хостинг на базе IP

    Нам нужно 2 разных IP-адреса, назначенных нашему одному сетевому адаптеру, или 2 разных сетевых адаптера с разными IP-адресами для обеспечения хостинга на основе IP. Мы собираемся использовать одну сетевую карту с присвоенными ей разными IP-адресами.Если вы не знаете, как это сделать, прочтите наше руководство здесь .
    После того, как мы настроили наши IP-адреса ( 192.168.0.120, 192.168.0.125 ), мы начнем нашу настройку с редактирования ‘ /etc/httpd/conf/httpd.conf’

    $ vi /etc/httpd/conf/httpd.conf

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

    .

    и добавьте следующие конфигурации сервера в конец того же файла i.е. httpd.conf

    VirtualHost 192.

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

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