Настройка web сервера apache в CentOS 8

Давайте представим мир, где хостинг веб-сайта сам по себе так же прост и надежен, как и просмотр веб-страниц. Вы можете разместить сайт своей компании, свой личный портфель, свой почтовый сервер и даже приложения для обмена сообщениями, одновременно просматривая ленту новостей Amazon или читая последние новости Hacker News, и все это, не выходя из своего кресла. Сеть, безусловно, будет более демократичной с точки зрения как предоставления информации, так и просмотра информации.

Веб-сервер для дома: «Apache + PHP + MySQL + phpMyAdmin + XDebug в одном пакете» [Денвер]

Многим кажется, что развертка веб-сервера это что-то из области фантастики и под это нужна определенная конфигурация компьютера, операционная система и всё такое прочее. Плюс всё это занимает много времени сил и всего такого прочего.

На деле это не совсем так, ибо таковой сервер (как и FTP-сервер про который мы рассказывали) представляет из себя набор определенного и корректно установленного ПО, а уж на каком железе он развернут и в какой именно операционной системе, в данном случае, вторично.

Так вот, уже очень давно существует пакет, который называется «Денвер» и содержит в себе все необходимое для быстрой развертки веб-сервера под Windows. Сие чудо программисткой мысли полностью бесплатно, поддерживает русский язык, имеет достаточно мануалов и очень просто в установке и управлении (справиться, буквально, даже школьник).

Скачать пакет можно по этой ссылке или с сайта разработчика.

  • Инсталлятор (поддерживается также инсталляция на flash-накопитель);
  • Apache, SSL, SSI, mod_rewrite, mod_php;
  • PHP5 с поддержкой GD, MySQL, sqLite;
  • MySQL5 с поддержкой транзакций;
  • Система управления виртуальными хостами, основанная на шаблонах. Чтобы создать новый хост, вам нужно лишь добавить директорию в каталог /home, править конфигурационные файлы не требуется. По умолчанию уже поддерживаются схемы именования директорий многих популярных хостеров; новые можно без труда добавить;
  • Система управления запуском и завершением всех компонентов Денвера;
  • phpMyAdmin — система управления MySQL через Web-интерфейс;
  • Эмулятор sendmail и SMTP-сервера (отладочная «заглушка» на localhost:25, складывающая приходящие письма в /tmp в формате .eml); поддерживается работа совместно с PHP, Perl, Parser и тд.

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

Собственно, после этого ждем окончания процесса установки, в нужный момент закрыв браузер, а так же нажав клавишу Enter (если у Вас не стоит IE, то просто нажав ОК, когда появиться соответствующая ошибка):

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

Попробуйте отключить фаерволл и антивирус, а так же проделать ping вручную (Пуск — Выполнить — cmd — ОК — ping 127.0.0.1).

Если пинги проходят, то можете продолжать дальше. Если нет, то.. Можете тоже попробовать продолжить, хотя на определенном этапе могут быть проблемы (но не обязательно).

Далее будет предложена папка, куда, собственно, Вы планируете всё это дело установить. Я бы рекомендовал указать путь к диску на котором у Вас больше всего места (в моём случае я указал D, что видно на скриншоте выше).

На последнем этапе будет создан виртуальный диск и Вам остаётся, после нажатия Enter, выбрать для него свободную букву (или оставить по умолчанию Z). Как и написано — он нужен для работы всех компонентов, а так же, собственно, для Вашего удобства, хотя, фактически виртуальный диск является этапким ярлыком для папки, которую Вы указали Выше и взаимодействовать можно непосредственно с ней.

Далее надо будет выбрать способ загрузки. Смотрите сами какой Вам удобней, но я, в данном случае, выбрал рекомендованный вариант (т.е жамкаем в 1 и кнопочку Enter). Ну и последним шагом будет создание ярлыков. Делается это вводом буквы «y«, если, конечно, они Вам нужны.

На сим установка закончена. Просто, не так ли? 😉

Что до использования, то всё просто: кликаем в соответствующую иконку (Start Denwer) и ждем окончания процесса запуска.

