Како да го инсталирате веб-серверот Apache на Debian 11


Вовед

Apache HTTP серверот е најкористениот веб-сервер во светот. Обезбедува многу моќни функции, вклучително и динамично вчитани модули, силна медиумска поддршка и обемна интеграција со друг популарен софтвер.

Во ова упатство, ќе инсталирате веб-сервер на Apache на серверот Debian 11.

Предуслови

Пред да започнете со ова упатство, ќе ви треба сервер Debian 11 поставен со корисник кој не еroot со привилегии sudo и заштитен ѕид овозможен за блокирање на несуштинските порти. Можете да научите како да го направите ова следејќи го нашиот првичен водич за поставување сервер за Debian 11.

Откако ќе завршите со поставувањето, најавете се како ваш неroot корисник и продолжете до првиот чекор.

Чекор 1 - Инсталирање на Apache

Apache е достапен во стандардните складишта на софтвер на Debian, што овозможува негово инсталирање со користење на конвенционални алатки за управување со пакети.

Започнете со ажурирање на индексот на локалниот пакет за да ги одрази најновите промени нагоре:

  1. sudo apt update

Потоа, инсталирајте го пакетот apache2:

  1. sudo apt install apache2

Откако ќе ја потврди инсталацијата, apt ќе го инсталира Apache и сите потребни зависности.

Чекор 2 - Прилагодување на заштитниот ѕид

Пред да го тестирате Apache, неопходно е да ги измените поставките на заштитниот ѕид за да дозволите надворешен пристап до стандардните веб-порти. Ако ги следевте упатствата во предусловите, треба да имате конфигуриран заштитен ѕид UFW да го ограничи пристапот до вашиот сервер.

За време на инсталацијата, Apache се регистрира во UFW за да обезбеди неколку профили на апликации кои може да се користат за да се овозможи или оневозможи пристап до Apache преку заштитниот ѕид.

Наведете ги профилите на апликацијата ufw со извршување на следново:

  1. sudo ufw app list

Вашиот излез ќе биде список на профили на апликации:

Output
Available applications: AIM Bonjour CIFS . . . WWW WWW Cache WWW Full WWW Secure . . .

Профилите на Apache започнуваат со WWW:

  • WWW: овој профил отвора само порта 80 (нормален, нешифриран веб сообраќај)
  • WWW кеш: овој профил отвора само порта 8080 (понекогаш се користи за кеширање и веб-прокси)
  • WWW Full: овој профил ги отвора и портите 80 (нормален, нешифриран веб сообраќај) и портата 443 (сообраќај со шифрирана TLS/SSL)
  • WWW Secure: овој профил отвора само порта 443 (сообраќај шифриран TLS/SSL)

Се препорачува да го овозможите најрестриктивниот профил кој сепак ќе го дозволи сообраќајот што сте го конфигурирале. Бидејќи сè уште не сте го конфигурирале SSL за вашиот сервер во ова упатство, треба само да дозволите сообраќај на портата 80:

  1. sudo ufw allow 'WWW'

Можете да ја потврдите промената со проверка на статусот:

  1. sudo ufw status

Излезот ќе обезбеди листа на дозволен HTTP сообраќај:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere WWW ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW (v6) ALLOW Anywhere (v6)

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

Чекор 3 - Проверка на вашиот веб-сервер

На крајот од процесот на инсталација, Debian 11 го стартува Apache. Веб-серверот веќе треба да работи и да работи.

Проверете дали услугата е активна со извршување на командата за почетниот систем systemd:

  1. sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Wed 2022-07-06 22:05:45 UTC; 23s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 2796 (apache2) Tasks: 55 (limit: 9509) Memory: 21.0M CPU: 67ms CGroup: /system.slice/apache2.service ├─2796 /usr/sbin/apache2 -k start ├─2798 /usr/sbin/apache2 -k start └─2799 /usr/sbin/apache2 -k start

Овој излез потврдува дека услугата е успешно започната. Сепак, најдобриот начин да го тестирате ова е да побарате страница од Apache.

Можете да пристапите до стандардната целна страница на Apache за да потврдите дека софтверот работи правилно преку вашата IP адреса. Ако не ја знаете IP адресата на вашиот сервер, можете да ја добиете на неколку различни начини од командната линија.

Обидете се да го напишете следново во командната линија на вашиот сервер:

  1. hostname -I

