HTTP-сервер Apache — самый популярный веб-сервер в мире. Это бесплатный кроссплатформенный HTTP-сервер с открытым исходным кодом, предоставляющий мощные функции, которые могут быть расширены с помощью самых разных модулей.
Если вы разработчик или системный администратор, скорее всего, вы регулярно работаете с Apache.
Прежде чем вы начнете
Мы предполагаем, что вы вошли в систему как root или пользователь с привилегиями sudo. Команды в этом руководстве должны работать с любым современным дистрибутивом Linux, таким как Ubuntu 18.04, CentOS 7 и Debian 9 .
В Ubuntu и Debian служба Apache называется apache2 , а в системах на базе Red Hat, таких как CentOS, имя службы Apache httpd .
Если вы работаете в CentOS, просто замените apache2 с httpd командами ниже.
Запустите Apache
Запуск Apache довольно прост. Просто введите следующую команду.
sudo systemctl start apache2
В случае успеха команда не выдает никаких результатов.
Если вы используете более старый дистрибутив Linux без systemd для запуска Apache:
sudo service apache2 start
Вместо того, чтобы вручную запускать службу Apache, рекомендуется установить ее при загрузке системы:
sudo systemctl enable apache2
Стоп Апач
Остановка Apache быстро отключает основной процесс Apache и все дочерние процессы, даже если есть открытые соединения.
Чтобы остановить Apache, выполните одну из следующих команд:
sudo systemctl stop apache2sudo service apache2 stop
Перезапустите Apache
Параметр restart — это быстрый способ остановить и запустить сервер Apache.
Используйте одну из следующих команд для выполнения перезапуска:
sudo systemctl restart apache2sudo service apache2 restart
Это команда, которую вы, вероятно, будете использовать чаще всего.
Перезагрузить Apache
Вам необходимо перезагрузить или перезапустить Apache всякий раз, когда вы вносите изменения в его конфигурацию.
При перезагрузке основной процесс apache завершает работу дочерних процессов, загружает новую конфигурацию и запускает новые дочерние процессы.
Чтобы перезагрузить Apache, используйте одну из следующих команд:
sudo systemctl reload apache2sudo service apache2 reload
Тестирование конфигурации Apache
Всякий раз, когда вы вносите изменения в файл конфигурации сервера Apache, рекомендуется проверить конфигурацию перед перезапуском или перезагрузкой службы.
Используйте следующую команду для проверки конфигурации Apache на наличие любых синтаксических или системных ошибок:
sudo apachectl -t
Вывод будет выглядеть так:
Syntax OK
Если есть какие-либо ошибки, команда печатает подробное сообщение.
Просмотр статуса Apache
Чтобы проверить состояние службы Apache, используйте следующую команду:
sudo systemctl status apache2
Вывод будет выглядеть примерно так:
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2019-05-29 21:16:55 UTC; 6s ago
Process: 938 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 956 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCES
Main PID: 997 (apache2)
Tasks: 55 (limit: 1152)
CGroup: /system.slice/apache2.service
├─ 997 /usr/sbin/apache2 -k start
├─ 999 /usr/sbin/apache2 -k start
└─1000 /usr/sbin/apache2 -k start
Проверьте версию Apache
Иногда вам может понадобиться узнать версию вашего Apache, чтобы вы могли отладить проблему или определить, доступна ли определенная функция.
Вы можете проверить свою версию Apache, запустив:
sudo apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2019-04-03T13:22:37
Опция -V (в верхнем регистре) показывает версию Apache вместе с опцией конфигурации.
sudo apache2 -V
Вывод
В этом руководстве мы показали вам некоторые из наиболее важных команд Apache. Если вы хотите узнать больше о командной строке Apache, посетите документацию Apache
11 января, 2018 1:44 пп
4 823 views
| Комментариев нет
Linux, VPS
Apache – это популярный веб-сервер с открытым исходным кодом, который отличается гибкостью, производительностью и широкой поддержкой. Данный мануал ознакомит вас с общими процедурами по поддержке Apache, включая управление сервисом, работу с виртуальными хостами и редактирование конфигураций.
Примечание: Мануал предназначен для пользователей, которые работают с Apache в Ubuntu. Если вы используете CentOS или другой дистрибутив RHEL, обратитесь к мануалу Установка LAMP stack на CentOS 7.
Каждый раздел может использоваться независимо от других, поэтому вы можете пропустить разделы, которые вам не нужны. Все условные значения в командах выделены красным; вместо этих значений вы можете подставить свои данные.
Каждый раздел предлагает ссылки на другие руководства, с которыми можно проконсультироваться.
Установка Apache
Чтобы установить сервис Apache, обновите индекс пакетов и запустите следующую команду:
sudo apt-get update
sudo apt-get install apache2
Читайте также: Установка веб-сервера Apache в Ubuntu 16.04
Автозагрузка Apache
Сервис Apache запускается автоматически. Если вы хотите изменить это поведение, введите:
sudo systemctl disable apache2.service
Чтобы снова добавить Apache в автозагрузку, введите:
sudo systemctl enable apache2.service
Управление сервисом Apache
Чтобы остановить сервер Apache, введите следующую команду:
sudo systemctl stop apache2
Чтобы запустить сервер Apache, введите:
sudo systemctl start apache2
Чтобы остановить сервис и запустить его снова, введите:
sudo systemctl restart apache2
Если вы изменили конфигурацию, вы можете перезагрузить Apache в текущей сессии. Введите следующую команду:
sudo systemctl reload apache2
Читайте также: Основы Systemd: управление сервисами и журналирование
Проверка состояния Apache
Чтобы проверить состояние Apache, введите команду:
sudo systemctl status apache2
Эта команда сообщит, работает ли Apache и покажет вам последние несколько строк логов.
Создание корневого каталога для статического сайта
При создании сайтов на Apache разработчики часто используют виртуальные хосты – это хосты, которые обслуживают отдельные сайты или домены. Для этого нужно создать document root, каталог верхнего уровня, который Apache проверяет при обслуживании контента.
sudo mkdir -p /var/www/example.com/public_html
Передайте права на каталог пользователю с доступом к sudo.
sudo chown -R $USER:$USER /var/www/example.com/public_html
Предоставьте остальным пользователям права на чтение контента:
find /var/www -type d -exec chmod 775 {} ;
Читайте также: Привилегии в Linux: что это и как с этим работать
Помните, что права доступа должны меняться в соответствии с ситуацией.
Создание корневого каталога для динамических файлов
Если ваш сайт использует динамические модули типа PHP, создайте каталог document root для этих файлов:
sudo mkdir -p /var/www/example.com/public_html
Передайте права на каталог пользователю sudo и группе www-data:
sudo chown -R 8host:www-data /var/www/example.com/public_html
Изменение конфигурации
При работе с виртуальными хостами необходимо изменить параметры конфигурации и добавить данные о домене, чтобы сервер Apache мог правильно реагировать на запросы.
Откройте файл виртуального хоста:
sudo nano /etc/apache2/sites-available/example.com.conf
Измените следующие строки:
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
После изменения файл будет выглядеть так:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Прежде чем сохранить файл, убедитесь, что в директивах нет ошибок.
Читайте также: Настройка виртуальных хостов Apache в Ubuntu 16.04
Включение и отключение конфигурационных файлов
Виртуальные хосты
Чтобы включить виртуальный хост, введите:
sudo a2ensite example.com.conf
Чтобы отключить конфигурационный файл (в данном примере это стандартный виртуальный хост):
sudo a2dissite 000-default.conf
Модули
Чтобы включить модули из каталога /etc/apache2/mods-available, введите:
sudo a2enmod example_mod
Чтобы отключить конкретный модуль:
sudo a2dismod example_mod
Конфигурационные файлы
Чтобы включить конфигурационные файлы из каталога /etc/apache2/conf-available (файлы, не связанные с виртуальными хостами), введите:
sudo a2enconf example-conf
Чтобы отключить файл, введите:
sudo a2disconf example-conf
Тестирование конфигурации
Каждый раз, когда вы вносите изменения в конфигурационные файлы Apache, обязательно выполните следующую команду, чтобы проверить наличие синтаксических ошибок:
sudo apache2ctl configtest
Важные файлы и каталоги Apache
Контент
Каталог /var/www/html хранит весь контент сайта (это корневой каталог сайта). Вы можете изменить стандартные настройки Apache и указать другие каталоги в var/www.
Конфигурация сервера
- /etc/apache2: конфигурационный каталог Apache (здесь хранятся все конфигурационные файлы веб-сервера).
- /etc/apache2/apache2.conf: главный конфигурационный файл веб-сервера, в котором находятся все глобальные параметры. Все остальные файлы загружаются через этот файл. Также тут хранятся директивы FollowSymLinks, которые отвечают за включение и отключение конфигурационных файлов.
- /etc/apache2/sites-available/: здесь находятся все виртуальные хосты (в том числе и отключенные). В этом каталоге происходят все изменения в настройке виртуального хоста. Эти файлы включаются с помощью команды a2ensite.
- /etc/apache2/sites-enabled/: здесь хранятся файлы включенных виртуальных хостов. При запуске или перезагрузке Apache читает конфигурационные файлы и ссылки в этом каталоге, чтобы собрать полную конфигурацию.
- /etc/apache2/conf-available и /etc/apache2/conf-enabled: работают по тому же принципу, что и sites-available и sites-enabled. Эти каталоги предназначены для хранения фрагментов конфигурации, которые не входят в виртуальные хосты.
- /etc/apache2/mods-available и /etc/apache2/mods-enabled: эти каталоги работают аналогичным образом. Они предназначены для хранения модулей. В них находятся файлы двух типов: файлы с расширением .load загружают модули, а файлы .conf хранят их конфигурации.
Логи
- /var/log/apache2/access.log – это лог, который регистрирует все запросы Apache (если в конфигурации веб-сервера не сказано другого).
- /var/log/apache2/error.log – это лог ошибок. Настроить уровень логирования можно с помощью параметра LogLevel в /etc/apache2/apache2.conf.
Другой способ доступа к информации о компонентах Apache – через journald. Этот инструмент собирает информацию логов приложений и ядра. Чтобы просмотреть записи для модуля Apache, введите:
sudo journalctl -u apache2
Заключение
Данный мануал перечислил общие процедуры по поддержке сервера Apache. Чтобы узнать больше о работе с Apache, ознакомьтесь со следующими руководствами:
- Установка стека LAMP в Ubuntu 16.04
- Перемещение корневого каталога Apache в Ubuntu 16.04
- Создание сертификата Let’s Encrypt для Apache в Ubuntu 16.04
- Использование файла .htaccess
- Перезапись URL-адресов на Apache в Ubuntu 16.04
- Настройка Apache как обратного прокси-сервера с помощью mod_proxy в Ubuntu 16.04
Tags: Apache
Prerequisite: How do Web Servers work?
Apache is one of the most widely used free, open-source Web Server applications in the world, mostly used in Unix-like operating systems but can also be used in windows. As a developer or system administrator, it will be very helpful for you to know about the Apache webserver. It has many notable features among which Virtual hosting is one such notable feature that allows a single Apache Web Server to serve a different number of websites.
We will discuss some of the most useful commands to manage Apache webserver (also called httpd on some other Linux-based distros) in Linux that you should know as a developer or system administrator. The commands that are going to be discussed must be executed as a root or sudo user.
Useful Commands to Manage Apache Web Server in Linux
Install Apache Server:
Installing Apache server on Debian/Ubuntu Linux using the following command:
sudo apt install apache2