После сего у Вас появиться виртуальный диск ( выше) со всей структурой веб-сервера и сопутствующими элементами. Тоже самое Вы можете увидеть в папке установки.

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

Если всё работает нормально, то увидите строку: «Это файл /home/» (как и на скриншоте выше).

Можете радоваться, — у Вас теперь есть веб-сервер 😉

Windows: Как разместить сайт, используя ваш компьютер в качестве сервера WAMP

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

Шаг 1: Установите программное обеспечение WAMP

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

Пакет WampServer поставляется с последними выпусками Apache, MySQL и PHP.

WampServer screenshotWampServer — одна из нескольких сред, доступных для создания приложений Apache, MySQL и PHP в Windows.

Сначала загрузите 32-битный или 64-битный WAMP-бинарный код здесь и начните установку. Просто следуйте инструкциям на экране, и когда это будет сделано, запустите WampServer.

Примечание. Может быть конфликт порта 80 с вашим программным обеспечением Skype, но есть решение для этого.

Шаг 2: Использование WampServer

После установки каталог www будет создан автоматически. Скорее всего, вы найдете его здесь: c: \ wamp \ www

Читайте также:  552 message size exceeds maximum permitted перевод

Из этого каталога вы можете создавать подкаталоги (называемые «проектами» в WampServer) и помещать любые файлы HTML или PHP в эти подкаталоги.

Главный экран WampServer Главный экран вашего локального хоста в WampServer должен выглядеть примерно так. Если вы нажмете на ссылку localhost в меню WampSever или откроете свой интернет-браузер с URL-адресом http: // localhost, вам должен отобразиться главный экран WampServer.

Шаг 3: Создание HTML-страницы

Чтобы протестировать наш WampServer, мы можем поместить файл примера с именем «» в наш www-каталог.

Перейдите непосредственно в этот каталог, нажав «www каталог» в меню WampServer.

Оттуда создайте новый файл с содержимым ниже и сохраните его.

<title>PHP Test</title>

Теперь вы можете перейти по адресу http: //localhost/, чтобы увидеть детали вашей установки PHP. Вы можете создать любую структуру файлов HTML и PHP в соответствии с вашими потребностями.

Шаг 4: Настройте MySQL

Если вы нажмете на пункт меню phpMyAdmin, вы можете начать настройку баз данных MySQL (которые могут понадобиться для CMS, такой как WordPress).

Экран входа в систему phpMyAdmin откроется в новом окне браузера. По умолчанию имя пользователя admin будет root, и вы можете оставить поле пароля пустым.

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

Шаг 5: Сделайте сайт общедоступным

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

Чтобы сделать ваш сайт общедоступным, вам нужно изменить файл конфигурации Apache (). Вы можете найти и отредактировать этот файл, перейдя в меню WampServer, нажав «Apache» и выбрав «».

Order Deny,Allow Deny from all

Замените две строки выше на следующие:

Order Allow,Deny Allow from all

Перезапустите все сервисы WampServer, нажав «Перезапустить все сервисы» в меню.

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

Шаг 6: Использование доменного имени

Чтобы использовать доменное имя, например , с вашей установкой WAMP, нам нужно сначала настроить некоторые файлы. Предположим, что у нашего домена есть запись A в вашем DNS с IP-адресом

Сначала нам нужно добавить следующую строку в файл C: \ Windows \ system32 \ drivers \ etc \ hosts:

Теперь нам нужно снова отредактировать (доступный через меню WampServer), чтобы добавить виртуальный хост. После открытия этого файла найдите «Виртуальные хосты» и раскомментируйте строку после него, например:

# Virtual hosts Include conf/extra/

Теперь нам нужно добавить файл вручную в «C: \ wamp \ bin \ apache \ Apache-VERSION \ conf \ extra \» (VERSION — это ваша версия Apache).

Затем создайте файл в блокноте со следующим содержимым и сохраните его в этом каталоге Apache.

ServerAdmin [email protected] DocumentRoot «c:\wamp\www» ServerName ErrorLog «logs/» CustomLog «logs/» common

