Установка apache windows 2019

Веб-сервер Apache поддерживает различные операционные системы, в том числе и Windows.
Здесь разберём, как установить и настроить Apache для публикации баз 1С на Windows Server.
В качестве примера будем использовать выделенный сервер с установленным сервером 1С под управлением Windows Server 2019.

Сборка Апач 2.4.62-240718 Win64 работает с использованием новейшей версии Windows® Visual Studio C++ 2022, также известной как VS17.
Имеет улучшения, исправления и оптимизации по сравнению с VS16 в таких областях, как производительность, управление памятью, новые функции соответствия стандартам,
генерация кода и стабильность. Например, настройка качества кода и улучшения, выполненные в различных областях генерации кода для «скорости».
И более эффективно использует новейшие процессоры и поддерживаемые внутренние функции выпусков Windows.

Инструкция по установке

  1. Установить последнюю версию Visual C++ Redistributable Visual Studio 2015-2022 (на момент написания статьи — это версия 14.40.33810).

  2. Загрузить и установить веб-сервер Apache 2.4

  3. Настроить и запустить веб-сервер Apache 2.4

  4. Настроить брэндмауэр.

  5. Запустить Apache как службу.

  6. Настроить SSL- сертификаты для сервера Apache.

  7. Настроить публикации баз 1С для доступа по https протоколу.

Подготовительные работы

Перед установкой Апач 2.4 на Windows Server необходимо установить последнюю версию
Visual C++ Redistributable Visual Studio 2015-2022 (на момент написания статьи — это версия 14.40.33810).
Для этого качаем распространяемый компонент Microsoft Visual C++ для Visual Studio 2022 с официального сайта:

После чего запустите на выполнение загруженный установщик, где активируйте согласие с условиями соглашения, затем нажмите Install / Установить.

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

Установим веб-сервер скачав архив Apache2.4 непосредственно с сайта загрузки Apache Lounge.
Выбираем 64-х битную версию веб-сервера.

Распакуем скачанный Архив в директорию C:/Apache24 или вы можете сохранить каталог в любое другое удобное для вас место и даже
переименовать его по вашему усмотрению.

Настройка веб-сервера

Теперь настроем конфигурации Apache. Для этого необходимо отредактируем конфигурационный файл httpd.conf,
который расположен в директории веб-сервера: /Apache24/conf/ .
Откройте файл для редактирования и прежде всего найдите строку Define SRVROOT "C:/Apache24".
и если вы разархивировали веб-сервер в другой каталог укажите путь, куда вы разместили и как переименовали каталог Apache24.
в этом примере директория веб-сервера не изменилась.

Если в установленной версии конфигурационного файла отсутствует параметр Define SRVROOT,
то имя каталога необходимо прописать в следующих строках, заменив значение ${SRVROOT} на путь к директории веб-сервера:

ServerRoot "${SRVROOT}"

DocumentRoot "${SRVROOT}/htdocs"

<Directory "${SRVROOT}/htdocs">

ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"

Если нам требуется выполнять CGI- и Perl-скрипты вне директории 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.

Запуск веб-сервера Apache24

На следующем шаге запустим веб-сервер. Сделать это можно из командной строки или из оболочки PowerShell.

Запуск из командной строки

В первом случае открываем командную строку, для чего используем комбинацию клавиш Win R, либо строку поиска, где наберираем cmd.

В открывшейся командной строке запустите исполняемый файл httpd.exe из директории bin, расположенной в каталоге веб-сервера:

C:\Apache24\bin\httpd.exe

Запуск командной оболочки PowerShell так же производится при помощи клавиш Win R или строки поиска,
где следует набрать powershell. Активация веб-сервера производится командой:

& "C:\Apache24\bin\httpd.exe"

Проверим, что веб-сервер работает, откроем браузер по адресу http://localhost:

Должны увидеть картинку:

Настройка брандмауэра

Пока доступ к веб-серверу предоставлен исключительно локально. При этом доступ к странице извне закрыт брандмауэром Windows server.
Для того, чтобы доступ к веб-серверу был извне, необходимо добавить в брандмауэр разрешающее правило для нашего Apache.

