- Установка и настройка Apache на Ubuntu 22.04
- Что такое Apache
- Установка Apache
- Настройка брандмауэра
- Посещение вашего веб-сайта
- Заключение
- Базовая установка и настройка веб-сервера
- Базовая установка и настройка веб-сервера
- Установка
- Настройка Apache
- Персональные настройки
- Настройка виртуальных хостов
- Твики и трюки
- Ускоряем сервер (Opcode Cacher)
- Выключаем автозапуск apache2 и mysql
- Выключаем автозапуск Apache:
- Выключаем автозапуск MySQL:
- Разрешаем подключение к MySQL из Мира
Установка и настройка Apache на Ubuntu 22.04
Под веб-серверами понимают как физические машины, так и специальное программное обеспечение. С точки зрения софта, веб-сервер — это программа, которая реализует логику сервера в клиент-серверной архитектуре: принимает HTTP-запросы от клиентов и возвращает соответствующие ответы.
На рынке представлено большое количество различных веб-серверов, которые предлагают своим пользователям дополнительный функционал. В зависимости от своих потребностей пользователь может выбрать наиболее подходящее его задачам решение.
Самые распространенные веб-серверы в 2023 году — это Nginx и Apache. В этом материале мы расскажем, как установить и настроить Apache на операционной системе Ubuntu 22.04.
Что такое Apache
Apache HTTP Server или просто Apache — это бесплатный кроссплатформенный веб-сервер с открытым исходным кодом. Он был разработан в 1995 году группой разработчиков для устранения недостатков популярного на тот момент веб-сервера NCSA HTTPd.
NCSA HTTPd был одним из первых веб-серверов. Его разработали в 1993 году в NCSA, университет Иллинойса. Он распространялся бесплатно и позволял пользователям размещать в интернете первые страницы, но NCSA HTTPd имел ограниченные возможности по сравнению с современными веб-серверами и ряд других недостатков, которые по итогу вылились в появление Apache.
Через год после выхода Apache получил популярность среди хостинг-компаний и разработчиков благодаря новой функциональности и кроссплатформенности. В 2005 году порядка 70% всех серверов в сети работало на Apache. Сейчас эта цифра держится в районе 20%, а основной конкурент Apache — это Nginx.
Apache состоит из двух основных компонентов: ядра и модулей. Ядро выполняет базовые функции веб-сервера: обрабатывает конфигурационные файлы, выполняет действия, связанные с HTTP, и загружает дополнительные модули. Модули позволяют расширить базовый функционал ядра: поддержка новых языков программирования, авторизация пользователей, повышение уровня безопасности. Над ядром работает исключительно команда Apache.
В целом, к плюсам Apache можно отнести:
- Бесплатное ПО;
- Кастомизация: веб-сервер на Apache можно легко подстроить под конкретные цели и задачи благодаря большому количеству дополнительных модулей и открытому коду.
- Большое комьюнити;
- Кроссплатформенность;
- Хороший уровень производительности и безопасности.
- Требовательность к ресурсам, особенно при обслуживании большого количества одновременных запросов;
- Ограниченная многопоточность: Apache использует технологию мультипроцессинга, помещая каждое соединение в отдельный поток. Количество таких потоков ограниченно, что негативно сказывается при большом количестве запросов;
- Сложность настройки из-за большого количества настроек.
Установка Apache
Установка Apache выполняется в несколько шагов:
Шаг 1. Обновите индексы пакетов apt
Перед установкой любого программного обеспечения на Ubuntu в первую очередь необходимо обновить индексы пакетов. Благодаря этому в репозитории будут находиться последние пакеты, доступные для установки.
Для обновления индекс пакетов APT до последней версии выполните следующую команду:
Шаг 2. Установка веб-сервера Apache
Установка веб-сервера Apache на Ubuntu — это простой процесс, включающий в себя выполнение одной команды и перезагрузку системы. Чтобы установить Apache, выполните следующую команду:
После чего перезагрузите систему.
Шаг 3. Запуск и автозагрузка Apache
Чтобы запустить службу Apache, выполните эту команду:
sudo systemctl start apache2
Эту команду придется выполнять каждый раз при запуске сервера. Чтобы избежать этого, добавим Apache в автозагрузку:
sudo systemctl enable apache2
Шаг 4. Проверка установки сервера Apache
Проверим статус службы Apache, чтобы убедиться в успешности установки:
Настройка брандмауэра
Теперь, когда вы установили Apache на Ubuntu, необходимо разрешить внешние подключения через брандмауэр UFW.
UFW (Uncomplicated Firewall) — это интерфейс командной строки для iptables, который представляет собой фаервол для ОС Linux. Он предназначен для упрощения управления правилами фаервола, делая его более доступным для новичков. UFW позволяет легко настраивать правила фаервола, такие как открытие или закрытие портов, блокировка или разрешение доступа к сети и т.д.
UFW является простым и эффективным способом обеспечения безопасности вашего сервера или компьютера. Он может использоваться как для домашних пользователей, так и для предприятий.
Вы можете пропустить этот раздел, если на вашем сервере не запущен UFW или не установлен брандмауэр. Но это не совсем безопасно, поэтому для обеспечения безопасности вашего устройства мы рекомендуем вам использовать брандмауэр.
При включенном брандмауэре вы можете обнаружить, что подключение к серверу Apache с удаленного устройства невозможно. Это связано с тем, что порты, которые использует Apache, по умолчанию закрыты. Речь идет о 80 порту (для HTTP) и 443 порту (для HTTPS). Откроем подключение к обоим портам
Давайте начнем с открытия 80 порта. Через этот порт будут проходить подключения к Apache через HTTP.
Даже если вы планируете работать только с HTTPS-соединениями, не лишним будет открыть подключения на 80 порту, чтобы вы могли перенаправлять их на HTTPS.
В первую очередь проверим, включен ли файрвол UFW:
Мы должны увидеть статус Active . Если это не так, запустите сервис ufw следующей командой:
Чтобы разрешить доступ к порту 80 с помощью UFW, мы можем использовать следующую команду в терминале:
Также если вы планируете использовать HTTPS с сервером Apache на Ubuntu, вам также необходимо открыть порт 443.
Порт 443 — это порт, через который HTTPS работает по умолчанию. Поэтому если вы посетили сайт, использующий протокол «https://», ваш веб-браузер будет использовать именно этот порт.
Вы можете разрешить этот порт с помощью этой команды:
Посещение вашего веб-сайта
Теперь, когда вы установили веб-сервер Apache на Ubuntu и открыли подключения в брандмауэре, давайте попробуем зайти на него.
Посетив страницу сервера, мы увидим только страницу по умолчанию. Это хороший показатель того, что все работает правильно.
Если планируется подключения с удаленного устройства, то в первую очередь необходимо узнать IP-адрес сервера Apache. Есть несколько способов узнать это.
Самый простой способ — использовать команду hostname с опцией -I . Команда в качестве результата выведет список IP-адресов, назначенных вашему устройству.
Например, нашему тестовому серверу присвоен только локальный IP-адрес, который мы видим ниже.
По этому адресу нужно перейти в любом браузере. Если вы получаете доступ непосредственно с вашего сервера Ubuntu, вы можете использовать 127.0.0.1 или localhost вместо этого.
После перехода по этому адресу вы должны увидеть страницу, аналогичную той, что показана на скриншоте ниже.
Это говорит о том, что вы успешно запустили Apache на Ubuntu.
Заключение
В рамках этого материала мы рассмотрели установку Apache на Ubuntu 22.04, настройку брандмауэра и запуск сервера. При разработке сайта или веб-приложение эти шаги будут первыми на пути к готовому продукту. Если вы хотите создать свой сервер, то для этих планов вы можете арендовать облачный сервер на timeweb.cloud.
Базовая установка и настройка веб-сервера
Решил оформить наконец своё HOW-TO на форуме в нашей вики, т.к. это правильнее и форматирование здесь удобнее. Я постарался изложить материал кратко, намеренно упустив подробности, которые не относятся напрямую к сути (вроде того, что конфиги сервера нужно править от рута). Считаем, что читатель имеет базовый уровень работы с линукс-системами.
Просьба к редакторам тоже там отписываться
Базовая установка и настройка веб-сервера
Установка
apt-get install lamp-server^ phpmyadmin
phpmyadmin — веб-интерфейс для управления БД MySQL.
Иногда при копипасте кода установки может вылезать ошибка, что какой-то пакет не найден. На самом деле все правильно, просто глюк копипаста. Решение вбить руками команду или попробовать стереть название проблемного пакета вместе с пробелами по краям и вбить руками только его.
Настройка Apache
Персональные настройки
Начиная с версии Ubuntu Saucy (13.10) свои настройки следует писать в /etc/apache2/conf-available, активировать настройки следует с помощью команды a2enconf.
Свои настройки следует писать в /etc/apache2/conf.d, т.е. создать там файл, например, myconf.conf и определить в нём свои настройки.
## Файл персональных настроек веб-сервера Apache ## Чтобы устранить предупреждение при перезапуске Apache (хотя в целом на производительности это не отразится) ServerName localhost ## Для того, чтобы Apache интерпретировал php и не предлагал сохранить php-файл AddType application/x-httpd-php .php .phtml ## Установка кодировки UTF-8 по умолчанию AddDefaultCharset UTF-8
Для того, чтобы так же работали файлы php, которые начинаются с «» вместо «» нужно, чтобы в /etc/php5/apache2/php.ini было short_open_tag = On
Настройка виртуальных хостов
Есть несколько способов, я же расскажу о том как повесить несколько виртуальных хостов на один IP c доступом к ним по имени сервера.
127.0.0.1 host2.server1 host1.server1
и создаём там файлы, названиями которых будут названия, создаваемых серверов, например host1.server1.conf и host2.server1.conf в эти файлы пишем (здесь показано простейшее, подробнее можно заценить в файле default):
ServerName host1.server1 DocumentRoot /var/www/host1.server1 AllowOverride All
ServerName host2.server1 DocumentRoot /var/www/host2.server1 AllowOverride All
Далее создаём симлинки на эти файлы в директории /etc/apache2/sites-enabled с помощью команды a2ensite:
a2ensite host1.server1 host2.server1
http://host1.server1 http://host2.server1
Твики и трюки
Этот раздел применять не обязательно, у вас уже всё работает после 1-го раздела. Однако вы можете найти здесь что-то полезное. Я рекомендую не обделить вниманием ускорение (opcode cacher)
Ускоряем сервер (Opcode Cacher)
Акселератор PHP — программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.
Начиная с версии PHP 5.5 в интерпретатор по умолчанию включён Zend OPcache. В этой связи, а также потому что данная статья описывает базовую настройку, из неё убраны описания установки php-apc и php-xcache
Выключаем автозапуск apache2 и mysql
ВАМ ЭТО ДЕЙСТВИТЕЛЬНО НУЖНО? Эти демоны стартуют в родной для себя среде в разы быстрее чем денвер в винде, думаю от 1 сек к времени загрузки ОС и 10 мб ОЗУ вам хуже не станет, а лишних телодвижений не будет…
Выключаем автозапуск Apache:
sudo update-rc.d -f apache2 remove
Выключаем автозапуск MySQL:
sudo nano /etc/init/mysql.conf
start on (net-device-up and local-filesystems and runlevel [2345])
#start on (net-device-up # and local-filesystems # and runlevel [2345])
Разрешаем подключение к MySQL из Мира
Нужно для подключения веб-сервера или другой программы, находящейся на другом сервере. В случае, если у вас они крутятся на одном сервере этого делать не нужно!
/etc/mysql/my.cnf
# # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1
Самое простое — просто закомментировать эту строку.
Кроме этого требуется добавить пользователя, который с разных мест и из разных программ может соединяться с базой, например «admin»:
GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'my_admin_password' WITH GRANT OPTION;
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.