Нажмите «Перезапустить все сервисы» в меню WampServer, чтобы активировать эти изменения.

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

Кстати, есть еще вариант арендовать хостинг или VPS сервер. К примеру, VPS Гонконг можно заказать за довольно отличными тарифами.

Сервер работоспособен!!!

Набирайте http://localhost в Вашем браузере, должен будет загрузиться файл :

Тоже самое повторите для сервера :

Можете поэкспериментировать с расширениями файла index- .htm, .php. Мы это настраивали.

3.2. Тест SSI (Server Side Includes)

Для того чтобы включить поддержку SSI (Server Side Includes – сборка на стороне сервера) в Apache необходимо в файл добавить следующие строки:

AddType text/html .shtml

AddHandler server-parsed .shtml

Это наиболее стандартный ход. Впрочем, вместо расширения .shtml можно написать .html или .phtml. Главное, чтобы выбранное расширение было идентично расширению, которое использует для обозначения SSI файлов провайдер.

И, естественно, нужно включить сам «механизм» вложения, а для этого добавить к команде Options слово Includes. Тогда строка с командой Options может принять вид: Options Indexes FollowSymLinks Includes.

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

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

Тест сервера

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

На сайте нет версии Apache 2.4 для Windows. Поэтому дистрибутив возьмем на В момент написания статьи последний релиз – Apache

В разделе Additional + VC9 можно выбрать два варианта дистрибутива – с поддержкой и без поддержки ssl. Мы останавливаемся на втором варианте и скачиваем архив .

В дистрибутиве Apache нет файла инсталляции. Поэтому установка будет выполняться вручную.

Создаем папку и распаковываем архив .

В файле конфигурации httpd.conf по умолчанию установлены маршруты C:\Apache24. Поэтому, правок в файле конфигурации будет гораздо меньше, если распаковать архив в эту папку.

Мы распакуем дистрибутив в папку C:\TestServer .

Вносим правки в файл конфигурации C:\TestServer \Apache24\conf\httpd.conf. При написании путей вместо символа «\» (обратная косая черта) следует использовать символ «/» (прямая косая черта). Так прописываются пути в операционных системах Linux и Unix. А ведь первоначально Apache разрабатывался именно для этих операционных систем.

Выполняем групповую замену текста C:/Apache24 на C:/TestServer /Apache24.

Устанавливаем значение параметра ServerNameServerName localhost:80

Устанавливаем значение параметра ServerAdmin (e-mail администратора). ServerAdmin [email protected]

Устанавливаем значение параметра DocumentRoot (расположение документов сайта). DocumentRoot C:/TestServer /Apache24/htdocs

Возможно, вы захотите хранить документы сайта отдельно от сервера. Например, в папке C:\MySites. Тогда этот параметр можно изменить. DocumentRoot C:/MySites

Исполняемые файлы Apache находятся в папке C:\TestServer \Apache24\bin. Добавляем это значение в переменную среды PATH Windows. PATH = C:\TestServer \Apache24\bin;

Устанавливаем Apache как службу. -k install

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

Читайте также:  (Решено) Не удается подключиться к удаленному компьютеру по RDP

Запускаем сервер Apache. -k start

Проверяем работоспособность сервера. В командной строке браузера набираем адрес: http://localhost. Если установка Apache прошла успешно – на экране отобразится текст It works!. В противном случае мы увидим пустой экран.

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

Делается это с помощью команды netstat –anb

Чаще всего этот порт используют Skype или Firefox. В этом случае следует либо освободить порт, либо перевести Apache на порт 8080.

Для этого в файле httpd.conf изменяем значений параметров ServerName и Listen. ServerName localhost:8080 Listen 8080

После этого перезапускаем службу командой -k restart

и опять пытаемся зайти по адресу http://localhost

Для удобства работы с сервером Apache можно установить в меню автозагрузки Windows ярлык, указывающий на C:\TestServer \Apache24\bin\

Web сервер на CentOS 8