Доступ к брандмауэру осуществляется нажатием парвой кнопки мыши по кнопке “Пуск”, где необходимо выбрать “Выполнить” или
с использованием комбинации Win R, где следует набрать firewall.cpl.
После открытия окна Windows Defender Firewall кликните в строку Advanced settings / Дополнительные параметры.

В открывшемся окне выберем Inbound Rules / Правилая для входящих подключений и кликнем New Rule / Создать правило.

В стартовом окне мастера активируйте строку Для программ и нажмите Далее.

Далее при помощи кнопки Обзор… выберите файл httpd.exe из каталога C:\Apache24\bin, после чего нажмите Далее и в следующем окне еще раз Далее

в шаге “Профиль” проверим, что выбраны все чек-боксы и нажимаем Далее

И в конце дадим имя нашему правилу, в строке “Имя:»» укажем название нового правила например Apache24 и для его сохранения нажимаем Готово.

Теперь наш веб-сервер доступен из Интернет.

Настроим Apache как службу

Использование Apache как службы Windows позволит автоматизировать запуск веб-сервера Apache после перезагрузки,
поскольку веб-сервер будет работать в фоновом режиме.

Для этого откроем командную строку (Выполнить cmd), перейдем в каталог C:\Apache24\bin и запустим файл httpd.exe со следующими параметрами:

Таким образом, Apache теперь будет работать как служба и проверить это можно в менеджере служб. Чтобы это сделать используйте комбинацию клавиш Win R, где введите services.msc.
В списке найдите службу Apache2.4, откройте её и убедитесь, что служба запущена. Если это не так, нажмите Start.

Настроим ssl-сертификат

Получение сертификата

Наиболее простым способом установки SSL-сертификата от Let’s Encrypt является применение консольной утилиты WACS (Windows ACME Simple).
WACS позволяет осуществить автоматический выпуск и привязку SSL-сертификата к сайтам, работающим на IIS и Apache.
На момент написания данной статьи актуальной версией утилиты являлась версия v2.2.9.1.
Загрузка клиента WACS доступна со страницы проекта на GitHub – https://github.com/win-acme/win-acme/releases.

Настроим публикацию баз 1С на сервере

Так же для запуска веб-сервисов 1С проведем корректировки

Раскоментируем модули:

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

LoadModule ssl_module modules/mod_ssl.so

Мы включили модуль ssl так как для доступа к опубликованным базам 1С будем испольлзовать https протокол

И добавим _1cws_module модуль, указав при этом адрес до библиотеки wsap24.dll, установленной вместе с 1С сервером:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1336/bin/wsap24.dll"

Обратите внимание, что в конфигурации Апач все слэши в пути — обратные!

Вместо ServerName добавим:

<VirtualHost *:80>

ServerName domen.name:80

Redirect / https://domen.name/

</VirtualHost>

где domen.name — Ваш домен.

в блок

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

необходимо добаить строчку

И включим ссылку на конфигурационный индивидуальный файл:

# Secure (SSL/TLS) connections

Include conf/domen.name.conf

Вместо domen.name — укажите Ваш домен.

Подготовим наш конфигурационный файл

Listen 443 https

# SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES

# SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES

# SSLHonorCipherOrder on

# SSLProtocol all -SSLv3

# SSLProxyProtocol all -SSLv3

# SSLPassPhraseDialog builtin

<VirtualHost ip_adress:443>

DocumentRoot "${SRVROOT}/htdocs"

ServerName domen.name:443

ServerAdmin support@domen.name

ErrorLog "${SRVROOT}/logs/error.log"

TransferLog "${SRVROOT}/logs/access.log"

SSLEngine on

SSLCertificateFile "${SRVROOT}/conf/ssl/domen.name-chain.pem"

SSLCertificateKeyFile "${SRVROOT}/conf/ssl/domen.name-key.pem"

<FilesMatch "\.(cgi|shtml|phtml|php)$">

SSLOptions +StdEnvVars

</FilesMatch>

<Directory "${SRVROOT}/cgi-bin">

SSLOptions +StdEnvVars

</Directory>

# -------------- 1c public configurations section ----------------------------

# 1c publication

Alias "/pb_ka3" "C:/public1c/bp_ka3/"

<Directory "C:/public1c/bp_ka3/">

AllowOverride All