apache 2 already installed on my system
Check Apache Version:
For checking the installed version of the Apache webserver on the Linux system, use the following command:
sudo apache2 -v

apache2 version
Display Apache compile settings:
To find about the Apache compile settings use the following command:
apache2 -V

Finding Syntax Errors in Apache Configuration File:
For checking Apache configuration files for finding any syntax errors on Debian-based systems before restarting the service use the following command:-
sudo apache2ctl -t

Syntax is Ok
Finding Errors in Apache Virtual Host:
Errors in Apache virtual host can be found out by using the following command below:-
apache2ctl -S

All the virtual hosts on the server, their options, and the file names and line numbers that they define, an error message with the line number are displayed that is very useful for troubleshooting the configuration file.
Using Apache2 Service Commands
All the commands that will be discussed are applicable for Debian and Ubuntu Linux.
Start Apache Service:
For starting the Apache service, run the following command:
sudo service apache2 start
Restart Apache Service:
For restarting the Apache service, run the following command:
sudo systemctl restart apache2
View Apache Service Status:
For viewing the Apache service, run the following command:
sudo systemctl status apache2

status is active
Reload Apache Service:
For reloading(if you have made any changes in the configuration file then you can use this )the Apache service, run the following command:
sudo systemctl reload apache2
Restart the Apache Service:
For reloading the Apache service, run the following command:-
systemctl restart apache2
Stop Apache Service:
For stopping the Apache service, run the following command:-
sudo systemctl stop apache2
Show Apache Command Help:
For getting help with the Apache service commands by running the following command:-
sudo apache2 -h