Ќе добиете неколку адреси одделени со празни места. Можете да го пробате секој во вашиот веб-прелистувач за да одредите дали функционираат.

Друга опција е користењето на алатката icanhazip.com, која е веб-локација на која, кога ќе се пристапи, ја враќа јавната IP адреса на вашиот уред како прочитана од друга локација на интернет. Ако немате веќе инсталирано curl, можете да го инсталирате со следнава команда:

  1. sudo apt install curl

Потоа, користете curl за да преземете icanhazip.com користејќи IPv4:

  1. curl -4 icanhazip.com

Кога ја имате IP адресата на вашиот сервер, внесете ја во лентата за адреси на вашиот прелистувач:

http://your_server_ip

Треба да ја видите стандардната веб-страница на Debian 11 Apache:

Оваа страница покажува дека Apache работи правилно. Исто така, вклучува и некои основни информации за важни датотеки на Apache и локации на директориуми.

Чекор 4 - Управување со процесот на Apache

Сега кога го имате отворено и работи вашиот веб-сервер, ајде да разгледаме некои основни команди за управување со користење на systemctl.

За да го запрете вашиот веб-сервер, стартувајте:

  1. sudo systemctl stop apache2

За да го стартувате веб-серверот кога е запрен, извршете:

  1. sudo systemctl start apache2

За да ја запрете и потоа повторно да ја стартувате услугата, извршете:

  1. sudo systemctl restart apache2

Ако правите само промени во конфигурацијата, Apache-то често може повторно да се вчита без да ги испушти врските. За да го направите ова, користете ја следнава команда:

  1. sudo systemctl reload apache2

Стандардно, Apache е конфигуриран да стартува автоматски кога серверот ќе се подигне. Ако ова не е она што го сакате, оневозможете го ова однесување со извршување:

  1. sudo systemctl disable apache2

За повторно да овозможите услугата да се стартува при подигање, стартувајте:

  1. sudo systemctl enable apache2

Apache-то сега ќе започне автоматски кога серверот повторно ќе се подигне.

Чекор 5 - Поставување виртуелни хостови (препорачано)

Кога го користите веб-серверот Apache, можете да користите виртуелни хостови (слично на блоковите на серверот во Nginx) за да инкапсулирате детали за конфигурацијата и да хостирате повеќе од еден домен од еден сервер. Ќе поставиме домен наречен your_domain, но треба да го замените ова со сопствено име на домен.

Информации: Ако поставувате име на домен со DigitalOcean, ве молиме погледнете ја нашата мрежна документација.

Apache на Debian 11 има стандардно овозможен еден блок сервер кој е конфигуриран да опслужува документи од директориумот /var/www/html. Иако ова функционира добро за една локација, може да стане неумешливо ако хостирате повеќе страници. Наместо да менувате /var/www/html, креирајте структура на директориум во /var/www за страницата your_domain, оставајќи го / var/www/html е поставен како стандарден директориум што треба да се опслужува доколку барањето на клиентот не се совпаѓа со ниту една друга локација.

Креирајте го директориумот за вашиот_домен на следниов начин:

  1. sudo mkdir -p /var/www/your_domain

Следно, доделете ја сопственоста на директориумот на корисникот во кој сте моментално најавени како со променливата на околината $USER:

  1. sudo chown -R $USER:$USER /var/www/your_domain

Дозволите на вашите веб корени треба да бидат точни ако не сте ја измениле вредноста umask, која ги поставува стандардните дозволи за датотеки. За да се осигурате дека вашите дозволи се точни и да му дозволат на сопственикот да ги чита, пишува и извршува датотеките додека дава само дозволи за читање и извршување на групи и други, можете да ја внесете следнава команда:

  1. sudo chmod -R 755 /var/www/your_domain

Следно, креирајте примерок index.html страница користејќи го претпочитаниот уредувач на текст. Овде, ќе користиме nano:

  1. nano /var/www/your_domain/index.html

Внатре, додадете го следниов примерок HTML:

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

Зачувајте ја и затворете ја датотеката кога ќе завршите. Ако користите nano, можете да го направите ова со притискање на CTRL + X, потоа Y и ENTER.

За да може Apache да ја опслужува оваа содржина, неопходно е да се создаде виртуелна датотека домаќин со точни директиви. Наместо директно да ја менувате стандардната конфигурациска датотека лоцирана на /etc/apache2/sites-available/000-default.conf, направете нова на /etc/apache2/sites-available/< mark>вашиот_домен.conf:

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