Options None

Require all granted

SetHandler 1c-application

ManagedApplicationDescriptor "C:/public1c/bp_ka3/default.vrd"

</Directory>

# в этом месте добавляем публикации каждой базы

# -------------- end of 1c public configurations section ----------------------------

BrowserMatch "MSIE [2-5]" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

CustomLog "${SRVROOT}/logs/ssl_request.log" \

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

Корректируем и сохраняем в папку /conf/

Чтобы настройки применились, необходимо перезапустить веб-сервер (Службу Apache24)

Подробней о настройке автоматического получения бесплатного SSL-сертификата от Let’s Encrypt к сайтам, работающим на IIS и Apache

In this article, we want to teach you How To Install and Configure Apache on Windows Server 2019.

Apache is the most widely used web server software. It is open-source software available for free. It is fast, reliable, and secure.

Also, it can be highly customized to meet the needs of many different environments by using extensions and modules.

Most WordPress hosting providers use Apache as their web server software. However, WordPress can run on other web server software as well.

To set up Apache on your Windows Server 2019, you can follow the steps below.

First, you need to download Apache from the ApacheLounge.

Depending on your Windows Server, choose the 32 or 64-bit version of windows.

Download Apache for windows

Note: Be sure you installed the latest 14.30.30704 Visual C++ Redistributable for Visual Studio 2015-2022.

When your download is completed, open your downloaded file and extract it to a suitable location like c:/Apache24 or etc.

Now you need to make some configuration changes.

Configure Apache

Now that you have extracted Apache on your Windows server, you need to configure it.

Open the conf subdirectory and open the httpd.conf file with a text editor like notepad.

We assume that you have extracted the file in the c:/Apache24.

You need to update the ${SRVROOT} variable point to the new location like this:

Define SRVROOT "C:/Apache24"

Also, you need to locate the following lines and change them to the new location that you have extracted Apache:

ServerRoot "C:/Apache24"
DocumentRoot "C:/Apache24/htdocs" 
<Directory "C:/Apache24/htdocs"> 
ScriptAlias /cgi-bin/ "C:/Apache24/cgi-bin/"

After that you need to uncomment and set the server name point to your server name or its IP address:

ServerName www.example.com:80

Next, locate the following line and add the “ExecCGI” in front of it:

Options Indexes FollowSymLinks ExecCGI

After that, find the line below and uncomment it by removing the # from the beginning of the line:

AddHandler cgi-script .cgi

And also add the following line:

AddHandler cgi-script .pl

At the end of the file add the following line:

ScriptInterpreterSource Registry

When you are done, save and close the file.

Now you can start Apache on your Windows Server 2019.

Open a command/PowerShell prompt in the “bin” folder at the location where you extracted Apache.

In a command prompt you can start Apache with the following command:

httpd.exe

You can start Apache in a PowerShell prompt with the following command:

& "c:\Apache24\bin\httpd.exe"

Now you can verify that your Apache is running on your server by typing 127.0.0.1 in your web browser.

http://127.0.0.1

You will see:

Check Apache on Windows Server

If you see this in your web browser means that your Apache is running on your Windows Server 2019.

Conclusion

At this point, you learn to set up and configure Apache on Windows Server 2019.

Hope you enjoy using it.

Hello, in this post we will talk about Apache and how to install in Windows Server 2019. This is a very popular web server; and what is it?, it is a software designed to transfer hypertext data, that is, web pages with all their elements (texts, widgets, banners, etc.) through the HTTP protocol. Specifically, Apache is a free and Open Source web server, running under GPL license and that has as an interesting feature, being multiplatform, that is to say, it can be operated in Windows, Linux, and MAC Os. In addition, it executes HTTP/1.1 protocol and for Being Open Source, anyone can modify its code. In the same way, it is maintained by the developer´s user community that works under the guidance of the Apache Software Foundation. It is still, one of the most used web servers, with almost 50% of penetration in the net

How to install and configure Apache on Windows Server 2019

Firstly, we need to download Microsoft Visual Studio C++ 2019, we can do it from here. Please install and reboot the server.

Installing Visual C++

