Введение
Apache — кроссплатформенный HTTP-сервер, который был создан с учетом ошибок старого web-сервера NCSA HTTPd. На данный момент стабильная версия имеет номер 2.4.63. Основные достоинства Apache — кроссплатформенность и модульная система, позволяющая оптимизировать программное обеспечения для нужд конкретной разработки.
В этой статье рассмотрим установку HTTP-сервера Apache на операционную систему (ОС) Ubuntu. В рамках этой публикации используется релиз Ubuntu 20.04 server и web-сервер Apache версии 2. Система развернута в облачной платформе Selectel. Для тестового сервера используется минимальная конфигурация мощностей — 1 ядро и 1 ГБ оперативной памяти. Для запуска простого ненагруженного приложения этого достаточно.
Настроить виртуальный сервер
Откройте панель управления Selectel и перейдите в раздел Облачная платформа. Нажмите Создать сервер.
Используем минимальную конфигурацию. Не забудьте добавить SSH-ключ, для Ubuntu 24.04 это обязательный шаг.
После создания сервера в панели можно будет посмотреть его IP-адрес.
Теперь можем подключиться к нему по SSH.
Самым простым способом подключения является использование утилиты PuTTY. Эта утилита является кроссплатформенной. Скачать ее можно с официального сайта https://www.chiark.greenend.org.uk/~sgtatham/putty/.
Для подключения в поле Host Name (or IP address) вводим полученный ранее ip-адрес, остальные опции оставляем без изменений.
После нажатия кнопки Open эмулятор терминала произведет подключение к серверу. Потребуется ввести комбинацию логин/пароль. На первоначальном этапе используем логин root и пароль, полученные на этапе создания сервера.
login as: root
root@xx.xx.xx.178's password:
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
root@kassie:~#
Установить Apache
При установке и конфигурации будет использован пользователь, отличный от root, но с правами администратора. Для большинства операций требуются привилегии суперпользователя.
Чтобы повысить привилегии обычного пользователя, используется команда sudo. Первоначально необходимо загрузить информацию об актуальных списках пакетов и зависимостях.
sudo apt update
После этой операции произведем установку пакета Apache2, он располагается в стандартном репозитории, дополнительные добавлять не нужно.
sudo apt install apache2
По окончании демон запускается автоматически, а также попадает в автозагрузку.
Настроить брандмауэр для Apache
Рекомендуем в Ubuntu использовать ufw. Uncomplicated Firewall — утилита для настройки межсетевого экрана. Если настройка происходит на виртуальном сервере, желательно проверить наличие установленной утилиты.
sudo ufw status verbose
В случае отсутствия ее в списке установленных пакетов появится ошибка:
sudo: ufw: command not found
Тогда ее необходимо установить:
sudo apt install ufw
Заново запросим ее статус:
Status: inactive
Это означает, что она деактивирована. Активируем:
sudo ufw enable
Разрешаем HTTP на сервере:
sudo ufw allow http
Очень важно в этом моменте разрешить SSH-доступ. На тестовом сервере SSH на стандартном порту 22.
sudo ufw allow 22/tcp
Обязательно перезапустить процесс:
sudo ufw reload
Проверить базовую настройку Apache
На данный момент сервер доступен из интернета по HTTP. Можно проверить это в браузере по ip-адресу в поисковой строке. Ip-адрес мы уже получили в панели управления сервером.
Появившееся приветствие означает успешную начальную настройку Apache-сервера.
Как запустить Apache и другие полезные команды
В этом разделе будут собраны базовые команды для управления Apache web-сервером. Несмотря на то, что демон запускается самостоятельно, иногда необходимо выключить его или перечитать конфигурацию.
Проверить статуса демона Apache:
sudo systemctl status apache2
В выводе будет указан текущий статус. Возможны два варианта.
Активен:
apache2.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-01-24 10:48:52 UTC; 9min ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 1924 (apache2)
Tasks: 55 (limit: 1119)
Memory: 6.3M (peak: 6.5M)
CPU: 66ms
CGroup: /system.slice/apache2.service
├─1924 /usr/sbin/apache2 -k start
├─1927 /usr/sbin/apache2 -k start
└─1928 /usr/sbin/apache2 -k start
Неактивен:
apache2.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: inactive (dead) since Fri 2025-01-24 10:58:38 UTC; 1s ago
Duration: 9min 45.788s
Docs: https://httpd.apache.org/docs/2.4/
Process: 3709 ExecStop=/usr/sbin/apachectl graceful-stop (code=exited, status=0/SUCCESS)
Main PID: 1924 (code=exited, status=0/SUCCESS)
CPU: 83ms
Иногда возникает ошибка.
apache2.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Fri 2025-01-24 11:01:08 UTC; 2s ago
Duration: 9min 45.788s
Docs: https://httpd.apache.org/docs/2.4/
Process: 3732 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
CPU: 10ms
Jan 24 11:01:08 kassie systemd[1]: Starting apache2.service - The Apache HTTP Server...
Jan 24 11:01:08 kassie apachectl[3734]: AH00526: Syntax error on line 13 of /etc/apache2/sites-enabled/000-default.conf:
Jan 24 11:01:08 kassie apachectl[3734]: Invalid command 'meow', perhaps misspelled or defined by a module not included in the server configuration
Чтобы выйти в консоль из статуса, необходимо использовать клавишу q или комбинацию клавиш Ctrl+С.
Для деактивации:
sudo systemctl stop apache2
Для активации:
sudo systemctl start apache2
Перезапуск:
sudo systemctl restart apache2
При изменении конфигурации Apache возможно ее перечитать без разрыва текущей сессии с хостов:
sudo systemctl reload apache2
Чтобы деактивировать запуск web-сервера при загрузке:
sudo systemctl disable apache2
Активировать автозагрузку:
sudo systemctl enable apache2
Настроить виртуальные хосты Apache
Можно использовать веб-сервер Apache для поддержки одного web-приложения. Но достаточно часто приходится на одном сервере создавать и обслуживать несколько web-ресурсов. В Apache для этих целей используется модуль виртуальных хостов. Он позволяет развернуть несколько web-приложений на одном сервере с использованием одного ip-адреса, но разных доменных имен. Про теорию доменных имен есть хорошие статьи и книги, например, статья о DNS-сервере BIND и книга Крикета Ли, Пола Альбитц «DNS и BIND». Об управлении доменами и ресурсными записями написали в базе знаний Selectel.
Перейдем к настройке виртуального хоста.
В Ubuntu конфигурации виртуальных хостов расположены в директории /etc/apache2/sites-available. Нам необходимо получить директорию для виртуального хоста по умолчанию. Получим root-директорию из файла дефолтной конфигурации:
grep "DocumentRoot" /etc/apache2/sites-available/000-default.conf
Вывод:
DocumentRoot /var/www/html
Создадим новые необходимые директории, не меняя корневой.
sudo mkdir -p /var/www/example.com/html
В стандартном исполнении Apache ищет документ index.htm или index.html
Создадим простой html5-документ:
sudo touch /var/www/example.com/html/index.html
Добавим небольшую структуру документа, открыв его в текстовом редакторе:
sudo nano /var/www/example.com/html/index.html
Вставляем в файл.
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
<meta charset="utf-8">
</head>
<body>
<h1>Hello Selectel!</h1>
</body>
</html>
Чтобы оставить дефолтную конфигурацию виртуального хоста неизменной, копируем его в созданную ранее директорию настроек нового виртуального хоста.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Теперь откроем скопированный файл, рассмотрим основные директивы и внесем необходимые правки. На данном этапе нам будет интересна только строка, в которой указан путь к директории виртуального хоста. Меняем его на путь к директории, созданной специально для него. Чтобы при обращении Аpache мог перенаправить запрос именно к созданному нами виртуальному хосту.
sudo nano /etc/apache2/sites-available/example.com.conf
Файл дефолтного виртуального хоста:
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf</VirtualHost>
<VirtualHost *:80> — в этой строке указываем ip-адрес сервера, а также порт, используемый для этого виртуального хоста. На данный момент мы используем HTTP и один ip-адрес. В связи с этим номер порта 80, адрес не указываем. Настройка HTTPS будет описана ниже.
ServerAdmin webmaster@localhost — строка связи с администратором, необходимо указать активный почтовый адрес отвечающего за обслуживание сервера специалиста. Опционально. Добавим адрес, по которому всегда придут на помощь support@selectel.ru.
DocumentRoot /var/www/html — root-директория или корневой каталог виртуального хоста. Обязательна к применению и настройке. В нашем случае это путь к созданной ранее директории с документом index.html. Вносим изменения:
/var/www/example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log — путь к файлу с логами сервера. Вносить какие-либо изменения нет необходимости. Здесь будут храниться ошибки запуска демона и ошибки, не относящиеся к клиентам.
CustomLog ${APACHE_LOG_DIR}/access.log combined — это директива для хранения логов клиентского доступа.
Редактирование файла на этом завершается. Это минимальная конфигурация для запуска виртуального хоста на Apache web-сервере. Изменять конфигурацию далее на данном этапе нет необходимости.
Сохраняем и выходим из редактора. Для сохранения используется комбинация Ctrl+o, для выхода Ctrl+x.
Файл с готовой конфигурацией:
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin support@selectel.ru DocumentRoot /var/www/example.com/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf</VirtualHost>
Для подключения виртуальных хостов, а также модулей в Apache HTTP-сервере используется набор команд:
a2enmod {модуль} — подключение модуля;
a2dismod {модуль} — отключение модуля;
a2ensite {конфиг виртуального хоста} — подключает виртуальный хост;
a2dissite {конфиг виртуального хоста} — отключает виртуальный хост.
Нам потребуется a2ensite для активации созданного хоста:
sudo a2ensite example.com.conf
И a2dissite для деактивации дефолтного:
sudo a2dissite 000-default.conf
После внесенных изменений требуется перечитать конфигурацию сервера:
sudo systemctl reload apache2
Теперь мы можем обратиться с созданному виртуальному хосту по доменному имени.
В этой инструкции мы не используем dns, поэтому для разрешения имени используем файл hosts.
В windows этот файл расположен здесь: C:\Windows\System32\drivers\etc\hosts.
А в linux/mac: /etc/hosts.
Добавим строчку: 94.0.0.0 example.com.
Где 94.0.0.0 — ранее полученный ip-адрес сервера, а example.com — доменное имя виртуального хоста.
Теперь перейдем в браузер и в адресной строке наберем: example.com.
Получим созданное web-приложение:
SSL для Apache
TLS (transport layer security — протокол защиты транспортного уровня) и предыдущая версия защиты SSL (secure sockets layer — слой защищенных сокетов). Это все протоколы криптографии, созданные для защиты передачи данных между узлами в информационной сети.
Оба протокола используют асимметричное шифрование для аутентификации, симметричное шифрование для конфиденциальности и коды аутентичности сообщений. Подробно останавливаться на теории сейчас нет необходимости. На первоначальном этапе достаточно быть в курсе, что эти протоколы отвечают за сохранность конфиденциальности данных в момент обмена данными между клиентом и сервером. Ключи могут быть самозаверяющими, т.е. созданными и подписанными самим web-сервером.
Такие ключи подходят для использования протокола HTTPS и шифрования данных, но не являются доверенными для сети интернет. Также сертификаты бывают выданными центрами сертификации. Они не только шифруют данные, но также web-браузер знает о таком ключе и доверяет ему по-умолчанию. В таком случае сертификаты платные, но имеется возможность использования бесплатного сервиса Let`s encrypt. С использованием сервиса можно создать и заверить ключ.
В этом случае сертификат будет действительным для сети интернет, но бесплатным. В этой инструкции будет настроено простое шифрование с использованием самозаверяющего ключа, созданного на сервере Apache.
Создать SSL-сертификат на сервере
Чтобы создать и подписать сертификат, потребуется пакет OpenSSL. Он есть в системе, не нужно устанавливать. Сейчас будет создан и подписан сертификат, а также закрытый и открытый ключи будут перемещены в необходимые директории.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/server-example.key -out /etc/ssl/certs/server-example.crt
Расшифровка опций из команды:
req -x509 — опция определения стандарта сертификата (-x509 стандарт инфраструктуры открытого ключа).
-nodes — отказаться от защиты сертификата паролем. Если убрать эту опцию, произойдет запрос пароля для ключа, который необходимо вводить при каждом запуске web-сервера (желательно использовать в продакшене).
-days 365 — срок действия сертификата. Обычно срок устанавливается более длительный, но для тестового сервера достаточно. Также необходимо учитывать, что на web-сервере время и дата должны быть верными.
-newkey rsa:2048 — опция указывает на создание нового сертификата и ключа единовременно. Часть rsa:2048 обозначает размер ключа.
-keyout /etc/ssl/private/server-sample.key — обозначает директорию, в которую необходимо поместить закрытый ключ.
-out /etc/ssl/certs/server-sample.crt- — директория местоположения сертификата.
server-sample.key и server-sample.crt — имена ключа и сертификата.
После ввода команды потребуется ответить на некоторые вопросы, разберем список директив:
Country Name (2 letter code) [AU]:RU — указываем страну.
State or Province Name (full name) [Some-State]:LIP — область.
Locality Name (eg, city) []:Lipetsk — город.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sel — организацию.
Organizational Unit Name (eg, section) []:Sel — отдел.
Common Name (e.g. server FQDN or YOUR name) []:94.255.255.255 — вводим доменное имя или белый адрес сервера.
Email Address []: — адрес для связи с владельцем ключа. Можно оставить пустым или заполнить почту, аналогичную ServerAdmin в конфигурации веб-сервера.
После выполнения операции требуется подключение модуля SSL для Apache HTTP-сервера. Ранее были разобраны команды для этого действия. Вот так выглядит необходимая:
sudo a2enmod ssl
После включения модуля необходимо перезапустить демона Apache.
Переходим к настройке HTTPS для виртуального хоста. Вносим изменения в файл его настройки.
sudo nano /etc/apache2/sites-available/example.com.conf
Во-первых, меняем директиву <VirtualHost *:80>.
Порт изменится на 443 (порт для протокола HTTPS по умолчанию).
Добавляем директиву SSLEngine on после строки DocumentRoot для включения поддержки SSL на web-сервере.
После этого еще две строки, в которых указан путь к ключу и сертификату:
SSLCertificateFile /etc/ssl/certs/server-example.crt
SSLCertificateKeyFile /etc/ssl/private/server-example.key
Теперь файл конфигурации виртуального хоста выглядит следующим образом:
<VirtualHost *:443> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin support@selectel.ru DocumentRoot /var/www/example.com/html SSLEngine on SSLCertificateFile /etc/ssl/certs/server-example.crt SSLCertificateKeyFile /etc/ssl/private/server-example.key # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf</VirtualHost>
Перед проверкой по web добавим разрешающее правило безопасности:
sudo ufw allow https
А также перечитаем конфигурацию web-сервера Apache:
sudo systemctl reload apache2
Теперь при запросе сервера по HTTPS:example.com браузер выдаст оповещение о небезопасном сертификате. Проигнорировав его, будет отображено созданное ранее web-приложение.
На этом настройка SSL закончена.
Конфигурационные файлы и директории web-сервера Apache
Приведенные файлы и директории используются для настройки Apache-сервера. В данном документе уникальных настроек не приводится. Этот раздел создан для ознакомительных целей.
/etc/apache2 — директория конфигурационных файлов Apache.
/etc/apache2/apache2.conf — основной файл конфигурации сервера. Он отвечает за множество настроек сервера. Например, включить чтение файла .htaccess необходимо именно здесь.
/etc/apache2/envvars — файл значения переменных среды для Apache.
/etc/apache2/magic — отображает инструкции для определения типа файла на сервере и клиенте.
/etc/apache2/ports.conf — настройка слушающих портов по умолчанию.
/etc/apache2/sites-available/ — директория конфигураций виртуальных хостов.
/etc/apache2/sites-enabled/ — здесь хранится информация об активных виртуальных хостах.
/etc/apache2/conf-available/ — директория настроек хостов, не относящихся к виртуальным.
/etc/apache2/conf-enabled/ — ссылки на включенные хосты, не относящиеся к виртуальным.
/etc/apache2/mods-available/ и /etc/apache2/mods-enabled/ — директории модулей. Модули, а также их настройки расположены здесь.
/var/www — директория для хранения web-приложений. Обычно виртуальные хосты тоже хранят здесь. Может быть изменена.
/var/log/apache2 — директория файлов логирования, содержит в себе два файла, ранее в этой инструкции было описано какой из них за что отвечает.
Безопасность web-сервера Apache
Сервер, который смотрит в интернет, вне зависимости от задач на него возложенных, находится в опасности. Он может быть атакован злоумышленниками с последующим вмешательством в его функциональность. Рассмотрим защиту от доступа неблагонадежных пользователей к серверу по протоколу SSH.
В Linux-системах отличным решением является утилита Fail2ban. Принцип ее работы основан на отслеживании файлов логирования доступа к серверу. По заданному количеству попыток обращений создается правило блокировки ip-адреса, с которого предположительно происходит вторжение.
Установка и настройка Fail2ban
sudo apt-get install fail2ban -y
Утилита из коробки включает защиту от перебора паролей. Но в нашем случае перед включением будут внесены несколько изменений.
/etc/fail2ban/jail.conf — отвечает за настройки безопасности конкретных сервисов.
Вносить изменения в него не рекомендуется, поэтому создадим новый файл с расширением .local. Эти файлы имеют приоритет выше, чем файл .conf для Fail2ban.
sudo nano /etc/fail2ban/jail.local
Внесем настройки для защиты SSH:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 4
bantime = 60
Построчно:
Директива [sshd] отвечает за защиту доступа по SSH при отказе в авторизации;
enabled = true — состояние;
port = 22 — номер порта;
filter = sshd — имя, по которому идет поиск в логах сервиса;
logpath = /var/log/auth.log — файл журнала, из которого будут взяты результаты поиска по фильтру;
maxretry = 4 — количество неудачных попыток;
bantime = 60 — время блокировки в секундах. Сейчас эта секция добавлена для тестовой инструкции, в продакшене обычно время блокировки больше.
С настройкой закончили, добавим демона fail2ban в загрузку и запустим, а потом проверим его работу.
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Как мы видим, доступ заблокирован после превышения попыток авторизации.
Через 60 секунд доступ появится.
Для того, чтобы разблокировать доступ, принудительно используется команда:
sudo fail2ban-client set sshd unbanip ip_add
ip_add — заблокированный адрес.
Установка и настройка Apache на Windows Server
Рассмотрим также установку HTTP-сервера Apache на операционную систему Windows. В примере будем использовать Microsoft® Windows Server 2019 Standard.
Подготовка системы
Предположим, что операционная система уже установлена на сервер, а также имеется общедоступный IP‑адрес.
Для работы веб-сервера Apache в системе должен быть установлен пакет Microsoft Visual C++ Redistributable, который необходим для запуска приложений, созданных в Microsoft Visual Studio. Подробная информация и ссылки для скачивания различных версий можно найти на странице Microsoft. Мы воспользуемся последним выпуском для платформы x64, ссылку на который копируем в буфер обмена.
Переходим к работе с сервером. В нашем случае он называется Wendy.
Почти вся дальнейшая работа будет выполняться в консоли панели управления. Взаимодействие с операционной системой Windows Server осуществляется через графический интерфейс. Наиболее удобный способ дистанционно работать с ОС Windows — воспользоваться одной из программ, предназначенных для обмена данными по протоколу RDP.
RDP (Remote Desktop Protocol) — это протокол удаленного доступа, разработанный Microsoft. Он позволяет подключаться к другому компьютеру через сетевое соединение, видеть его экран и взаимодействовать с ним через интерфейс программы.
В операционных системах от Microsoft уже встроена утилита «Подключение к удаленному рабочему столу». Также существуют RDP-клиенты для macOS, Linux, Android и iOS.
Использование дополнительного необязательного ПО выходит за рамки данной инструкции, поэтому мы прибегнем к минималистичному, хоть и не самому удобному способу — будем взаимодействовать с сервером через браузер. Для удобства его рабочий стол можно развернуть во весь экран.
Запускаем Internet Explorer и вставляем в адресную строку скопированную ранее ссылку на последнюю версию Visual C++ Redistributable, сохраняем пакет и запускаем установщик.
Установка Apache
На официальной странице веб‑сервера Apache сказано, что для систем Microsoft готовые сборки не поддерживаются. Однако предоставляется список доверенных сайтов, где готовую сборку можно взять. Мы воспользуемся самым первым — apachelounge.com.
Выбирая место на диске для размещения Apache, следует иметь в виду один нюанс. Пакет сконфигурирован так, что без дополнительных действий он будет работать только при установке в корневую папку директории C:\, то есть главный исполняемый файл httpd.exe оказывается в каталоге C:\Apache24\bin. В противном случае, в файле Apache24\conf\httpd.conf необходимо переопределить переменную SRVROOT: изменить значение по умолчанию «c:/Apache24» на актуальный путь файлов веб‑сервера.
Define SRVROOT "c:/Apache24"
Обратите внимание, что для обозначения пути используется слэш, а не обратный слэш!
Мы не рассматриваем в статье глубокую настройку Apache, такую как разрешение выполнять скрипты Perl и CGI. Необходимую информацию можно найти в документации.
Продолжим работу в консоли. Проверим работоспособность веб-сервера. Перейдем в каталог, где находится файлы Apache (по умолчанию, это C: \Apache24) и запустим приложение:
> cd C:\Apache24
> .\httpd.exe
Обратите внимание на точку в начале команды — она задает текущий каталог явно!
Открываем Internet Explorer и ввводим в адресную строку localhost. Должна отобразиться надпись It works.
Покинем временно консоль в панели управления и воспользуемся браузером, который используем в повседневные жизни. Введем в его адресную строку IP-адрес хоста, на котором запущен Apache. В нашем случае — это 5.159.102.111. Страница окажется недоступной — брандмауэр Windows блокирует доступ к серверу.
Настройка правил брандмауэра
Чтобы к Apache можно было достучаться из публичной сети, необходимо добавить правило для межсетевого экрана. Открываем меню Пуск и в строке поиска вводим firewall:
Переходим в раздел углубленных настроек:
Далее в разделе входящих соединений создаем правило для программы, где указываем путь к исполняемого файлу Apache — httpd.exe:
Путь к файлу программы удобнее всего задать, воспользовавшись кнопкой Browse:
На следующем шаге разрешаем соединения:
Убеждаемся, что все галочки выставлены:
Скриншот последнего шага приводить не будем — он очень прост: необходимо придумать произвольное имя для созданного правила.
Вновь покидаем панель управления и возвращаемся к обычному браузеру. Видим, что наш веб-сервер работает и доступен из интернета:
Способы запуска
Обычно сервер выполняется в системе в качестве службы. Для этого можно использовать следующие команды, открыв ту же консоль CMD или powershell:
- httpd.exe -k start — для запуска,
- httpd.exe -k stop — для остановки,
- httpd.exe -k restart — для перезапуска.
Обратите внимание, консоль должна открываться от имени администратора — в противном случае для управления процессом не хватит прав.
Заключение
На этом инструкция по настройке web-сервера Apache завершена. Подведем итог: мы настроили один из самых популярных web-серверов и доступ к нему по протоколу HTTPS , изучили возможность настройки виртуальных хостов и обезопасили сервер от злоумышленников. На данном этапе администратор может самостоятельно обслуживать и настраивать Apache web-сервер на linux.
Другие материалы по работе с Apache
В статье описана портативная установка WEB сервера Apache на Windows из zip архива, включая все детали и шаги, такие как поиск и получение актуальной версии дистрибутива Apache для Windows, структура каталогов сборки, настройка Apache перед запуском, тестирование http и https соединений, инсталляция Apache как системной службы Windows. Следуя скринкасту и инструкциям из статьи вы сможете самостоятельно организовать полноценный WEB сервер Apache на Windows и использовать его как для WEB разработки, так и для хостинга своих сайтов.
Apache — наиболее распространенный WEB сервер, который используется на многих хостингах и платформах и прекрасно справляется со своими обязанности для мелких и средних проектов и WEB сайтов. Так же, Apache поддерживается практически всеми хостинг провайдерами и часто предоставляется уже преднастроенным пользователю. Apache является открытым программным обеспечением, не требует платы за использование и очень хорошо сочетается с PHP языком программирования, CMS и сайтами, написанными на PHP, за счет встроенной поддержки и интеграции с PHP, т.к. Apache, в первую очередь, предназначен для отдачи динамического содержимого. Долгое сотрудничество Apache и PHP делает связку WEB сервера Apache с языком программирования PHP отлаженной, проверенной временем и хорошо настраиваемой платформой для веб приложений, базирующихся на PHP. Многие, достаточно крупные WEB проекты используют именно Apache в связке с PHP CMS. Особенно привлекает в Apache его доступность и простота, в сочетании с большой гибкостью и функциональностью, наличие огромного количества документации и примеров по его настройке и эксплуатации.
Перейти к скринкасту: Установка Apache на Windows
Несмотря на то, что Apache преимущественно используется на Unix и Linux системах он, с тем же успехом и без потери в функциональности, может использоваться и на Windows. Использовать Apache на Windows можно как для WEB разработки, так и для полноценного хостинга сайтов на PHP CMS. Однако, на мой взгляд, наиболее удобно использовать Apache на Windows именно тем, кто ведет PHP веб разработку и тестирование CMS и при этом работает на Windows. Например, если вы постоянно работает на Windows, но вам нужно развернуть и протестировать сайт на PHP CMS, например, WordPress, Joomla или Yii.
В таком случае у вас есть несколько выборов:
- виртуальная машина VM с Linux, что затратно по времени развертывания и потреблению ресурсов системы;
- различные сборки Win+AMP;
- самостоятельно установить все необходимы компоненты Apache, MySQL, PHP на Windows и настроить, как если бы это было на Linux.
- Больше вариантов смотри в статье: «Как организовать среду для web разработки»
Использовать виртуальную машину с Linux это очень хороший вариант, но он не всегда удобен, т.к. сама по себе, работающая VM, будет забирать у вашей системы ресурсы, и при слабом железе вы столкнетесь с тормозами, что не добавить комфорта в работе. Так же, нужно будет полностью настроить Linux на VM как WEB сервер. Однако если ваш PC достаточно мощный для такого варианта, то такой подход будет, все же, лучшим решением.
Вариант использования уже готовых сборок Win+AMP тоже не лишен недостатков. Главный недостаток таких сборок в том, что они предлагают свою систему конфигурации Apache, MySQL и PHP, которая часто сильно отличается от нормального подхода при настройке Apache на реальном Linux сервере. Поэтому эти сборки, предлагая вроде бы как облегчение в конфигурации Apache, на самом же деле еще больше запутывают и ломают стандартный поход к конфигурации WEB сервера. Еще одни из недостатков готовых сборок Win+AMP — это привязанность к сайту разработчиков этих сборок, необходимость регистрироваться для получения дополнительных компонентов, а иногда и делать оплату или терпеть рекламу. И самое главное в том, что работая с такими сборками, трудно получить правильное представление о настройке Apache, MySQL и PHP, как это выполнялось бы на реальном Linux сервере. Соответственно, когда придется настраивать Apache и другие компоненты LAMP на реальном Linux сервере, придется заново переучиваться уже на правильные методы и подходы настройки и конфигурации Apache и других компонентов LAMP путем внесения изменений в конфигурационные файлы.
Что делать, если нет желания вникать в системы конфигурации этих сборок, a хочется настраивать и использовать web сервер Apache точно так же, как это делается на Linux сервере, т.е. использовать правильный и естественный подход правки конфигурационных файлов. Именно в этой ситуации, когда вы хотите работать с Apache на Windows точно так же, как и на Linux, самостоятельная, отдельная установка Apache и будет полезна и целесообразна, тем более, что делается это достаточно легко и стандартно, а настройка выполнятся точно также как на Linux сервере.
Как добавить поддержку PHP как обработчика сценариев в Apache на Ubuntu или Windows детально описано в статье Установка PHP7 на Windows в разделе Настройка Apache2.4 для работы с PHP.
Portable Apache на Windows
Apache не предоставляет официальных сборок под Windows, но есть исходники сервера и есть люди, которые делают и выкладывают сборки web сервера Apache для операционный системы Windows. В примерах этой статьи мною будет использоваться для получения таких сборок Apache для Windows сайт: Apache Haus — Your place for the Apache Server and Modules on Windows, на котором размещены для свободного скачивания сборки Apache для Windows на странице загрузки Apache Haus Downloads.
В целях безопасности и предотвращения заражения системы вирусами и троянами, рекомендую скачивать дистрибутивы только из официальных источников. Так же отдавайте предпочтение zip архивам для ручной инсталяции. И даже в этом случае, проверяете скачанные файлы актуальным антивирусом. На своем опыте неоднократно убедился, что в сети нередко предлагают дистрибутивы в виде .exe архива, который содержит вирусы или трояны.
Выбор сайта Apache Haus Downloads, как поставщика дистрибутива Apache, мною сделан не случайно по следующим причинам:
- во-первых, данный сайт находится в списке рекомендованных сайтов на сайте самого Apache, что повышает доверие к нему;
- во-вторых, дистрибутив Apache поставляется в виде zip архива, соответственно его можно легко проверить на вирусы и трояны, и быть уверенным в безопасности такой установки.
В примерах этой статьи будет выполнена инсталляция сборки Apache 2.4.23 x64, в состав которой входит: OpenSSL 1.0.2j, nghttp 1.15.0, Zlib 1.2.8 (mod_deflate), PCRE 8.39, APR 1.5.2, APR-Util 1.5.4, IPv6 and TLS SNI enabled на операционную систему Windows7 x64. Данная сборка выполнена с применением Visual Studio 2015 с использованием пакета VC14 — Visual C++ 2015 x64 Redistributable Package, который должен быть установлен в вашей системе. Компоненты VC14, обычно уже имеются в системе, но если они не установлены, то скачать VC14 для инсталляции можно на официальном сайте Microsoft по ссылке: Распространяемый компонент Microsoft Visual C++ 2015 Update 3 RC.
ШАГ 1 развертывание дистрибутива Apache
Выбор каталога установки Apache
Сборка Apache 2.4.23 x64 от Apache Haus поставляется в zip архиве и не имеет инсталлятора Windows, поэтому считается портативным (portable) вариантом дистрибутива Apache. Portable версия имеет ряд удобств и позволяет разместить дистрибутив в любом каталоге файловой системы и самостоятельно настроить запуск Apache так как вам нужно.
Рекомендую для разрешения дистрибутива Apache выбрать каталог, путь к которому будет содержать только EN символы и не будет иметь пробелов, т.к. этот путь станет для Apache значением ServerRoot директивы, в которой задается домашняя директория WEB сервера.
В примерах этой статьи и скринкаста дистрибутив Apache будет развернут в директорию «Z:\WebDevelopment\Apache24» и, соответственно, ServerRoot директива будет определена как «Z:/WebDevelopment/Apache24».
Формат значения пути в директиве ServerRoot следующий:
- слеши прямые и одинарные;
- завершающего слеша нет;
- если есть пробелы, то путь должен быть в кавычках («path_to»),
- на Linux значение чувствительно к регистру символов.
Структура дистрибутива Apache
Сборка Apache 2.4.23 x64 от Apache Haus имеет следующую структуру каталогов:
|Apache24....................Домашняя директория Apache - ServerRoot |-- bin..................Директория с бинарниками Apache | `-- ... | `-- ApacheMonitor.exe...Программа монитор для управления Apache как Windows службой | `-- httpd.exe...........Главный исполняемый файл web сервера Apache | `-- ... |-- cgi-bin.......Директория обработчика для CGI program |-- conf..........Директория с конфигурационными файлами Apache | `-- extra....Директория с дополнительными конфигами Apache, которые подключаются в httpd.conf | | `-- httpd-ahssl.conf | | `-- httpd-autoindex.conf | | `-- httpd-dav.conf | | `-- httpd-default.conf | | `-- httpd-deflate.conf | | `-- httpd-info.conf | | `-- httpd-languages.conf | | `-- httpd-manual.conf | | `-- httpd-mpm.conf | | `-- httpd-multilang-errordoc.conf | | `-- httpd-proxy-html.conf | | `-- httpd-ssl.conf | | `-- httpd-userdir.conf | | `-- httpd-vhosts.conf | `-- original........Директория исходных конфигов от Apache, добавлена в сборку для справки | `-- ssl.............Директория для SSL сертификатов | `-- charset.conv....Конфиг установки кодировки, подключаются в httpd.conf | `-- httpd.conf......Главный конфиг Apache в данной сборке от Apache Haus | `-- magic...........Конфиг скриптов для модуля mime_magic | `-- mime.types......Конфиг установки MIME типов | `-- openssl.cnf.....Конфиг OpenSSL |-- error................Директория с конфигами страниц ошибок для Apache |-- htdocs...............Директория и хост по умолчанию с документацией от Apache Haus |-- icons................Директория с иконками |-- include..............Директория служебных скриптов Apache |-- lib..................Директория вспомогательных библиотек |-- logs.................Директория файлов журналов Apache |-- modules..............Директория модулей Apache |-- ABOUT_APACHE.txt |-- CHANGES.txt |-- INSTALL.txt |-- LICENSE.txt |-- NOTICE.txt |-- OPENSSL-NEWS.txt |-- OPENSSL-README.txt |-- README.txt |-- readme_first.html......Краткий help от Apache Haus, лежит в корне zip архива
Данная сборка Apache 2.4.23 x64 от Apache Haus для Windows является полным дистрибутивом WEB сервера и содержит все необходимые исполняемые и конфигурационные файлы для полноценной работы Apache как веб сервера, включая и использование https соединения. Соответственно, установил эту сборку и настроив ее, вы получаете полный, со всеми модулями, web сервер Apache, который можете использовать не только для разработки и тестирования, но и для продуктивного хостинга сайтов на Windows.
В zip архиве данной сборки так же вложен файл readme_first.html, который содержит краткое описание компонентов данной сборки и их версий. Так же, в этом файле приведены краткие инструкции от Apache Haus по установке Apache, VC14, инсталляции Apache как системной службы и даны необходимые ссылки.
ШАГ 2 настройка Apache
Все конфигурационные файлы WEB сервера Apache данной сборки расположены в каталоге /Apache24/conf. Главным конфигом является файл /Apache24/conf/httpd.conf.
Для успешного запуска Apache, необходимо выполнить всего одну настройку в httpd.conf конфиге сервера, в строке №38, указать директиву ServerRoot, которая определяет путь к домашней директории вашей инсталляции Apache.
Указание ServerRoot
Для примеров этой статьи директива ServerRoot будет иметь значение:
Define SRVROOT "Z:/WebDevelopment/Apache24" ServerRoot "${SRVROOT}"
здесь в httpd.conf задание ServerRoot выполнено не напрямую, а через определение переменной SRVROOT. Это удобный способ, т.к. позволяет задавать путь единожды в начале конфига, а далее он будет уже применяться автоматически в нужных местах конфигурации через эту переменную.
После установки ServerRoot директивы WEB сервер Apache может быть успешно запущен и будет отображать страницу по умолчанию с документацией по адресу localhost. Все остальные настройки конфигурации Apache уже являются дополнительными и зависят от ваших потребностей.
Детали по конфигам Apache вы можете посмотреть в статьях «Обзор конфигурации Apache в Ubuntu» и «Главный config WEB сервера Apache в Ubuntu», т.к. вся логика, приемы настройки и значения директив будут в данном случае одинаковые как для конфигурации Apache на Windows, так и на Linux.
ШАГ 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 строку вида:
;Z:\WebDevelopment\Apache24\bin
Как добавить в переменную path путь к папке с исполняемым файлом детально расписано в статье Установка PHP7 на Windows в разделе ШАГ 2 размещение PHP в Windows на примере 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 шифрования.
ШАГ 4 инсталляция Apache как службы Windows
Приведенный выше способ запуска и остановки web сервера Apache прекрасно работает и им можно с успехом пользоваться, создав ярлык на исполняемый файл httpd.exe или написав .bat файлы с командами старта и остановки сервера. Однако более удобным вариантом будет использование Apache как системной службы Windows, что позволит запускать и останавливать Apache в автоматическом, полуавтоматическом режимах и вручную. Для этих действий можно будет использовать утилиту управления Apache службой Apache24\bin\ApacheMonitor.exe, которая входит в данный дистрибутив Apache. ApacheMonitor.exe это маленькая утилита, представлявшая собой оконную программку, висящую в системном трее и позволяющую выполнять запуск и остановку службы Apache и контролировать ее состояние. Такой подход дает некоторое удобство в работе с web сервером Apache как системной службой Windows. Поэтому, далее будут рассмотрены необходимые действия для установки Apache как системной службы Windows.
Для просмотра списка доступных команд Apache наберите в консоли:
>Z:\WebDevelopment\Apache24\bin\httpd help
или, находясь в каталоге с бинарниками Apache:
>httpd -h
и в консоли будет выведен краткий help по доступным командам Apache и их синтаксис:
>httpd -h
Usage: httpd [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-w] [-k start|restart|stop|shutdown] [-n service_name]
[-k install|config|uninstall] [-n service_name]
[-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
Options:
-D name : define a name for use in directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C "directive" : process directive before reading config files
-c "directive" : process directive after reading config files
-n name : set service name and use its ServerConfigFile and ServerRoot
-k start : tell Apache to start
-k restart : tell running Apache to do a graceful restart
-k stop|shutdown : tell running Apache to shutdown
-k install : install an Apache service
-k config : change startup Options of an Apache service
-k uninstall : uninstall an Apache service
-w : hold open the console window on error
-e level : show startup errors of level (see LogLevel)
-E file : log startup errors to file
-v : show version number
-V : show compile settings
-h : list available command line options (this page)
-l : list compiled in modules
-L : list available configuration directives
-t -D DUMP_VHOSTS : show parsed vhost settings
-t -D DUMP_RUN_CFG : show parsed run settings
-S : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
-t -D DUMP_MODULES : show all loaded modules
-M : a synonym for -t -D DUMP_MODULES
-t -D DUMP_INCLUDES: show all included configuration files
-t : run syntax check for config files
-T : start without DocumentRoot(s) check
-X : debug mode (only one worker, do not detach)
Рекомендация: используйте с данными командами полный путь до файла httpd.exe как в примерах ниже.
Для инсталляции Apache как системной службы Windows нужно выполнить в консоли команду:
>Z:\WebDevelopment\Apache24\bin\httpd.exe -k install
Для деинсталяции Apache как системной службы Windows нужно выполнить в консоли команду:
>Z:\WebDevelopment\Apache24\bin\httpd.exe -k uninstall
После установки Apache в качестве системной службы Windows вы можете настроить работу этой службы стандартным для всех служб Windows способом в Консоли управления Microsoft — оснастке services.msc запустив ее в cmd.exe командой:
>services.msc
или воспользовавшись другими стандартными способами:
- Меню Пуск, в строке поиска наберите services.msc и нажмите клавишу Enter;
- Нажмите сочетание клавиш Win+R, наберите services.msc и нажмите клавишу Enter;
- Через оконный интерфейс по пути: Пуск->Панель управления->Администрирование->Службы
Установленная служба Apache будет иметь:
- название: Apache2.4;
- описание: Apache/2.4.23 (Win64) OpenSSL/1.0.2j;
- тип запуска: Автоматически.
Настройте необходимый вам вариант запуска службы стандартным способом.
Так же, для управления службой Apache2.4 вы можете воспользоваться описанной выше программой из дистрибутива сервера Apache24\bin\ApacheMonitor.exe. Для этого запустите указанный файл ApacheMonitor.exe и воспользуйтесь для запуска или остановки Apache кнопками в окне данной программы. В свернутом состоянии эта программа ‘висит’ в системном трее в виде иконки состояния службы Apache и может быть от туда вызвана.
Скриншот запущенной программы ApacheMonitor.exe
На этом Portable инсталляция Apache на Windows из zip архива закончена, далее можно приступать к индивидуальной настройке web сервера и организации виртуальных хостов.
Смотри также:
Настройка работы PHP с web сервером Apache2.4 на Windows
Настройка виртуального хоста Apache
Еще, дополнительно, о настройке можно почитать на сайте Apache: CUSTOMIZING APACHE FOR WINDOWS.
In this tutorial, we will learn about how to check If Apache is installed. This is an essential task for web developers, system administrators, and anyone working with web servers. Apache, also known as Apache HTTP Server, is one of the most popular and widely used web server software worldwide. It powers a significant portion of websites on the internet.
Knowing whether Apache is installed on your system is crucial for troubleshooting, configuring server settings, and managing web applications. In this article, we will explore various methods to determine whether Apache is installed on different operating systems. Whether you are using a Linux-based or Windows-based system, we will provide you with step-by-step instructions and additional information to help you identify the presence of Apache on your system.
By understanding these methods, you will be able to confidently assess the availability of Apache on your system and proceed with the necessary actions related to web server management and maintenance. So, let’s delve into the ways to determine if Apache is installed on your system, empowering you to effectively work with this powerful web server software.
How can you determine whether Apache is installed on your system?
You can use secure remote access software like Bitvise to check the status of Apache and I shall tell you 5 methods to check that.
First Method
type
dpkg --get-selections | grep apache
and press enter.
Tech Delivered to Your Inbox!
Get exclusive access to all things tech-savvy, and be the first to receive
the latest updates directly in your inbox.
It lists all installed packages that contain “Apache” in their name. Besides, It indicates that the package apache2 is installed on the system.
Second method
Another way is by giving the command
systemctl status apache2
It shows the active status of Apache.
The third method is to Try the which command:
# which apache2
In my case, the Apache binary is located in /usr/sbin on most installations.
Fourth method
Another method for checking whether if apache is running or not (the status)
type:
sudo service apache2 status
The fifth method is to check
apt-cache policy apache2
In this case, you can see it’s installed on my system.
Apache in CyberPanel
Moreover, we have successfully implemented Apache integration. Our Apache integration combines OpenLiteSpeed with Apache at the backend. You might wonder why we would do this. Well, with this setup, you get the best of both worlds. You can enjoy the speed benefits of OpenLiteSpeed while also having access to all the features of Apache.
Benefits of Apache
For instance, if you are running customized apps or specific WordPress plugins that heavily rely on htaccess, then Apache would be necessary. It’s important to note that even with OpenLiteSpeed and Apache together, your LS cache will still work, ensuring maximum performance. On the frontend, OpenLiteSpeed will handle the traffic and pass it to Apache, which will handle the requests on the backend.
How to activate Apache while Creating Website?
Currently, this integration is supported for Alma Linux and Ubuntu. To use it, you simply need to create a website, go to the website creation page, enter your website’s details (e.g., staging.cyberpanel.net), select PHP, and choose Apache as the reverse proxy. This setup allows your website to operate in Apache’s reverse proxy mode while having OpenLiteSpeed in the frontend. Consequently, all your htaccess tools will function as they did when using cPanel or any other control panel.
How to Edit Apache settings?
Once the website is created, you can manage the Apache configuration for this site through our website manager. By accessing the Apache manager, you can even switch back to pure OpenLiteSpeed if desired. Additionally, if a website is currently using OpenLiteSpeed, it can be converted to use Apache instead. In the Apache manager, you have the ability to easily edit Apache configurations. However, be cautious when making changes, as incorrect configurations can result in website malfunctioning.
Enhance Your CyerPanel Experience Today!
Discover a world of enhanced features and show your support for our ongoing development with CyberPanel add-ons. Elevate your experience today!
How to Edit PHT-FPM settings?
Since our Apache configurations use PHP-FPM, you can modify PHP-FPM configurations specific to Apache as well. If Apache is installed, you will find the default URL for editing LightSpeed PHP configurations. To edit Apache PHP configurations, simply click on the provided URL. This will allow you to perform tasks similar to what you did with LightSpeed configurations, such as modifying post max size and upload max file size. An advanced configuration editor is also available for your convenience.
How to Install Apache Extensions?
Moreover, you can install PHP extensions for Apache too. You’ll find the “Manage Apache Extensions” link, which provides LightSpeed extensions for Apache. Clicking on it allows you to install Apache extensions for your chosen PHP version.
Как проверить включен ли Apache. Как проверить, запущен ли Apache: Подробное руководство для начинающих и не только 👨💻
👈🏻Раскрыть🤕Apache — это невероятно популярный веб-сервер с открытым исходным кодом, который обеспечивает работу огромного количества веб-сайтов в интернете 🌐. Он выступает в роли посредника между вашим компьютером 💻 (или смартфоном 📱) и сервером, на котором хранятся файлы сайта. Когда вы вводите адрес сайта в браузере, Apache обрабатывает ваш запрос и отправляет вам нужные файлы, позволяя вам видеть веб-страницы 📄.
Но что делать, если вы сами администрируете сервер с Apache и вам нужно проверить, работает ли он корректно? 🤔 Существует несколько простых способов сделать это, и мы подробно рассмотрим каждый из них, снабдив понятными объяснениями и примерами.
Для просмотра нужного раздела перейдите по ссылке:
➡️ Проверка работы Apache с помощью Systemd (Linux) 🐧
➡️ Проверка работы Apache в Windows 🪟
➡️ Дополнительные проверки работы Apache 🔎
➡️ Выключение и перезапуск Apache 🛑▶️
➡️ Проверка версии Apache 🔢
➡️ Просмотр логов Apache 📖
➡️ Советы по работе с Apache 💡
➡️ Заключение 🎉
➡️ Часто задаваемые вопросы (FAQ) ❓
📝 Детали
👋 Хотите узнать, запущен ли веб-сервер Apache на вашем Linux-сервере? 🤔 Легко! Используйте мощь команды `systemctl`. 💪
💻 Откройте терминал и введите следующую команду:
«`bash
sudo systemctl status apache2
«`
💡 Не забудьте заменить `apache2` на имя вашего сервиса Apache, если оно отличается.
👀 Результат покажет вам, активен ли Apache:
🟢 active (running) — Apache запущен и работает! 🎉 Ваши сайты доступны в сети.
🔴 inactive (dead) — Apache не запущен. 💤 Вам нужно будет запустить его вручную или настроить автозапуск.
🔄 active (reloading) — Apache перезагружается. 🔄 Это может занять несколько секунд, после чего он снова будет доступен.
🔍 Команда `systemctl status` также предоставит вам дополнительную информацию, такую как:
✅ Время последнего запуска сервиса
✅ Используемые ресурсы (CPU, память)
✅ Путь к файлу конфигурации
✅ Логи работы сервиса
📚 Изучение команды `systemctl` — это важный шаг в освоении Linux. Она позволяет управлять всеми сервисами системы, включая Apache. 🧰
Проверка работы Apache с помощью Systemd (Linux) 🐧
Systemd — это система управления службами в Linux, которая позволяет запускать, останавливать и проверять состояние различных сервисов, включая Apache. Чтобы проверить, запущен ли Apache с помощью Systemd, выполните следующие действия:
- Откройте терминал.
- Введите команду `sudo systemctl status apache2` и нажмите Enter. Замените `apache2` на имя службы Apache, если оно отличается в вашей системе.
- Если Apache запущен и работает корректно, вы увидите зеленый значок ✅ и статус `active (running)`.
- Если Apache не запущен, вы увидите красный значок ❌ и статус `inactive (dead)`.
Проверка работы Apache в Windows 🪟
В Windows для проверки работы Apache можно воспользоваться командной строкой:
- Откройте командную строку от имени администратора.
- Перейдите в каталог, где установлен Apache. Например, если Apache установлен в `C:\Apache24`, введите команду `cd C:\Apache24\bin`.
- Введите команду `httpd -k start` и нажмите Enter.
- Если Apache запустился успешно, вы увидите соответствующее сообщение.
- Если возникли ошибки, они будут отображены в командной строке.
Дополнительные проверки работы Apache 🔎
Помимо проверки статуса службы, существуют и другие способы убедиться, что Apache работает корректно:
- Откройте браузер и введите IP-адрес вашего сервера. Если Apache работает, вы увидите страницу приветствия Apache по умолчанию.
- Проверьте файл конфигурации Apache. Убедитесь, что в нем нет ошибок и все настройки указаны верно.
- Просмотрите логи Apache. В логах могут содержаться сообщения об ошибках или предупреждения, которые помогут вам диагностировать проблемы.
Выключение и перезапуск Apache 🛑▶️
Иногда для решения проблем с Apache требуется его перезапустить. В Linux это можно сделать с помощью Systemd:
- Остановка Apache: `sudo systemctl stop apache2`
- Запуск Apache: `sudo systemctl start apache2`
- Перезапуск Apache: `sudo systemctl restart apache2`
В Windows для остановки и запуска Apache можно воспользоваться командами `net stop Apache2.4` и `net start Apache2.4` соответственно (замените `Apache2.4` на фактическое имя службы).
Проверка версии Apache 🔢
Чтобы узнать, какая версия Apache установлена на вашем сервере, выполните следующие действия:
Linux:
- Откройте терминал.
- Введите команду `apache2 -v` и нажмите Enter.
- Эта команда выведет номер версии Apache.
- Для получения более подробной информации, включая параметры компиляции, используйте команду `apache2 -V`.
Windows:
- Откройте командную строку.
- Перейдите в каталог, где установлен Apache.
- Введите команду `httpd -v` и нажмите Enter.
- Эта команда отобразит версию Apache.
- Для получения подробной информации о конфигурации, используйте команду `httpd -V`.
Просмотр логов Apache 📖
Логи Apache — это ценный источник информации о работе сервера. В них записываются все запросы к серверу, ошибки, предупреждения и другая полезная информация.
Linux:
Логи Apache в Linux обычно находятся в каталоге `/var/log/apache2/`. Основные файлы логов:
- access.log: Содержит информацию о всех запросах к серверу, включая IP-адрес клиента, время запроса, URL-адрес запрашиваемого ресурса и код ответа сервера.
- error.log: Содержит информацию об ошибках, возникающих во время работы Apache.
Windows:
Расположение логов Apache в Windows может варьироваться в зависимости от версии и настроек установки. Обычно они находятся в подкаталоге `logs` в каталоге установки Apache.
Советы по работе с Apache 💡
- Регулярно обновляйте Apache. Новые версии исправляют ошибки безопасности и повышают производительность.
- Настройте Apache для обеспечения безопасности. Используйте HTTPS, ограничьте доступ к конфиденциальным файлам и следите за обновлениями безопасности.
- Мониторьте работу Apache. Используйте инструменты мониторинга, чтобы отслеживать производительность сервера и выявлять потенциальные проблемы.
Заключение 🎉
Проверка работы Apache — это важная задача для любого администратора сервера. Используя описанные выше методы, вы сможете легко убедиться, что ваш сервер Apache работает корректно и готов обслуживать посетителей вашего сайта. Помните о важности регулярного обновления, настройки безопасности и мониторинга работы сервера для обеспечения его стабильной и безопасной работы.
Часто задаваемые вопросы (FAQ) ❓
- Что делать, если Apache не запускается?
- Проверьте файл конфигурации Apache на наличие ошибок.
- Просмотрите логи Apache на наличие сообщений об ошибках.
- Убедитесь, что порт, используемый Apache, не занят другим приложением.
- Как изменить порт, используемый Apache?
- Откройте файл конфигурации Apache.
- Найдите директиву `Listen` и измените номер порта.
- Сохраните файл конфигурации и перезапустите Apache.
- Как защитить Apache от атак?
- Используйте HTTPS для шифрования трафика между сервером и клиентом.
- Ограничьте доступ к конфиденциальным файлам и каталогам.
- Установите брандмауэр и настройте его для защиты сервера.
- Регулярно обновляйте Apache и все установленные модули.
- Где найти дополнительную информацию об Apache?
- Официальный сайт Apache: httpd.apache.org
- Документация Apache: httpd.apache.org/docs/
- Форумы Apache: httpd.apache.org/community.html
💎 Как отключить https Apache
💎 Как остановить Apache Windows
💎 Как отключить сервер Apache
💎 Как запустить apache2
Apache HTTP-сервер представляет из себя кроссплатформенное программное обеспечение, назначение которого прежде всего это – размещение сайтов. Веб-сервер Apache поддерживает различные операционные системы, в том числе и Windows. Здесь разберём, как установить и настроить Apache для работы веб-страницы на Windows Server. В качестве примера будем использовать виртуальный выделенный сервер под управлением Windows Server 2022.
Предварительные работы
Перед тем, как приступить непосредственно к настройке веб-сервера, необходимо установить пакет Visual C++, содержащий компоненты среды, необходимые для запуска приложений C++, а именно, Visual C++ Redistributable for Visual Studio 2015. Данный пакет требуется для запуска Apache. Чтобы получить дистрибутив, перейдите по ссылке, где кликните Download.
В следующем окне отметьте 64-х разрядную версию дистрибутива и ещё раз нажмите Download.
После чего запустите на выполнение загруженный установщик, где активируйте согласие с условиями соглашения, затем нажмите Install.
Загрузка и установка веб-сервера
Теперь можно обратиться к установке непосредственно веб-сервера. Zip-архив Apache доступен на его странице загрузки. Перейдите на неё и кликните в строку, содержащую 64-х битную версию веб-сервера.
По окончании загрузки архива извлеките из него каталог Apache24. В нашем примере мы сохраняем его на диске C:. Таким образом, файлы веб-сервера будут располагаться в папке C:\Apache24\. При этом вы можете сохранить каталог в любое другое удобное для вас место и даже переименовать его по вашему усмотрению.
Настройка веб-сервера
Далее, переходим к настройке конфигурации Apache. Для этого необходимо внести изменения в конфигурационный файл httpd.conf, который расположен в папке conf каталога веб-сервера. Откройте файл для редактирования и прежде всего найдите строку Define SRVROOT "C:/Apache24". После чего приведите её в соответствие с тем, куда вы разместили и как переименовали каталог Apache24. В нашем примере изменять данную строку необходимости нет.
Если в установленной версии конфигурационного файла отсутствует параметр Define SRVROOT, то имя каталога необходимо прописать в следующих строках, заменив значение ${SRVROOT} на путь к директории веб-сервера:
ServerRoot "${SRVROOT}"DocumentRoot "${SRVROOT}/htdocs"<Directory "${SRVROOT}/htdocs">ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
Затем найдите строку, которая содержит Options Indexes FollowSymLinks, и дополните её ещё одним значением, чтобы строка выглядела следующим образом:
Options Indexes FollowSymLinks ExecCGI
Далее, необходимо разрешить веб-серверу выполнять файлы .cgi и .pl. Это должно позволить запускать CGI- и Perl-скрипты вне директории cgi-bin. Для этого отыщите следующую строку:
#AddHandler cgi-script .cgi
И в начале строки удалите символ #, тем самым актировав данную настройку. Следующей строкой добавьте ещё одну:
AddHandler cgi-script .pl
Кроме того, в самый конец конфигурационного файла добавьте строку, определяющую расположение Perl из системного реестра:
ScriptInterpreterSource Registry
Для применения внесённых изменений сохраните файл httpd.conf.
Запуск веб-сервера
На следующем шаге мы попробуем запустить веб-сервер. Сделать это можно из командной строки или из оболочки PowerShell. В первом случае откройте командную строку, для чего используйте комбинацию клавиш Win R, либо строку поиска, где наберите cmd.
В открывшейся командной строке запустите исполняемый файл httpd.exe из директории bin, расположенной в каталоге веб-сервера:
C:\Apache24\bin\httpd.exe
Запуск командной оболочки PowerShell так же производится при помощи клавиш Win R или строки поиска, где следует набрать powershell. Активация веб-сервера производится командой:
& "C:\Apache24\bin\httpd.exe"
Чтобы убедиться, что веб-сервер работает, откройте на вашем VPS браузер и перейдите в нём по адресу http://localhost:
Настройка брандмауэра
На этом этапе страница, запущенная на нашем веб-сервере, работает исключительно при доступе с VDS. При этом доступ к странице извне закрыт брандмауэром виртуальной машины. Для того, чтобы это исправить, необходимо добавить в брандмауэр разрешающее правило для Apache.
Запуск брандмауэра осуществляется с использованием опять же комбинации Win R, где следует набрать firewall.cpl. После открытия окна Windows Defender Firewall кликните в строку Advanced settings.
В открывшемся окне перейдите в Inbound Rules и кликните в New Rule.
В стартовом окне мастера активируйте строку Program и нажмите Next.
Затем при помощи кнопки Browse выберите файл httpd.exe из каталога bin, после чего нажмите Next.
В следующем окне отметьте все чекбоксы и снова нажмите Next.
И наконец, в строке Name укажите название нового правила и для его сохранения кликните Finish.
Теперь ваша веб-страница будет доступна из сети в том числе и с вашей локальной рабочей станции. Чтобы перейти к ней наберите в адресной строке браузера IP-адрес вашего удалённого сервера или имя домена, A-запись которого настроена на этот IP-адрес.
Запуск Apache как службы
На данном этапе необходимо произвести запуск веб-сервера так, чтобы он функционировал как служба. Это позволит отказаться от использования командной строки и оболочки PowerShell для запуска Apache, поскольку веб-сервер будет работать в фоновом режиме. Для этого откройте командную строку, перейдите в каталог bin и запустите файл httpd.exe со следующими параметрами:
httpd.exe -k install
Таким образом, Apache теперь будет работать как служба и проверить это можно в менеджере служб. Чтобы это сделать используйте комбинацию клавиш Win R, где введите services.msc. В списке найдите службу Apache2.4, откройте её и убедитесь, что служба запущена. Если это не так, нажмите Start.
