Теперь, когда у вас есть работающий веб-сервер, рассмотрим некоторые базовые команды для управления им.
Для остановки себ-сервера наберите:
- 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 должен опять запускаться автоматически при загрузке сервера.
При использовании веб-сервера 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:
<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
Скопируйте следующий текст настроек виртуального хоста в созданный файл:
<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, вам стоит ознакомиться с важными файлами и директориями 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/: эти директории связаны друг с другом так же, как и sites-available и sites-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 на Ubuntu 18.04.
Удаляю апач и всё что с ним связано
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