Итак, наш веб сервер centos будет состоять из трех основных компонентов — http сервера apache, интерпретатора языка программирования php и сервера баз данных mysql. Познакомимся немного с каждым из них:

  1. Apache — http сервер или просто веб сервер апач. Является кросплатформенным ПО, поддерживающим практически все популярные операционные системы, в том числе и Windows. Ценится прежде всего за свою надежность и гибкость конфигурации, которую можно существенно расширить благодаря подключаемым модулям, которых существует великое множество. Из недостатков отмечают большую требовательность к ресурсам, по сравнению с другими серверами. Держать такую же нагрузку, как, к примеру, nginx, apache не сможет при схожих параметрах железа.
  2. PHP — язык программирования общего назначения, который чаще всего применяется в веб разработке. На сегодняшний день это самый популярный язык в этой области применения. Поддерживается практически всеми хостинг-провайдерами.
  3. Mysql — система управления базами данных. Завоевала свою популярность в среде малых и средних приложений, которых очень много в вебе. Так что, как и php, на сегодняшний день является самой популярной бд, использующейся на веб сайтах. Поддерживается большинством хостингов. В CentOS вместо mysql устанавливается mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Я встречал информацию, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. На практике мне не довелось это наблюдать, так как никогда не работал с нагруженными базами данных. А в обычных условиях разница не заметна.

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

Процессор 2 ядра
Память 3 Gb
Диск 30 Gb SSD

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

Установка виртуальных хостов на Apache

Виртуальный хост – базовый блок, описывающий один сайт или домен. Виртуальные хосты позволяют держать на одном сервере несколько доменов или интерфейсов. Это важно, когда на одном сервере нужно создать несколько сайтов. Каждый настроенный домен будет направлять посетителя в конкретную директорию, содержащую информацию нужного сайта, даже не показывая, что на том же сервере есть другие сайты. Эту схему можно масштабировать без каких-либо программных ограничений, если ваш сервер справится с трафиком всех сайтов. Мы разберем установку и настройку на примере одного виртуального хоста. Первое, что нужно сделать для установки– создать структуру директорий. Наш корень документов будет находиться в отдельной директории внутри /var/www. Мы создадим в ней директории для каждого из виртуальных хостов, а в каждой из них, в свою очередь, создадим поддиректорию public_html, в которой будут находиться наши файлы. Это предоставит нашему хостингу некоторую гибкость. Воспользуемся командой mkdir с флагом –p, который позволяет сразу создать директорию с поддиректорией в ней:

mkdir -p /var/www/_html

– имя домена, который мы хотим отображать на нашем VPS.

Структура директорий создана, но ее владелец – пользователь root. Чтобы наш обычный пользователь мог изменять файлы в этих директориях, нужно сменить владельца командой chown:

chown -R $USER:$USER /var/www/_html

Где переменная $USER – текущий пользователь системы. Теперь он является владельцем поддиректории public_html, где мы будем хранить контент.

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

chmod -R 755 /var/www

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

vi /var/www/_html/

В этом файле создадим простой HTML-документ с данными о сайте, которому принадлежит эта страница:

<html> <head> <title>Welcome to Еxample!</title> </head> <body> <h1>Success! The еxample virtual host is working!</h1> </body> </html>

Сохраните и закройте файл. Теперь у вас есть все необходимые страницы для проверки конфигурации виртуального хоста. Создадим  файл, в котором определяется его конфигурация и задается, как веб-сервер Apache будет отвечать на запросы различных доменов. Для начала создадим директорию, в которой будут храниться файлы наших виртуальных хостов (sites-available), а также директорию, которая сообщает Apache, что виртуальный хост готов для отображения посетителям (sites-enabled, будет содержать символические ссылки на виртуальные хосты, готовые к публикации).

Читайте также:  Как исправить ошибку 0x80070091 при восстановлении системы?

mkdir /etc/httpd/sites-available

mkdir /etc/httpd/sites-enabled

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

vi /etc/httpd/conf/

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

