Apache2

Установка

начнём с обновления локального индекса пакетов: sudo apt update Далее установим пакет apache2: sudo apt install apache2 Если вы не знаете IP адрес вашего сервера, вы можете найти его несколькими способами с помощью командной строки. Введите следующую команду: hostname -I После того, как вы найдёте IP адрес вашего сервера, введите его в свой веб-браузер: http://IP_адрес_вашего_сервера Вы должны увидеть дефолтную страницу Apache для Ubuntu 18.04

Шаг 4 - Управление процессом Apache

Теперь, когда у вас есть работающий веб-сервер, рассмотрим некоторые базовые команды для управления им.

Для остановки себ-сервера наберите:

  • 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) для хранения конфигурационных настроек разных сайтов. Это позволяет иметь более одного сайта на одном сервере. В этом руководстве мы будем для примера использовать доменное имя example.com, но вам следует заменить его вашим собственным доменным именем. Для того, чтобы узнать больше о настройке доменных имён в DigitalOcean, рекомендуем ознакомиться с нашим Введением в DNS DigitalOcean.

Apache для Ubuntu 18.04 уже имеет один виртуальный хост, включенный по умолчанию, который настроен на отдачу документов из директории /var/www/html. Хотя это и удобно для обслуживания одного сайта, это становится неудобным, когда сайтов несколько. Вместо того, чтобы изменять /var/www/html, давайте создадим новую структуру директорий внутри /var/www для нашего сайта example.com, оставив /var/www/html для показа дефолтной страницы пользователям в случаях, когда клиентский запрос не совпадает ни с одним из настроенных доменных имён.

Создайте директорию для example.com используя флаг -p для создания необходимых родительских директорий:

  • sudo mkdir -p /var/www/example.com/html

Далее настройте владельца директории с помощью переменной окружения $USER:

  • sudo chown -R $USER:$USER /var/www/example.com/html

Теперь права должны для корневой директории быть настроены правильным образом при условии, что вы не меняли своё значение umask. На всякий случай мы можем удостовериться в этом командой:

  • sudo chmod -R 755 /var/www/example.com

Далее создадим страницу index.html в nano или любом другом текстовом редакторе:

  • nano /var/www/example.com/html/index.html

Добавим в файл следующий HTML:

/var/www/example.com/html/index.html
<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

Сохраните и закройте файл.

Для того, чтобы Apache мог отдавать этот контент, нам необходимо настроить виртуальный хост с корректными настройками. Вместо того, чтобы редактировать существующий файл виртуального хоста /etc/apache2/sites-available/000-default.conf, создадим новый файл для нашего сайта - /etc/apache2/sites-available/example.com.conf:

  • sudo nano /etc/apache2/sites-available/example.com.conf

Скопируйте следующий текст настроек виртуального хоста в созданный файл:

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Обратите внимание, что мы обновили DocumentRoot на адрес нашей новой директории, и ServerAdmin на адрес электронной почты, доступный для администратора example.com. Мы также добавили две директивы: ServerName, которая устанавливает базовое доменное имя, которое должно использоваться для хоста, а также ServerAlias, которая определяет другие имена, которые должны использоваться для отображения хоста так же, как и базовое доменное имя.

Сохраните и закройте файл после внесения изменений.

Теперь активируем профиль сайта с помощью утилиты a2ensite:

  • sudo a2ensite example.com.conf

Деактивируем дефолтный сайт, определённый в 000-default.conf:

  • sudo a2dissite 000-default.conf

Далее проверим наши настройки на наличие ошибок:

  • sudo apache2ctl configtest

Вы должны увидеть следующий вывод:

Вывод
Syntax OK

Перезапустите Apache для применения внесённых изменений:

  • sudo systemctl restart apache2

Теперь Apache должен работать с вашим доменным именем. Вы можете проверить это введя http://example.com в вашем браузере, где в результате вы должны увидеть что-то в этом роде:

Успешная работа Apache

Шаг 6 - Важные файлы и директории Apache

Теперь, когда вы знаете, как управлять сервисом Apache, вам стоит ознакомиться с важными файлами и директориями Apache.

Контент

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

Серверные логи

Заключение

Теперь, когда ваш веб-сервер установлен, у вас есть множество вариантов того, что делать дальше. Если вы хотите построить более полный стек приложений, вы можете ознакомиться с нашим руководством по установке и настройке стека LAMP на Ubuntu 18.04.

Удвление apache2

Удаляю апач и всё что с ним связано

            rekoshed@rekoshed:~$ service apache2 stop
            rekoshed@rekoshed:~$ dpkg -l | grep -i apache2
            ii  apache2                                       2.4.38-2ubuntu2.3                         amd64        Apache HTTP Server
            ii  apache2-bin                                   2.4.38-2ubuntu2.3                         amd64        Apache HTTP Server (modules and other binary files)
            ii  apache2-data                                  2.4.38-2ubuntu2.3                         all          Apache HTTP Server (common files)
            ii  apache2-utils                                 2.4.38-2ubuntu2.3                         amd64        Apache HTTP Server (utility programs for web servers)
            ii  libapache2-mod-php                            2:7.2+69ubuntu1                           all          server-side, HTML-embedded scripting language (Apache 2 module) (default)
            ii  libapache2-mod-php7.2                         7.2.24-0ubuntu0.19.04.1                   amd64        server-side, HTML-embedded scripting language (Apache 2 module)
            rekoshed@rekoshed:~$ sudo apt-get remove --purge apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php libapache2-mod-php7.2 
     
      

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

sudo apt-get autoremove

Удаляем оставшийся папки и файлы, связанные с Apache

whereis apache2

# Здесь идёт перечисление папок с Apache. Обычно они удаляются, но "хвосты" могут остаться:

/etc$ whereis apache2 apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz

# Удаляем теперь всё ручками своими ненужное, командой rm -rf /:

sudo rm -rf /etc/apache2