Prerequisite: How do Web Servers work?
Apache is one of the most widely used free, open-source Web Server applications in the world, mostly used in Unix-like operating systems but can also be used in windows. As a developer or system administrator, it will be very helpful for you to know about the Apache webserver. It has many notable features among which Virtual hosting is one such notable feature that allows a single Apache Web Server to serve a different number of websites.
We will discuss some of the most useful commands to manage Apache webserver (also called httpd on some other Linux-based distros) in Linux that you should know as a developer or system administrator. The commands that are going to be discussed must be executed as a root or sudo user.
Useful Commands to Manage Apache Web Server in Linux
Install Apache Server:
Installing Apache server on Debian/Ubuntu Linux using the following command:
sudo apt install apache2

apache 2 already installed on my system
Check Apache Version:
For checking the installed version of the Apache webserver on the Linux system, use the following command:
sudo apache2 -v

apache2 version
Display Apache compile settings:
To find about the Apache compile settings use the following command:
apache2 -V

Finding Syntax Errors in Apache Configuration File:
For checking Apache configuration files for finding any syntax errors on Debian-based systems before restarting the service use the following command:-
sudo apache2ctl -t

Syntax is Ok
Finding Errors in Apache Virtual Host:
Errors in Apache virtual host can be found out by using the following command below:-
apache2ctl -S