Вметнете го следниот конфигурациски блок, кој е сличен на стандардниот, но ажуриран за вашиот нов директориум и име на домен:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Забележете дека го ажуриравме DocumentRoot во нашиот нов директориум и ServerAdmin на е-пошта до која може да пристапи администраторот на страницата your_domain. Додадовме и две директиви: ServerName, кој го воспоставува основниот домен што ќе одговара на дефиницијата на виртуелниот хост и ServerAlias, кој дефинира понатамошни имиња што ќе се совпаѓаат како да се беа основните имиња.

Зачувајте ја и затворете ја датотеката кога ќе завршите.

Сега овозможете ја датотеката со алатката a2ensite:

  1. sudo a2ensite your_domain.conf

Оневозможете ја стандардната локација дефинирана во 000-default.conf:

  1. sudo a2dissite 000-default.conf

Следно, тестирајте за грешки во конфигурацијата:

  1. sudo apache2ctl configtest

Треба да го добиете следниот излез:

Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

Рестартирајте го Apache за да ги имплементирате вашите промени:

  1. sudo systemctl restart apache2

Апачи сега ќе го опслужува вашето име на домен. Можете да го тестирате ова со навигација до http://your_domain, каде што ќе видите нешто како следново:

Чекор 6 - Запознавање со важни датотеки и директориуми на Apache

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

содржина

  • /var/www/html: вистинската веб-содржина, која стандардно се состои само од стандардната страница на Apache што ја видовте претходно, се служи надвор од /var/www/html директориумот . Ова може да се промени со менување на конфигурациските датотеки на Apache.

Конфигурација на серверот

  • /etc/apache2: директориумот за конфигурација на Apache. Сите конфигурациски датотеки на Apache се тука.
  • /etc/apache2/apache2.conf: Главната конфигурациска датотека на Apache. Ова може да се измени за да се направат промени во глобалната конфигурација на Apache. Оваа датотека е одговорна за вчитување на многу други датотеки во директориумот за конфигурација.
  • /etc/apache2/ports.conf: оваа датотека ги одредува портите што ќе ги слуша Apache. Стандардно, Apache слуша на портата 80 и дополнително слуша на портата 443 кога е овозможен модул кој обезбедува SSL способности.
  • /etc/apache2/sites-available/: Директориум каде што може да се складираат виртуелни хостови по локација. Apache нема да ги користи конфигурациските датотеки што се наоѓаат во овој директориум освен ако не се поврзани со директориумот sites-enabled. Вообичаено, целата конфигурација на блок серверот се врши во овој директориум, а потоа е овозможена со поврзување со другиот директориум со командата a2ensite.
  • /etc/apache2/sites-enabled/: Директориумот каде што се овозможени виртуелните хостови по локација се зачувани. Обично, тие се креираат со поврзување со конфигурациските датотеки што се наоѓаат во директориумот sites-available со a2ensite. Apache ги чита конфигурациските датотеки и врските што се наоѓаат во овој директориум кога се стартува или повторно се вчитува за да состави целосна конфигурација.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: овие директориуми имаат ист однос како сајтовите- достапни и директориуми овозможени за сајтови, но се користат за складирање на фрагменти од конфигурација кои не припаѓаат на виртуелен хост. Датотеките во директориумот conf-available може да се овозможат со командата a2enconf и да се оневозможат со командата a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: овие директориуми ги содржат достапните и овозможените модули, соодветно. Датотеките што завршуваат на .load содржат фрагменти за вчитување одредени модули, додека датотеките што завршуваат на .conf ја содржат конфигурацијата за тие модули. Модулите може да се овозможат и оневозможат со помош на командите a2enmod и a2dismod.

Дневници на серверот

  • /var/log/apache2/access.log: Стандардно, секое барање до вашиот веб-сервер се запишува во оваа датотека за евиденција, освен ако Apache не е конфигуриран да прави поинаку.
  • /var/log/apache2/error.log: Стандардно, сите грешки се запишуваат во оваа датотека. Директивата LogLevel во конфигурацијата на Apache одредува колку детали ќе содржат дневниците за грешки.

Заклучок

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

Ако сакате да изградите поцелосен куп апликации, можете да ја прочитате оваа статија за тоа како да конфигурирате стек LAMP на Debian 11.