IncludeOptional sites-enabled/*.conf

Должно получится примерно следующее

Теперь можно создать файл для первого виртуального хоста. Откроем его в редакторе с root-правами:

sudo nano /etc/httpd/sites-available/

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

Сначала нужно создать пару тегов, определяющих содержимое как виртуальный хост, прослушивающий порт 80 (порт HTTP по умолчанию):

<VirtualHost *:80> </VirtualHost>

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

<VirtualHost *:80> ServerName ServerAlias </VirtualHost>

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

<VirtualHost *:80>     ServerName     ServerAlias     DocumentRoot /var/www/_html    ErrorLog /var/www/    CustomLog /var/www/ combined </VirtualHost>

В итоге минимальная конфигурация выглядит так

Теперь активируем файл виртуального хоста, чтобы Apache представлял его посетителям. Создадим символическую ссылку для виртуального хоста в директории sites-enabled:

ln -s /etc/httpd/sites-available/ /etc/httpd/sites-enabled/

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

systemctl restart

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

Естественно у вас должны быть корректно настроены DNS сервера, или для тестов просто пропишите имя хоста и ip адрес сервера  в вашем файле hosts.

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

Аналогичным образом можно создать и настроить виртуальные хосты для других доменов.

Дальнейшие шаги

Теперь у нас есть готовая инфраструктура, состоящая как минимум из четырех виртуальных серверов: MySQL с адресом , memcached — , Apache — , nginx — Чтобы проверить, что все виртуальные машины корректно функционируют, воспользуемся virsh:

$ sudo virsh list

Или с удаленной машины:

$ sudo virsh —connect qemu+ssh://[email protected] list

Повторюсь, что это лишь базовая конфигурация, которая на данном этапе обеспечивает только работоспособность связки nginx + Apache. Далее следует корректным образом отконфигурировать Apache и PHP и поднять сайт, указав в его настройках адреса и порты серверов MySQL и memcached (если он будет использован). После проверки работоспособности всей связки следует настроить маскарадинг пакетов, пришедших на порт 80 внешнего шлюза, так, чтобы они перенаправлялись на адрес , то есть на адрес nginx. Он и будет точкой входа на сайт.

Дальнейшие шаги

Кроме того, рекомендую подправить настройки iptables всех серверов так, чтобы каждый из них мог общаться только с тем, с которым действительно необходимо. Например, nginx должен принимать пакеты только с адреса внешнего шлюза, а отдавать только на адрес сервера Apache, порт 80. Таким образом ты полностью изолируешь серверы друг от друга и в случае, если будет взломан, например, тот же nginx, его взломщик, не получив права root, вообще не сможет выбраться из песочницы. Дополнительным уровнем защиты станет настройка правил брандмауэра на стороне самого сервера, тогда взломщику не помогут даже права root, он окажется замкнут внутри виртуального сервера.

INFO

Живая миграция с помощью libvirt выполняется в одну команду: sudo virsh migrate —live имя_вм qemu+ssh://

Для libvirt есть прекрасный графический инструмент управления под названием virt-manager. Он позволяет выполнить все описанное в статье, просто кликая мышкой.

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

Сделать это можно с помощью все того же virt-clone, указав дополнительный диск с помощью опции -f. Например (apache_base — заранее сохраненная рабочая копия):

$ sudo virt-clone -o apache_base -n apache -f /var/lib/libvirt/images/ -f /var/lib/libvirt/images/

Естественно, следует заранее внести необходимые строки в /etc/fstab. Кстати, идею с вынесением данных виртуальных машин на отдельные диски можно использовать для шаринга данных между несколькими виртуальными машинами, например в конфигурации с использованием дополнительного сервера nginx для отдачи статики. В таком случае доступ к данным веб-сервера должны иметь сразу две виртуальные машины: Apache и nginx. Чтобы это организовать, можно использовать отдельный диск для данных и подключать его к обеим ВМ. Правда, в этом случае придется настроить блокировку диска; как это сделать, описано в официальной документации.

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

$ virsh setmem memcached 1048576 —live —config

Она установит количество выделенной памяти для ВМ memcached равным 1 Гб и запишет это значение в конфиг ВМ (флаг ‘—config’). Количество выделенных процессоров можно изменить так:

$ virsh setvcpus apache 2 —live —config

Дальнейшие шаги

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

Virsh — мощнейший инструмент управления ВМVNC-клиент