Како да го инсталирате веб-серверот Apache на Debian 11
Вовед
Apache HTTP серверот е најкористениот веб-сервер во светот. Обезбедува многу моќни функции, вклучително и динамично вчитани модули, силна медиумска поддршка и обемна интеграција со друг популарен софтвер.
Во ова упатство, ќе инсталирате веб-сервер на Apache на серверот Debian 11.
Предуслови
Пред да започнете со ова упатство, ќе ви треба сервер Debian 11 поставен со корисник кој не еroot со привилегии sudo
и заштитен ѕид овозможен за блокирање на несуштинските порти. Можете да научите како да го направите ова следејќи го нашиот првичен водич за поставување сервер за Debian 11.
Откако ќе завршите со поставувањето, најавете се како ваш неroot корисник и продолжете до првиот чекор.
Чекор 1 - Инсталирање на Apache
Apache е достапен во стандардните складишта на софтвер на Debian, што овозможува негово инсталирање со користење на конвенционални алатки за управување со пакети.
Започнете со ажурирање на индексот на локалниот пакет за да ги одрази најновите промени нагоре:
- sudo apt update
Потоа, инсталирајте го пакетот apache2
:
- sudo apt install apache2
Откако ќе ја потврди инсталацијата, apt
ќе го инсталира Apache и сите потребни зависности.
Чекор 2 - Прилагодување на заштитниот ѕид
Пред да го тестирате Apache, неопходно е да ги измените поставките на заштитниот ѕид за да дозволите надворешен пристап до стандардните веб-порти. Ако ги следевте упатствата во предусловите, треба да имате конфигуриран заштитен ѕид UFW да го ограничи пристапот до вашиот сервер.
За време на инсталацијата, Apache се регистрира во UFW за да обезбеди неколку профили на апликации кои може да се користат за да се овозможи или оневозможи пристап до Apache преку заштитниот ѕид.
Наведете ги профилите на апликацијата ufw
со извршување на следново:
- sudo ufw app list
Вашиот излез ќе биде список на профили на апликации:
OutputAvailable 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
:
- sudo ufw allow 'WWW'
Можете да ја потврдите промената со проверка на статусот:
- sudo ufw status
Излезот ќе обезбеди листа на дозволен HTTP сообраќај:
OutputStatus: 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
:
- 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 адресата на вашиот сервер, можете да ја добиете на неколку различни начини од командната линија.
Обидете се да го напишете следново во командната линија на вашиот сервер:
- hostname -I
Ќе добиете неколку адреси одделени со празни места. Можете да го пробате секој во вашиот веб-прелистувач за да одредите дали функционираат.
Друга опција е користењето на алатката icanhazip.com
, која е веб-локација на која, кога ќе се пристапи, ја враќа јавната IP адреса на вашиот уред како прочитана од друга локација на интернет. Ако немате веќе инсталирано curl
, можете да го инсталирате со следнава команда:
- sudo apt install curl
Потоа, користете curl
за да преземете icanhazip.com
користејќи IPv4:
- curl -4 icanhazip.com
Кога ја имате IP адресата на вашиот сервер, внесете ја во лентата за адреси на вашиот прелистувач:
http://your_server_ip
Треба да ја видите стандардната веб-страница на Debian 11 Apache:
Оваа страница покажува дека Apache работи правилно. Исто така, вклучува и некои основни информации за важни датотеки на Apache и локации на директориуми.
Чекор 4 - Управување со процесот на Apache
Сега кога го имате отворено и работи вашиот веб-сервер, ајде да разгледаме некои основни команди за управување со користење на systemctl
.
За да го запрете вашиот веб-сервер, стартувајте:
- sudo systemctl stop apache2
За да го стартувате веб-серверот кога е запрен, извршете:
- sudo systemctl start apache2
За да ја запрете и потоа повторно да ја стартувате услугата, извршете:
- sudo systemctl restart apache2
Ако правите само промени во конфигурацијата, Apache-то често може повторно да се вчита без да ги испушти врските. За да го направите ова, користете ја следнава команда:
- sudo systemctl reload apache2
Стандардно, Apache е конфигуриран да стартува автоматски кога серверот ќе се подигне. Ако ова не е она што го сакате, оневозможете го ова однесување со извршување:
- sudo systemctl disable apache2
За повторно да овозможите услугата да се стартува при подигање, стартувајте:
- 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
е поставен како стандарден директориум што треба да се опслужува доколку барањето на клиентот не се совпаѓа со ниту една друга локација.
Креирајте го директориумот за вашиот_домен на следниов начин:
- sudo mkdir -p /var/www/your_domain
Следно, доделете ја сопственоста на директориумот на корисникот во кој сте моментално најавени како со променливата на околината $USER
:
- sudo chown -R $USER:$USER /var/www/your_domain
Дозволите на вашите веб корени треба да бидат точни ако не сте ја измениле вредноста umask
, која ги поставува стандардните дозволи за датотеки. За да се осигурате дека вашите дозволи се точни и да му дозволат на сопственикот да ги чита, пишува и извршува датотеките додека дава само дозволи за читање и извршување на групи и други, можете да ја внесете следнава команда:
- sudo chmod -R 755 /var/www/your_domain
Следно, креирајте примерок index.html
страница користејќи го претпочитаниот уредувач на текст. Овде, ќе користиме nano
:
- 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
:
- 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
:
- sudo a2ensite your_domain.conf
Оневозможете ја стандардната локација дефинирана во 000-default.conf
:
- sudo a2dissite 000-default.conf
Следно, тестирајте за грешки во конфигурацијата:
- sudo apache2ctl configtest
Треба да го добиете следниот излез:
OutputAH00558: 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 за да ги имплементирате вашите промени:
- 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.