Now, we need to download Apache. Note that, the Apache HTTP Server Project itself does not provide binary releases of software, only source code. Individual committers may provide binary packages as a convenience, in addition, we can obtain a binary package from binary distributions available on the Internet. In our particular case, we will work with Apache Lounge version. The binaries can be downloaded from here.

Unzipping Aàche´s binaries

Installing Apache

The binaries came into a ZIP file, in order to installed it, we need to unzip in the root directory of the drive, in our case it is C:\Apache24. Now open a CMD with privileges of administrator, to do that just type on search bar cmd, when Command Prompt appears, right-click on it to run as administrator.

Run CMD as administrator

On the cmd, we have to navigate to C:\Apache24\bin by using cd command

cd..
cd Apache24 
cd bin

Next, run the program by typing httpd.exe. If there are no errors, the cursor will sit and blink on the next line. Now we can check our installation by typing in browser´s address: http://localhost, a very clear message (It works) will indicate, that everything is fine.

Apache starting and running
http://localhost on the address browser. Confirmation message: it works!

In order to shut down Apache, we go back to CMD and press control+C.

Installing Apache as a system service

Once that we confirmed the Apache server is working and shut it down, we are ready to install it as a system service. To achieve that, we need to open a Command Prompt window as administrator in the same location before and type:

 httpd.exe -k install -n "Apache HTTP Server" 
Setting Apache as a system service

Then, in another CMD window we have to enter the next command:

 services.msc 

Now we can see all of windows services, look for Apache HTTP Server and check if the Startup Type is Automatic. Now restart the server, log back in again, and go to this page in the browser’s URL bar: http://localhost/

Configuring Windows’ Firewall

Ok, we already have installed Apache as system service, now we need to configure the windows´firewall to allow connections from the internet to our web server. With this intention, we must open the firewall an create a new rule. Let is see how to do it.

In this case, we click on Windows Start and type firewall to open it

Starting the Windows Firewall with Advanced Security

Click on Inbound Rules and then in New Rule

Creating a new rule on windows firewall

Select Port in Rule Type and press Next.

Selecting Port in the type of rule

In the next window, select TCP and Specific local ports and put this number on the input box: 80, 443, 8080 and press next.

Selecting local ports to allow connections

Select Allow the connection.

Allow the connection

Check in all the boxes, to apply rules at Domain, Private and Public.

Apply to all the options

Assing a name relatively to the rule we just created. For example: Allow incoming connections in Apache and click finish.

Assigning rule name

Now we can try connecting from another device, by open in a browser the IP address of our server. In my case http://192.168.1.59/. Well, as can be seen, our apache server is configured and ready to use. From now, we can install PHP module or MySQL. Also, we invited you to check our tutorial about FTP servers

— Advertisement —

Everything Linux, A.I, IT News, DataOps, Open Source and more delivered right to you.

Subscribe

«The best Linux newsletter on the web»

Введение

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‑адрес.

Скриншот панели управления Selectel: создание сервера и получение IP‑адреса.

Панель управления Selectel.

Для работы веб-сервера Apache в системе должен быть установлен пакет Microsoft Visual C++ Redistributable, который необходим для запуска приложений, созданных в Microsoft Visual Studio. Подробная информация и ссылки для скачивания различных версий можно найти на странице Microsoft. Мы воспользуемся последним выпуском для платформы x64, ссылку на который копируем в буфер обмена.

Переходим к работе с сервером. В нашем случае он называется Wendy.

Скриншот панели управления Selectel: сервер создан.

Почти вся дальнейшая работа будет выполняться в консоли панели управления. Взаимодействие с операционной системой Windows Server осуществляется через графический интерфейс. Наиболее удобный способ дистанционно работать с ОС Windows — воспользоваться одной из программ, предназначенных для обмена данными по протоколу RDP.

RDP (Remote Desktop Protocol) — это протокол удаленного доступа, разработанный Microsoft. Он позволяет подключаться к другому компьютеру через сетевое соединение, видеть его экран и взаимодействовать с ним через интерфейс программы.

В операционных системах от Microsoft уже встроена утилита «Подключение к удаленному рабочему столу». Также существуют RDP-клиенты для macOS, Linux, Android и iOS.

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

Скриншот рабочего стола удаленного сервера панели в управления Selectel.