All the virtual hosts on the server, their options, and the file names and line numbers that they define, an error message with the line number are displayed that is very useful for troubleshooting the configuration file.
Using Apache2 Service Commands
All the commands that will be discussed are applicable for Debian and Ubuntu Linux.
Start Apache Service:
For starting the Apache service, run the following command:
sudo service apache2 start
Restart Apache Service:
For restarting the Apache service, run the following command:
sudo systemctl restart apache2
View Apache Service Status:
For viewing the Apache service, run the following command:
sudo systemctl status apache2

status is active
Reload Apache Service:
For reloading(if you have made any changes in the configuration file then you can use this )the Apache service, run the following command:
sudo systemctl reload apache2
Restart the Apache Service:
For reloading the Apache service, run the following command:-
systemctl restart apache2
Stop Apache Service:
For stopping the Apache service, run the following command:-
sudo systemctl stop apache2
Show Apache Command Help:
For getting help with the Apache service commands by running the following command:-
sudo apache2 -h

I’m looking for a command that checks the validity of the config files in Apache server on both Debian and RHEL distros. I need to do this prior to restart, so there will be no downtime.
ivanleoncz
1,5234 gold badges18 silver badges32 bronze badges
asked Feb 7, 2011 at 10:14
answered Feb 7, 2011 at 10:16
keatchkeatch
4,2961 gold badge14 silver badges3 bronze badges
4
The Apache config test (apachectl configtest, or its equivalents) only tests the config file (and the files it recursively includes) for valid syntax. However, the original question asked for preventing downtime. Even when apachectl configtest does not return an error, an actual restart may still fail, causing downtime.
Common causes for such failures include missing or inaccessible SSL certificates, missing directories for log files or a missing website root directory. Often, such errors are caused by removing a vhost’s directory without removing the vhost Apache config file. It is highly recommended to use a tool like puppet or ansible to prevent such inconsistencies.
Seeing that this question is the number one hit when googling «apache config lint» I thought I’d mention this little detail…
answered Feb 19, 2019 at 11:39
BertDBertD
2612 silver badges3 bronze badges
9
apachectl configtest is the correct answer.
Unfortunately I’ve got a windows installation where apachectl is missing.
Here calling httpd also helps.
answered Nov 16, 2015 at 6:09
![]()
Matthias MMatthias M
2212 silver badges4 bronze badges
What I usually do is
apache2ctl -t && apache2ctl graceful
answered Jun 21, 2020 at 10:40
mivkmivk
3,6371 gold badge37 silver badges32 bronze badges
2
There is always a good idea to take a look at the error logs.
less /var/log/httpd/error_log
— Paul
answered Dec 6, 2022 at 11:30
1
I have actually tried before:
apachectl configtest
We can actually see the status code to know the error:
/etc/init.d/apache2 restart; systemctl status apache2.service
● apache2.service — The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2021-05-30 17:16:45 +08; 41ms ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 168391 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
CPU: 67msMay 30 17:16:45 kali systemd[1]: Starting The Apache HTTP Server…
May 30 17:16:45 kali apachectl[168394]: AH00526: Syntax error on line
13 of /etc/apache2/mods-enabled/security2.conf
answered May 30, 2021 at 9:17
Alvin567Alvin567
1111 silver badge7 bronze badges
How do I check for syntax errors in the configuration of my apache server without having to restart or reload the rules? This would be preferably done from the terminal/command line.
asked Jul 11, 2012 at 23:36
Cosmin AtanasiuCosmin Atanasiu
2,4023 gold badges21 silver badges26 bronze badges
If syntax is ok:
sudo apache2ctl configtest
Will reply with:
Syntax OK
answered Oct 29, 2019 at 2:17
![]()
You can use this as well if you don’t have httpd.
apachectl configtest
answered Aug 3, 2018 at 5:49
prashantprashant
2,5484 gold badges24 silver badges38 bronze badges
On linux, you use
/usr/sbin/httpd -t
On windows, you would use the equivalent command to the httpd.exe file
answered Jul 11, 2012 at 23:36
Cosmin AtanasiuCosmin Atanasiu
2,4023 gold badges21 silver badges26 bronze badges