Шаг 5 — Тестирование обработки PHP на веб-сервере
Мы указали персонализированное расположение для хостинга файлов и папок сайта и теперь можем создать тестовый скрипт PHP, чтобы подтвердить способность Apache обрабатывать запросы для файлов PHP.
Создайте новый файл с именем в корневой папке сайта:
В результате откроется пустой файл. Вставьте в файл следующий код PHP:
/var/www/your_domain/info.php
После завершения редактирования сохраните и закройте файл.
Чтобы протестировать этот скрипт, откройте браузер и введите доменное имя или IP-адрес вашего сервера, а затем название скрипта, в данном случае :
Вы увидите приблизительно следующую страницу:
На этой странице содержится информация о вашем сервере с точки зрения PHP. Эта информация полезна для отладки и обеспечения правильного применения настроек.
Если вы видите эту страницу в своем браузере, ваша система PHP работает надлежащим образом.
После проверки соответствующей информации о вашем сервере PHP с помощью данной страницы рекомендуется удалить созданный вами файл, поскольку он содержит конфиденциальную информацию о вашей среде PHP и о вашем сервере Ubuntu. Для этого можно использовать :
Если впоследствии вам снова потребуется эта информация, вы всегда можете воссоздать эту страницу.
Пункт 1.4.0 (установка и настройка php 7.3)
В случае ошибки добавления смотрим подсказку ниже
Добавляем PPA репозиторий:
Пункт 1.4.0.1 Fix add-apt-repository: command not found error
Иногда после этой команды выскакивает ошибка следующего вида:
Ошибка проста. Пакет add-apt-repository не установлен в вашей системе.
Если вы попытаетесь использовать sudo apt-get install add-apt-repository, это не сработает.
Это связано с тем, что команда add-apt-repository находится в пакете software-properties-common, и вам необходимо установить этот пакет, чтобы установить add-apt-repository.
Поэтому во избавление ошибки (если она появилась) используем следующую команду:
Если ошибка не появились или вы её успешно исправили, то далее обновляем список командой:
Установите PHP 7.3, используя следующую команду:
php 8.0.1 https://www.cloudbooklet.com/how-to-install-php-8-on-ubuntu/
php7.3
php8.0.1:
На появившиеся в процессе установки вопросы отвечаем Y
Используйте следующую команду, чтобы проверить версию PHP, установленную на вашем сервере:
Вывод должен быть примерно следующим:
Перезапускаем Apache для применения изменений:
sudo service apache2 restart
Дополнительно вносим изменения в конфигурационный файл Apache:
Находим следующие строчки:
Их нужно закомментировать и добавить после них следующие пять строчек:
В итоге мы должны получить часть конфига, которая будет выглядеть следующим образом:
После чего снова перезагружаем Apache:
Дабы однажды не столкнуться с ошибкой вроде:
Нужно включить rewrite модуль Apache
После чего нужно снова перезагрузить сервер Apache:
После этого нам желательно настроить наш первый тестовый сайт и проверить его работоспособность.
Пункт 1.1.7 (устанавливаем и настраиваем file2ban)
Принцип работы fail2ban прост. Специальный сервис ищет в системных журналах (логах) записи о неудачных попытках аутентификации и при определенных условиях с помощью iptables блокирует IP-адреса, с которых ведется атака.
Устанавливаем пакет fail2ban:
После этого служба fail2ban запустится автоматически. В этом можно убедиться, проверив статус следующей командой:
Результат должен быть примерно следующим
Файлы настроек fail2ban расположены в каталоге /etc/fail2ban/:
- /fail2ban.conf – дефолтные настройки сервиса fail2ban;
- /fail2ban.d/ – пользовательские настройки сервиса fail2ban;
- /jail.conf – дефолтные настройки для защищаемых сервисов;
- /jail.d/ – пользовательские настройки для защищаемых сервисов;
- /filter.d/ – настройки шаблонов поиска в системных журналах (логах);
- /action.d/ – настройки исполняемых действий;
- /paths*.conf – настройки путей для различных операционных систем.
Чтобы ваши настройки не перезаписывались при обновлении пакетов, рекомендуем вместо редактирования файлов с дефолтным настройками создавать собственные (пользовательские) файлы настроек.
Вам необходимо удалить дефолтные настройки защиты sshd (очищаем файл):
Затем создайте файл /etc/fail2ban/jail.d/sshd.local и добавляете в файл следующие записи:
Теперь если параметр enabled будет иметь значение true, сервис fail2ban заблокирует соответствующий IP-адрес на количество секунд, прописанное в параметре bantime, при условии, что за период, указанный в секундах в параметре findtime, с этого адреса будет проведено заданное параметром maxretry или большее число неудачных попыток ssh-аутентификации. По прошествии периода, прописанного в параметре bantime, заблокированный IP-адрес автоматически разблокируется.
В нашем примере IP-адрес будет блокироваться на 86400 секунд (24 часа), если в течение последних 7200 секунд (2х часов) с него было осуществлено 2 и более неудачных попыток аутентификации.
Настройка сервиса fail2ban завершена, необходимо его перезапустить:
В ходе использования fail2ban вам может понадобиться на время снять блок с конкретного IP-адреса или добавить его в список исключений.
Прежде всего, убедитесь, что нужный IP-адрес находится в списке заблокированных:
В результате исполнения данной команды вы получите список, где будет указано количество неудачных попыток аутентификации и список заблокированных IP-адресов.
Результат команды:
Разблокировать ip в fail2ban:
Более подробно 1: https://andreyex.ru/linux/kak-ustanovit-i-nastroit-fail2ban-v-ubuntu-20-04/
Более подробно 2: https://www.servers.ru/knowledge/linux-administration/how-to-protect-ssh-using-fail2ban-on-ubuntu-16_04 и тут: https://linux-notes.org/udalit-iz-fail2ban-zablokirovanny-j-ip/
Шаг 3 — Проверка конфигурации
Чтобы проверить, что изменения конфигурации вступили в силу, вы выполните несколько тестов. Первый проверит, какой мультипроцессный модуль использует Apache HTTP. Второй проверит, что PHP использует менеджер FPM.
Проверьте сервер Apache HTTP, выполнив следующую команду:
Вывод будет выглядеть следующим образом:
Вы можете повторить то же самое для модуля и FastCGI:
Результат будет выглядеть так:
Если вы хотите увидеть весь список модулей, можно удалить вторую часть команды после .
Теперь пришло время проверить, использует ли PHP диспетчер процессов FastCGI. Для этого вы напишете небольшой скрипт PHP, который покажет вам всю информацию, связанную с PHP.
Запустите следующую команду, чтобы написать файл с именем:
Добавьте в файл следующие строки:
info.php
Теперь откройте URL-адрес вашего сервера и добавьте в конец следующим образом: .
Запись API сервера будет FPM/FastCGI.
Удалите файл после этой проверки, чтобы в общем доступе не отображалась никакая информация о сервере:
Вы проверили рабочий статус модуля MPM, модули, обрабатывающие FastCGI, а также обработку кода PHP.
Зачем нужен мультипроцессинг для веб-сервера?
Поскольку к веб-серверу одновременно может быть направлено множество запросов. То естественно, необходимо некоторую часть из них принять в обработку. А оставшиеся запросы поместить в очередь ожидания. После того, как занятый обработкой запроса процесс освободится. Он получит следующий, находившийся в очереди запрос. И так далее. Сколько должно одновременно обрабатываться запросов, сколько должно находиться в очереди, а также стратегия распределения задач между процессами — определяется системной конфигурацией веб-сервера. Эти параметры настраиваются в ходе оптимизации и тестирования программно-аппартной платформы. На которой предполагается работа веб-сервера. Исходя из прогнозируемых нагрузок и специфики выполняемых задач.
Но дело ещё и в том, чтобы не просто обеспечить максимальную производительность веб-сервера за счёт тонкой и сбалансированной настройки мультипроцессинговой обработки, но также обеспечить выполнение каждого процесса в «индивидуальном» порядке. Это подразумевает выполнение каждого процесса от имени конкретного пользователя. Такой подход обеспечивает максимальную безопасность без потери производительности. При условии, что имеют место достаточное количество аппаратных ресурсов. А также грамотная оптимизация работы соответствующего программного обеспечения (ПО).
Где в веб-сервере Apache находятся сайты?
По умолчанию корневой папкой для веб-документов является /var/www/html. В /var/www вы можете делать ваши собственные виртуальные хосты.
Папка /var/www/html и все файлы внутри неё принадлежат пользователю рут.
Чтобы вы могли изменять, добавлять, удалять файлы в этой папке, вам нужно использовать sudo. Например, следующей командой вы откроете файловый менеджер для управления содержимым папки.
sudo nemo /var/www/html
Все другие программы, которые вносят изменения в /var/www/html, также должны быть запущенными с sudo
На локальном сервере для упрощения использования вы можете сделать себя владельцем этой папки:
sudo chown -R $USER:$USER /var/www/html
Теперь вам и запущенным от вашего имени программам не нужны привилегии суперпользователя для работы с содержимым этой директории:
nemo /var/www/html
Настройка виртуальных хостов Apache
Было бы не совсем удобно, если на одной физической машине можно было размещать только один сайт. Apache может поддерживать сотни сайтов на одном компьютере и выдавать для каждого из них правильное содержимое. Для этого используются виртуальные хосты. Сервер определяет к какому домену приходит запрос и отдает нужное содержимое из папки этого домена.
Настройки хостов Apache расположены в папке /etc/apache2/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:
- ServerName — основное имя домена
- ServerAlias — дополнительное имя, по которому будет доступен сайт
- ServerAdmin — электронная почта администратора
- DocumentRoot — папка с документами для этого домена
Например:
Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:
Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:
Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:
Вот, ну теперь будет работать, открывайте браузер, проверяйте.
Как поменять URL адрес phpMyAdmin. Как включить и отключить phpMyAdmin
Если при установке phpMyAdmin вы выбрали не настраивать его для использованием с веб-сервером Apache, то для включения phpMyAdmin используйте команду:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/
Чтобы изменения вступили в силу, перезагрузите веб-сервер:
sudo systemctl restart apache2
Чтобы отключить phpMyAdmin, используйте команду:
sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf
Чтобы изменения вступили в силу, перезагрузите веб-сервер:
sudo systemctl restart apache2
В файле /etc/phpmyadmin/apache.conf есть важная строка:
Alias /phpmyadmin /usr/share/phpmyadmin
Суть её в том, что URL адресу /phpmyadmin (например, http://localhost/phpmyadmin) начинает соответствовать папка /usr/share/phpmyadmin. То есть файлы (скрипты) phpMyAdmin физически расположены в /usr/share/phpmyadmin, а не в директории веб-сервера (например, /var/www/html/).
Подробности о директиве Alias вы можете почитать в статье «Модуль Apache mod_alias».
Многие автоматические сканеры «скрытых» файлов и папок веб-сервера и сайтов обязательно проверяют директории «phpmyadmin», «pma» и другие подобные. Вы можете хорошо спрятать ваш phpMyAdmin изменив Alias. Например:
Alias /lkjgler94345 /usr/share/phpmyadmin
Чтобы изменения вступили в силу, перезапустите веб-сервер. Теперь phpMyAdmin станет доступен по адресу http://localhost/lkjgler94345 — такое найти непросто.
Quirks and warnings
Since mpm-itk has to be able to setuid(),
it runs as root (although restricted with POSIX capabilities
and seccomp v2 where possible) until the request is parsed and the vhost
determined. This means that any code execution hole before the request
is parsed will be a potential root security hole. (The most likely place
is probably in mod_ssl.) This is not likely to change in the near future,
as socket passing, the most likely alternative solution, is very
hard to get to work properly in a number of common use cases (e.g. SSL).
The lack of socket passing also leads to another minor quirk:
If you connect to httpd, make a request and then make a request on the
same connection that gets handled by a different uid, mpm-itk simply
shuts down the connection. This is perfectly legal according to
,
and all major clients seem to handle it well; the web server simply simulates a
timeout, and the client just opens a new connection and retries the request.
However, there is a small performance hit, and thus you should avoid including
content from multiple uids in the same page.
Note that mpm-itk is nowhere as tested as, say,
prefork. That being said, it’s being run in production at several
sites in the world, both hobbyist and commercial, some as large as
~10 million hits a day.
4.2 Настройка веб-сервера Apache
Редкий случай, когда веб-сервер используется с дефолтными настройками. Обычно, перед запуском его требуется настроить под конкретные задачи. Для этого нужно отредактировать конфигурационный файл httpd.conf, в котором хранятся все настройки веб-сервера Apache .
На самом деле httpd.conf &mdash это основной, но не единственный файл настроек. Дело в том, что последние версии Apache поддерживают модульную структуру httpd.conf и позволяют гибко управлять настройками путем подключения к httpd.conf дополнительных файлов. Более того, httpd.conf это обычное, но не обязательное название. Например, в Apache2.2 из дистрибутива Ubuntu 9.10 файл настроек называется apache2.conf.
Структура файла httpd.conf проста и подробнео описана в самом файле, здесь приведем очень короткий его фрагмент (строки, начинающиеся со знака # («решетка») — комментарии):
# Директивы конфигурации веб-сервера разделены на три основные группы:
# 1. Директивы управления веб-сервером как таковым («глобальное окружение»);
# whole (the ‘global environment’).
# 2. Директивы, определяющие поведение «главного» сервера, к которому выполняются все обращения, если
# отсутствуют виртуальные хосты. Эти директивы определяют значения по умолчанию для всех виртуальных
# серверов
# 3. Настройки виртуальных хостов, которые позволяют управлять запросами, входящими на различные сетевые
# адреса, или с различными доменными именами
# …
Все директивы конфигурации задаются парами вида:
<параметр><разделитель><значение>
Здесь:
<параметр>
Строка, определяющая имя параметра.
<разделитель>
Один или несколько последовательных разделителей (пробелы, символы табуляции).
<значение>
Фактическое значение параметра.
Несколько директив могут быть заключены в контейнеры вида:
<имя_блока />
<список_директив>
</имя_блока>
Примером такого блока является контейнер Directory.
Приведенные ниже описания некоторых параметров конфигурации веб-сервера не являются исчерпывающими инструкциями по настройке веб-сервера, однако затрагивают те изменения, которые, возможно, придется внести, чтобы заставить сервер работать как требуется. Подробное описание всех директив веб-сервера см. в официальной документации.
Postfix
В качестве агента MTA мы будем использовать удобный в настройке и надежный Postfix.
Установка, настройка и запуск
Устанавливаем пакет postfix:
apt-get install postfix
Вносим некоторые изменения в настройки:
vi /etc/postfix/main.cf
myorigin = $mydomain
smtp_generic_maps = hash:/etc/postfix/generic_map
* mydomain — домен сервера; myorigin — имя домена, которое будет подставляться всем отправляемым сообщениям без явного указания оного; smtp_generic_maps указывает на карту с общими правилами пересылки.
Открываем карту пересылки:
vi /etc/postfix/generic_map
И добавляем:
@dmosk.local [email protected]
* данной настройкой мы будем подставлять всем отправляемым письмам без поля FROM адрес [email protected].
Создаем карту:
postmap /etc/postfix/generic_map
Включаем автозапуск почтового сервера и перезапускаем его службу:
systemctl enable postfix
systemctl restart postfix
Корректная отправка
Для того, чтобы сервер мог отправлять сообщения на внешние ящики, необходимо корректно настроить в DNS, как минимум, записи A и PTR.
Для добавления А-записи, необходимо в настройках панели управления нашим доменом создать запись типа. Ее имя и IP-адрес должны соответствовать имени и адресу нашего сервера.
Для создания PTR-записи необходимо написать письмо Интернет-провайдеру, к которому подключен наш сервер. Если наш сервер арендуется у хостинговой компании, необходимо либо написать данное письмо данной хостинговой компании, либо данная возможность может быть предоставлена в панели управления хостинговыми услугами.
Установка mpm-itk в Linux
Поскольку в большинстве дистрибутивов Linux в стандартном репозитории уже доступны многие модули Apache, в том числе и mpm-itk, то лучше воспользоваться менеджером пакетов (или системой управления пакетами СУП) используемого дистрибутива для его (модуля) установки. Например, для Ubuntu нужно установит пакет libapache2-mpm-itk:
$ sudo apt install libapache2-mpm-itk
После этого можно перезапустить Apache:
$ sudo systemctl restart apache2
Но вообще, скрипт установки модуля должен перезапустить веб-сервер автоматически.
Если используемый дистрибутив не предоставляет готовых пакетов для модуля mpm-itk, то установку можно произвести вручную. Исчерпывающие инструкции для этого приведены на официальном сайте разработчиков модуля: http://mpm-itk.sesse.net.
Ротация логов веб сервера apache
Последний штрих в настройке web сервера — ротация логов виртуальных хостов. Если этого не сделать, то через какое-то, обычно продолжительное, время возникает проблема в связи с огромным размером лог файла.
У нас уже будет файл конфигурации logrotate для httpd, который был создан во время установки — /etc/logrotate.d/httpd. Приведем его к следующему виду:
/var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } /web/sites/pma.serveradmin.ru/log/*log { size=10M rotate 10 missingok notifempty compress sharedscripts postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } /web/sites/z.serveradmin.ru/log/*log { size=10M rotate 10 missingok notifempty compress sharedscripts postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript }
Что для этого нужно?
Поскольку phpMyAdmin – это веб-приложение, а из названия понятно, что оно написано на языке PHP и, следовательно — работает благодаря интерпретатору PHP, то естественно, необходимо иметь в системе установленные и корректно настроенные веб-сервер (например ), а также интерпретатор .
Третьим компонентом, без которого установка phpMyAdmin будет бессмысленной — это СУБД (система управления базами данных) .
Пакеты всех трёх необходимых компонентов, т. е. веб-сервера, интерпретатора PHP, а также сервера MySQL всегда есть в репозиториях всех дистрибутивов Linux. Имена пакетов будут разными в разных системах, но это уже вопрос более индивидуальный и выясняется отдельно.
Включение подсистемы Windows для Linux
Для включения компоненты «Подсистема Windows для Linux» в Windows 10 необходимо выполнить следующие действия:
- открыть «Панель управления» (Пуск -> Служебные -> Windows -> Панель управления);
- открыть окно «Компоненты Windows» (пункт «Программы» в «Панели управления» -> Включение и отключение компонентов Windows);
- установить галочку напротив опции «Подсистема Windows для Linux» и нажать «ОК»;
- перезагрузить операционную систему.
Для использования WSL 2 вам необходимо дополнительно ещё включить в окне «Компоненты Windows» необязательный компонент «Платформа виртуальной машины».
Какую версию WSL выбрать
Чтобы определиться какая версия WSL вам нужна, нужно рассмотреть их различия.
WSL 2 в отличие от WSL 1 имеет полнофункциональное ядро Linux с полной совместимостью системных вызовов. Это позволяет использовать внутри WSL 2 целый ряд приложений (Docker и другие). Если вам нужна поддержка этих приложений, то тогда однозначно стоит остановится на 2 версии этой подсистемы. К сведению, ядро Linux для WSL 2 собранно компанией Microsoft и будет автоматически обновляться через центр обновления Windows.
WSL 1 рекомендуется использовать для проектов, файлы которого будут находиться в файловой системе Windows. В этом случае вы получите более высокую производительность, чем на WSL 2.
На мой взгляд, использовать вторую версию WSL пока не имеет особого смысла, только если вы не используете Docker или другое приложение, которому нужна полная совместимость системных вызовов Linux. Т.к. при использовании WSL 2 вам необходимо будет располагать проект в файловой системе Linux, иначе производительность файловых систем ОС при работе с этим проектом будет достаточно низкой. Но в любом случае вы можете переключить WSL для дистрибутива Linux как на первую версию, так и на вторую, и посмотреть какой вариант этой подсистемы для работы вам более подходит.
Работа с версиями WSL
Установку версии WSL, которую вы хотите использовать по умолчанию, осуществляется посредством выполнения в PowerShell следующей команды (например, WSL 2):
Эта команда установит по умолчанию в качестве версии WSL 2. Если нужно WSL 1, то в вместо 2, нужно указать соответственно 1.
Проверить WSL версию, назначенному каждому из установленных дистрибутивов Linux можно в PowerShell через следующую команду:
Для того чтобы изменить назначенную WSL версию дистрибутиву Linux на другую:
Например, для того чтобы перевести Ubuntu-18.04 на WSL 2 необходимо выполнить команду:
Доступ к файловым системам ОС
Получить в Windows доступ к файлам WSL можно, например, через проводник, введя в его адресной строке путь или просто выполнив в Bash команду .
В WSL получение доступа к файловой системе Windows выполняется через . Например, для того чтобы в Bash перейти на диск необходимо ввести , а на — .
ШАГ 3 ручной запуск Apache
Основным исполняемым файлом WEB сервера Apache является файл Apache24\bin\httpd.exe. Соответственно, Apache можно запустить на исполнение как процесс, кликнув по файлу httpd.exe или выполнить команду запуска этого файла в консоли, что будет равнозначно.
Для того, что бы запустить Apache из командной строки на Windows, перейдите в проводнике в директорию с файлом Apache24\bin\httpd.exe и, зажав клавишу Shift, нажмите правую кнопку мыши и в контекстовом меню выберите пункт «Открыть окно команд». Тогда командная строка Windows cmd.exe будет запущена уже в этом каталоге с бинарниками сервера и вам не нужно будет в команду включать полный путь до файла httpd.exe, а достаточно будет указать только сам файл с расширением. Если же вы запустил консоль в другом расположении, то включите, в приведенную ниже команду, полный путь к файлу httpd.exe.
Для запуска Apache необходимо набрать в консоли команду
-если вы находитесь в папке с исполняемым файлом apache httpd.exe:
>httpd.exe
или, если вы находитесь вне папки с исполняемым файлом apache httpd.exe, то укажите в команде полный путь исполняемому файлу apache:
>Z:\WebDevelopment\Apache24\bin\httpd.exe
Данная команда приведет к запуску WEB сервера Apache, при этом, консоль останется запущенной и в окне командной строки исчезнет приглашение на ввод команды в виде знака >. Если при выполнении этих команд командная строка закроется, значит apache не запустился по причине каких либо ошибок в его конфигурации, для этого смотрите основной файл лога apache.
Что бы запускать Apache вручную в окне командной строки из любого места файловой системы простой командой:
> httpd
,т.е. без привязки к каталогу инсталяции Apache и при этом не указывать полный путь к файлу httpd.exe, то нужно прописать в системную переменную PATH путь до каталога с исполняемым файлом apache, т.е. добавить в переменную path строку вида:
Как добавить в переменную path путь к папке с исполняемым файлом детально расписано в статье на примере PHP.
Если Apache запустился, то в диспетчере задач Windows появятся два активных процесса с именами файлов httpd.exe и описанием для них «Apache HTP Server». Это,собственно, и есть работающий WEB сервер Apache. То, что мы видим два процесса httpd.exe — это нормально. Это Apache модуль Multi-Processing (MPM) по умолчанию для операционных систем Windows. Он использует единый процесс управления, который запускает дочерний процесс, который, в свою очередь, создает потоки для обработки запросов.
Если же что то пошло не так и сервер не запускается, то читайте его журналы ошибок, которые расположены в каталоге: Apache24\logs
Для остановки Apache, запущенного вручную, вышеописанным способом, необходимо вернуться в консоль (в окно открытой командной строки) и нажать комбинацию клавиш Ctrl+C, и через несколько секунд сервер будет остановлен, о чем будет свидетельствовать отсутствие httpd.exe процессов в Диспетчере задач Windows и в окне командной строки снова появится курсор (знак >) ожидания ввода команды. Иногда бывает, что командная строка «виснет», в этом случае повторно нажмите Ctrl+C и если курсор ввода команды не появится, то нажмите Enter. Если с использованием комбинаций клавиш Ctrl+C не получается остановить Apache в консоли, то просто закройте окно командной строки и сервер будет остановлен. Так же можно остановить Apache, выполнив завершение процессов httpd.exe в Диспетчере задач Windows, если предыдущие способы остановки не сработают.
htdocs\index.html
Теперь когда web сервер Apache запущен можно обратиться к его дефолтовый html странице, которая настроена в httpd.conf как хост по умолчанию и физически располагается в каталоге Apache24\htdocs\index.html.
Для проверки работы Apache наберите в адресной строке браузера адрес:
http://localhost
Если сервер работает, то вы увидите стартовую дефолтового страницу web сервера Apache от Apache Haus с надписью IT WORKS, что будет говорить о том, что все прошло успешно и Apache полноценно функционирует.
Для проверки HTTPS соединения обратитесь в браузере по адресу:
https://localhost
Браузер запросит ваше подтверждение на использование данного сертификата. Нужно будет вручную разрешить использование этого сертификата, т.к. входящий в сборку сертификат предназначен только для тестирования https соединения и является самоподписным, поэтому он будет отклоняться браузером в начале и требовать вашего одобрения на использование. После добавления сертификата в разрешенные для браузера, откроется снова стартовая страница Apache, но соединение уже будет защищенное по https протоколу с использованием SSL шифрования.
Особенности предоставления доступа к виртуальному хосту
Если для каталога phpmyadmin, в котором находятся исполняемые файлы приложения phpMyAdmin установлено разрешение на исполнение для всех остальных пользователей в системе, а не только для владельца и/или группы. То Apache будет без проблем с ним работать. Ведь по-умолчанию Apache работает от пользователя www-data но не от пользователя-владельца виртуального хоста phpmyadmin. Если же разрешение на исполнение для каталога phpmyadmin отнять у остальных пользователей (к которым и относится www-data), то Apache уже не сможет получить к нему доступ. О чём и сердито сообщит:
Особенности доступа к виртуальным хостам необходимо учитывать. И настраивать права доступа в соответствии с регламентом по обеспечению безопасности системы. Для подобных случаев даже предусмотрены специальные модули Apahe. Реализующие запуск отдельных экземпляров процесса Apache от имени разных пользователей-владельцев виртуальных хостов. Одним из таких модулей является mpm-itk. Это оптимальное решение, которое обеспечивает максимальную безопасность наряду с оптимальной производительностью веб-сервера. К тому же избавляет администраторов от скрупулёзной настройки. Поскольку данный модуль очень простой для интеграции и конфигурирования.
Установка vestacp
Установка бесплатной панели управления хостингом vestacp одинакова проста на любой поддерживаемой операционной системе — RHEL/Centos, Debian, Ubuntu. Разработчики предоставляют готовый скрипт для установки, который достаточно загрузить с их сайта и запустить.
Нюансы возникают только в составе компонентов, которые будет включать в себя панель. Существуют несколько вариантов установки web сервера:
- Web сервер на базе nginx+apache+php
- Web сервер на базе apache+php
- Web сервер на базе nginx+php-fpm
Помимо различных веб серверов, можно управлять наличием следующих программ в составе панели:
- Ftp сервер vsftp.
- Firewall iptables и fail2ban для автоматического управления списками блокировок по ip.
- Dns сервер named.
- Различные комбинации почтового сервера.
- Сервер БД Mysql либо Postgresql.
Для получения готовой команды для установки vesta cp с подходящим составом компонентов внутри, можно воспользоваться удобной формой на странице с установкой на официальном сайте — http://vestacp.com/install/
Я буду устанавливать панель в следующей конфигурации.
Поясню свой выбор. На сервере не будет сайтов, которым был бы нужен apache, поэтому я им не воспользуюсь. Связка nginx+php-fpm дает более высокую производительность, поэтому я использую ее.
DNS и почтовый сервер можно легко получить бесплатно много где, например у Яндекса. Я обычно пользуюсь им. Последнее время появился нюанс в виде блокировок сервисов Яндекса на Украине, поэтому dns хостинг желательно зарегистрировать где-то еще, помимо Яндекса, если не хотите терять трафик оттуда. В любом случае это не проблема. Если что-то можно отдать на бесплатное обслуживание, я обычно это делаю, чтобы не тратить свое время и ресурсы понапрасну.
Iptables и fail2ban полезные инструменты, без них на веб сервере не обойтись, поэтому пусть будут. База данных, в обычных web проектах, чаще всего mysql, поэтому выбираю ее. Получаю строку с ключами для установки vestacp. Буду использовать ее. Ставим:
# cd /tmp # curl -O http://vestacp.com/pub/vst-install.sh # bash vst-install.sh --nginx yes --phpfpm yes --apache no --named no --remi yes --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota no --exim no --dovecot no --spamassassin no --clamav no --mysql yes --postgresql no --hostname vesta.serveradmin.ru --email [email protected]
Установщик задаст вопрос, чтобы уточнить набор программ.
Если все верно, то подтверждайте и продолжайте установку. Скрипт запустит пакетный менеджер дистрибутива и начнет установку необходимых программ из различных репозиториев. Далее он будет подгружать свои конфиги и скрипты для запуска служб, которыми будет управлять. В конце установки вы увидите адрес панели vestacp, имя пользователя и пароль для входа.
Если все сделали правильно, то после ввода логина и пароля по адресу панели, увидите саму панель управления.
Не забывайте указывать дополнительно порт 8083 в адресе панели в браузере, для входа в весту.