Запускаем Internet Explorer и вставляем в адресную строку скопированную ранее ссылку на последнюю версию Visual C++ Redistributable, сохраняем пакет и запускаем установщик.

Скриншот принятия лицензионного соглашения для установки дополнительного ПО Microsoft.

Установка Apache

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

Скриншот страницы сайта, предоставляющего сборку Apache для Windows.

Выбирая место на диске для размещения Apache, следует иметь в виду один нюанс. Пакет сконфигурирован так, что без дополнительных действий он будет работать только при установке в корневую папку директории C:\, то есть главный исполняемый файл httpd.exe оказывается в каталоге C:\Apache24\bin. В противном случае, в файле Apache24\conf\httpd.conf необходимо переопределить переменную SRVROOT: изменить значение по умолчанию «c:/Apache24» на актуальный путь файлов веб‑сервера.

    Define SRVROOT "c:/Apache24"

Обратите внимание, что для обозначения пути используется слэш, а не обратный слэш!

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

Продолжим работу в консоли. Проверим работоспособность веб-сервера. Перейдем в каталог, где находится файлы Apache (по умолчанию, это C: \Apache24) и запустим приложение:

    &gt; cd C:\Apache24
&gt; .\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

Install Apache on Windows Server 2022, 2019


Windows Server 2022 (in the Insider phase) is composed of numerous roles and functions that facilitate the management of objects in the domain, but it is possible to add many more functionalities to the server to carry out special tasks, one of these options is to install Apache on Windows Server..

Apache Server gives us the opportunity to set up an open source HTTP server so that users can host and manage their applications, this is achieved with a secure and extensible server where HTTP services are available that are compatible with today’s HTTP standards.

Apache Server

Apache Server offers us features such as:

  • Asynchronous support.
  • General Purpose Expression Analyzer
  • Integration of more than 20 new modules
  • Loading multiple MPMS at runtime
  • Includes the FastCGI daemon as a startup utility
  • Administration of logs or events
  • Allows the configuration of a virtual hosting based on IP
  • We can add access restrictions to certain files and more

We are going to see how to install Apache on Windows Server 2022 to increase its functionalities..

To stay up to date, remember to subscribe to our YouTube channel!   SUBSCRIBE

Install Apache on Windows Server 2022, 2019

Step 1

We right-click on the Start menu and select the «System» option:

image

Step 2

This in order to see the architecture of the system, in this case 64-bit:

image

Step 3

Now we go to the C ++ website:

 C ++

Step 4

There we download the latest version Suitable based on the architecture of our server:

image

Step 5

Run the installer once the download is finished, the following wizard will open:

image

Step 6

We accept the license and click «Install» to start the process:

image

Step 7

At the end we will see the following. We click Close to exit the wizard.

image

Step 8

Now we go to the Apache URL in the following link:

 Apache

image

Step 9

We click on «Download» and then we will see the following:

image

Step 10

There we click on the line «Files for Microsoft Windows» to be redirected to the following window:

image

Step 11

We click on «Apache Lounge» to download the ZIP file:

image

Step 12

Apache Lounge takes care of delivering binaries for Windows in an up-to-date way.
Once downloaded we go to the path and extract the content of the file by right clicking and selecting «Extract all»:

image

Step 13

The extraction process will start:

image

Step 14

We copy the Apache folder:

image

Step 15

We paste this in drive C:

image

Step 16

We access the folder to see its content:

image

Step 17

We access the command prompt as administrator:

image

Step 18

In the console we enter «cd C: \ apache24 \ bin \»:

image

Step 19

We install Apache with the command «httpd -k install»:

image

Step 20

After this we go to the Apache folder and open «htdocs» where we see the index file:

image

Step 21

With the notepad, observe the content of the index which will be the one we see when accessing from a browser:

image

Step 22

Now we enter «services» in the Start menu:

image

Step 23

We right click on Apache 24 and select the «Start» option:

image

Step 24

After this, a After browser we enter «localhost» and we will see the text of htdocs:

image

This has been the process to install Apache on Windows Server 2022.


Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Настройка asio в windows 10
  • Бесплатный апгрейд до windows 11
  • Записать установочную флешку windows 10 ультра исо
  • String to windows 1251
  • Hp designjet 500 plus драйвер windows 10 x64