Как да инсталирате Apache уеб сървъра на Ubuntu 24.04
28 Dec 2025, 17:33:19
Уеб сървърът Apache е един от най-популярните и надеждни уеб сървъри в света, използван за хостване и управление на уебсайтове. Разработен през 1995 г., той оттогава се е превърнал в основа за множество уебсайтове благодарение на своята гъвкавост и мощни функции. Apache поддържа различни операционни системи, включително Windows, Linux и macOS, което го прави универсален избор за разработчици и администратори. Едно от ключовите предимства на Apache е неговата модулна архитектура, която ви позволява да добавяте или премахвате функционалност в зависимост от нуждите на вашия проект. Например, можете да инсталирате модули за обработка на PHP, управление на сигурността или ускорение на уебсайта. Apache предлага и висока степен на персонализиране, което ви позволява да оптимизирате производителността и сигурността на уеб приложенията. Освен това, той поддържа множество протоколи, включително HTTP/2, което помага за подобряване на скоростта на зареждане на страниците. Благодарение на активната общност от разработчици, Apache постоянно се актуализира и подобрява, което го прави надежден избор както за малки, така и за големи проекти.Подготовка на системата преди инсталиране на Apache
Преди да инсталирате Apache, е важно да подготвите системата си, за да осигурите стабилна и сигурна работа на вашия уеб сървър. Първо, уверете се, че операционната ви система е актуализирана до най-новата версия. Това ще помогне да се избегнат конфликти на библиотеки и уязвимости в сигурността. След това проверете за необходими пакети, като libc, gcc и други зависимости, които може да са необходими за инсталиране на Apache. Използвайте мениджъра на пакети на вашата операционна система (като apt за Debian/Ubuntu или yum за CentOS), за да инсталирате тези компоненти. Препоръчително е също да създадете отделен потребител за Apache, което подобрява сигурността, като изолира уеб сървъра от други процеси в системата. Не забравяйте да конфигурирате защитната си стена, като отворите портове 80 и 443 съответно за HTTP и HTTPS. Това ще позволи на вашия сървър да приема входящи заявки от клиенти. След като тези стъпки са изпълнени, можете да продължите с инсталирането и конфигурирането на Apache, което ще осигури надеждната работа на вашето уеб приложение. Като следвате тези препоръки, ще подготвите системата си да работи ефективно с Apache, като минимизирате потенциалните проблеми.Инсталиране на Apache с помощта на APT
Това е прост и ефективен начин за инсталиране на уеб сървър на Debian-базирани системи като Ubuntu. Първо, актуализирайте списъка с пакети, като изпълните следната команда:apt updateТова ще гарантира, че е инсталирана най-новата версия на Apache.Препоръчително е също да актуализирате версиите на инсталирания софтуер на сървъра, като използвате командата:
apt upgradeСлед това, за да инсталирате сървъра, въведете командата:apt install apache2След като инсталацията приключи, Apache ще се стартира автоматично.Можете да видите версията, която се изпълнява в момента на вашата система, като използвате командата:
apache2 -vЗа да проверите състоянието на услугата, използвайте:
systemctl status apache2Трябва да видите състоянието active (running).
Конфигурация на MPM (Многопроцесорен модул) за Apache
Apache поддържа няколко MPM (Многопроцесорни модула), включително prefork, worker и event, всеки със свои собствени функции и цели. Остарелият Worker MPM не си струва да се описва поради невъзможността му да работи в многопроцесорно решение и липсата на достатъчна сигурност.Описание MPM Prefork Apache
Когато използва модула Prefork, Apache работи като не-многонишков уеб сървър, като предварително създава дъщерни процеси. Това означава, че всеки дъщерен процес на Apache съдържа една нишка и обработва по една заявка.Следователно, той консумира малко повече ресурси от многонишковия Event MPM, но също така осигурява по-добра стабилност. Prefork MPM използва родителски процес, за да поддържа няколко допълнителни или неактивни процеса отворени за обработка на нови заявки.
Предварителното разклоняване на дъщерни процеси остава най-добрият избор, ако Apache трябва да използва библиотеки, които не са безопасни за нишки, като например mod_php (DSO), и е идеално, ако изолацията на процесите е важна. Намирането на правилния баланс между максималния брой процеси и наличната RAM памет на сървъра е от решаващо значение при предварителното разклоняване на дъщерни процеси, тъй като това консумира много RAM. Предварителното разклоняване на дъщерни процеси винаги трябва да се използва, когато се изпълнява нещо, което не е безопасно за нишки.
Повечето версии на PHP все още не са безопасни за нишки, а единственият MPM модул, който е безопасен за използване с небезопасен за нишки код, е Prefork MPM, тъй като той създава нови процеси, а не нишки, за обработка на нови заявки.
Описание MPM Event Apache
Event MPM беше въведен в Apache 2.4. Той е доста подобен на по-стария Worker MPM, но е проектиран да се справя с големи натоварвания.Всеки процес в Event MPM може да съдържа множество нишки, но за разлика от Prefork, всяка нишка е способна да изпълнява повече от една задача.
Този режим се поддържа само на сървъри, работещи с Apache 2.4. Той ви позволява да обработвате повече заявки едновременно, като прехвърля част от обработката към спомагателни нишки.
Когато използва режим Event MPM, Apache се опитва да реши проблема със „запазването на връзката“, с който се сблъскват други MPM режими.
След като клиентът завърши първата заявка, той може да поддържа връзката отворена и да изпраща последващи заявки, използвайки същия сокет, намалявайки натоварването на връзката. Това обаче може да доведе до продължително замръзване на процесите в ситуации, в които кодът не е написан оптимално.
Ако процесите на Apache останат активни твърде дълго, това може да доведе до изчерпване на сървърните ресурси и в резултат на това сървърът да спре да работи.
Управление MPM Apache
За да определите кой MPM се използва на вашата система, изпълнете следната команда:apache2ctl -M | grep mpmОчакван отговор:mpm_event_module (shared)
За да превключите към безопасен за нишки prefork, изпълнете следните команди:
a2dismod mpm_event
a2enmod mpm_prefork
systemctl restart apache2
apache2ctl -M | grep mpm
Конфигуриране на защитна стена за Apache
Преди да тествате Apache, е добра идея да конфигурирате защитната си стена да разрешава уеб трафик. Използвайки UFW (Неусложнена защитна стена), разрешете достъп до Apache и други необходими услуги, като SSH, и блокирайте достъпа до всичко останало.След инсталиране на Apache, няколко профила на приложения се регистрират автоматично в UFW, които определят кои портове да се отварят за различните видове трафик. За да видите тези профили, изпълнете командата:
ufw app list
Всеки профил предоставя различни нива на достъп:
| Профиль | Отворени портове | Описание |
| Apache | 80/tcp | Позволява некриптиран HTTP трафик |
| Apache Secure | 443/tcp | Позволява криптиран HTTPS трафик |
| Apache Full | 80, 443/tcp | Позволява HTTP и HTTPS трафик |
ufw allow 'OpenSSH'Тъй като повечето съвременни уебсайтове използват HTTPS по подразбиране, най-добре е да активирате Apache Full профила, за да разрешите както HTTP, така и HTTPS връзки:
ufw allow 'Apache Full'За да активирате UFW на вашата система, изпълнете следната команда:
ufw enableЩе видите резултат, нещо подобно:Firewall is active and enabled on system startup
Можете да проверите състоянието, като използвате командата:
ufw statusИ разширеният изход:ufw status verbose
Проверка на състоянието на услугата Apache
След инсталацията, Apache стартира автоматично. Нека проверим дали работи.В Ubuntu, Apache се управлява от systemd, който контролира стартирането, спирането и рестартирането на услуги. За да проверите дали Apache работи, изпълнете следната команда:
systemctl status apache2В резултат на това би трябвало да видите нещо подобно:
Ако видите Active: active (running), тогава Apache е стартиран и работи.
Ако Apache не е активен, можете да го стартирате ръчно, като използвате командата:
systemctl start apache2Активиране или деактивиране на Apache при зареждане на системата
По подразбиране Apache е конфигуриран да се стартира автоматично при зареждане на системата. Можете да потвърдите това, като проверите дали е активиран:systemctl is-enabled apache2За да деактивирате автоматичното стартиране на Apache при зареждане на системата:
systemctl disable apache2За да го включите отново:systemctl enable apache2За да потвърдите просто, че Apache работи, без пълен лог изход, можете да използвате:
systemctl is-active apache2Ако статусът е active, Apache работи както се очаква.