Ubuntu restart apache2: Start / Stop and Restart Apache 2 Web Server Command
Apache2 перезапуск не удался на ubuntu
Debian/Ubuntu Linux Конкретные Команды
Вы можете использовать сервис или команду /etc/init.d / следующим образом на Debian Linux версии 7.x или Ubuntu Linux версии Ubuntu 14.10 или старше:
Перезагрузите Apache 2 веб-сервер, введите:
# /etc/init.d/apache2 restart
OR
$ sudo /etc/init.d/apache2 restart
OR
$ sudo service apache2 restart
Чтобы остановить веб-сервер Apache 2, Введите:
# /etc/init.d/apache2 stop
OR
$ sudo /etc/init.d/apache2 stop
OR
$ sudo service apache2 stop
Чтобы запустить веб-сервер Apache 2, Введите:
# /etc/init.d/apache2 start
OR
$ sudo /etc/init.d/apache2 start
OR
$ sudo service apache2 start
Примечание о пользователях Debian/Ubuntu Linux systemd
Используйте следующие команды для Debian Linux версии 8. x+ или Ubuntu Linux версии Ubuntu 15.04+ или выше:
Команда запуска
systemctl start apache2.service
Команда останова
systemctl stop apache2.service
Команда перезапуска
systemctl restart apache2.service
CentOS/RHEL (Red Hat) Linux версия 4.x/5.x/6.x или более старые специфические команды
Начать
service httpd start
Стоп
service httpd stop
Перезапуск
service httpd restart
CentOS/RHEL (Red Hat) Linux версия 7.x или более новые специфические команды
Большинство современных дистрибутивов сейчас используют systemd, поэтому вам нужно использовать следующую команду:
Команда запуска
systemctl start httpd.service
Команда останова
systemctl stop httpd.service
Команда перезапуска
systemctl restart httpd. service
Общий метод для start/stop/restart Apache на A Linux/Unix
Синтаксис следующий (должен быть запущен от имени пользователя root):
остановить его
apachectl -k stop
перезапустить его
apachectl -k restart
перезапуска его
apachectl -k graceful
Запустить его
apachectl -f /path/to/your/httpd.conf
apachectl -f /usr/local/apache2/conf/httpd.conf
Если какая-то другая служба занята на порту 80 (например.: Скайп),
попробуйте код:
sudo /etc/init.d/apache2 stop
далее следует код:
sudo killall apache2
затем убедитесь, что никакие службы не работают на коде порта 80:
sudo netstat -l|grep www
затем (re)запустите код apache:
sudo /etc/init.d/apache2 restart
Как установить веб-сервер Apache в Ubuntu 18.
04
Введение
HTTP сервер Apache является самым широко используемым веб-сервером в мире. Он предоставляет множество удобных функций включая динамически загружаемые модули, широкую поддержку мультимедиа, и интеграцию с другим популярным программным обеспечением.
В этом руководстве мы расскажем, как установить веб-сервер Apache на ваш сервер с Ubuntu 18.04.
Необходимые условия
Перед тем, как начать следовать шагам, описанным в этом руководстве, вам необходимо настроить отдельный, не-рутовый (non-root) профиль пользователя на вашем сервере с Ubuntu 18.04. Кроме того, вам потребуется настроить базовый файрвол для блокирования всех портов, кроме необходимых для работы Apache. Вы можете ознакомиться с процессом настройки аккаунта пользователя и настройкой файрвола на вашем сервере следуя шагам нашего руководства по первичной настройке сервера на Ubuntu 18.04.
После завершения создания аккаунта войдите на ваш сервер с помощью вновь созданного пользователя.
Шаг 1 — Установка Apache
Apache доступен из дефолтных репозиториев Ubuntu, что позволяет устанавливать его с помощью средств управления пакетами.
Давайте начнём с обновления локального индекса пакетов:
Далее установим пакет apache2
:
После подтверждения установки apt
установит Apache и все необходимые зависимости.
Шаг 2 — Настройка файрвола
Перед тестированием установки Apache необходимо изменить настройки файрвола для разрешения доступа извне к дефолным веб-портам. Если вы следовали инструкциям по настройке файрвола из руководства по первичной настройке сервера, ваш файрвол UFW уже должен быть настроен таким образом, чтобы ограничивать доступ к вашему серверу.
В процессе установки Apache регистрирует себя в конфигурации UFW, создавая несколько профилей приложения, которые могут быть использованы для включения и отключения доступа к Apache через файрвол.
Выведем профили приложений ufw
следующей командой:
Вы увидите список приложений пользователей:
Вывод
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Как видно из этого вывода, для Apache доступно три профиля:
- Apache: этот профиль открывает порт 80 (обычный, не шифрованный веб-трафик).
- Apache Full: этот профиль открывает порты 80 (обычный, не шифрованный веб-трафик) и 443 (трафик шифруется с помощью TLS/SSL).
- Apache Secure: этот профиль открывает только порт 443 (трафик шифруется с помощью TLS/SSL).
Рекомендуется включать самый ограниченный профиль, который будет позволять входящий трафик. Поскольку мы не настраивали SSL для нашего сервера в этом руководстве, нам потребуется включить только порт 80:
Вы можете проверить внесённые изменения командой:
В выводе вы должны видеть, что HTTP трафик разрешён:
Вывод
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Как видно из этого вывода профиль был включен для разрешения доступа к веб-серверу.
Шаг 3 — Проверка вашего веб-сервера
После завершения процесса установки Ubuntu 18.04 запустит Apache. Веб-сервер уже должен быть запущен.
Проверим в системе инициализации systemd
, что сервис работает, следующей командой:
- sudo systemctl status apache2
Вывод
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago
Main PID: 2583 (apache2)
Tasks: 55 (limit: 1153)
CGroup: /system.slice/apache2.service
├─2583 /usr/sbin/apache2 -k start
├─2585 /usr/sbin/apache2 -k start
└─2586 /usr/sbin/apache2 -k start
Как видно из представленного вывода, сервис выглядит работающим корректно. Тем не менее, самый надёжный способ проверить работу Apache — это запросить веб-страницу.
Вы можете запросить дефолтную веб-страницу Apache с помощью IP адреса вашего сервера. Если вы не знаете IP адрес вашего сервера, вы можете найти его несколькими способами с помощью командной строки.
Введите следующую команду:
Она вернёт несколько адресов, разделённых пробелами. Вы можете попробовать каждый из них в вашем веб-браузере.
Другой способ заключается в использовании команды, которая позволяет увидеть ваш IP адрес из другого места в сети Интернет:
После того, как вы найдёте IP адрес вашего сервера, введите его в свой веб-браузер:
- http://IP_адрес_вашего_сервера
Вы должны увидеть дефолтную страницу Apache для Ubuntu 18.04:
Эта страница свидетельствует о том, что Apache работает корректно. На этой странице также представлена базовая информация о важных файлах и директориях Apache.
Шаг 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>
<h2>Success! The example.com server block is working!</h2>
</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 [email protected]
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
в вашем браузере, где в результате вы должны увидеть что-то в этом роде:
Шаг 6 — Важные файлы и директории Apache
Теперь, когда вы знаете, как управлять сервисом 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.
«Apache2.service не активен, не может перезагрузить»
При запуске sudo service apache2 reload
я получаю ошибку:
apache2. service is not active, cannot reload
Выход из sudo service apache2 status
root@gamma:~# sudo service apache2 status
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: inactive (dead) since Sat 2016-10-15 08:23:11 UTC; 2h 28min ago
Docs: man:systemd-sysv-generator(8)
Process: 2203 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 2185 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Oct 15 08:23:10 gamma systemd[1]: Starting LSB: Apache2 web server...
Oct 15 08:23:10 gamma apache2[2185]: * Starting Apache httpd web server apache2
Oct 15 08:23:11 gamma apache2[2185]: Action 'start' failed.
Oct 15 08:23:11 gamma apache2[2185]: The Apache error log may have more information.
Oct 15 08:23:11 gamma apache2[2185]: *
Oct 15 08:23:11 gamma apache2[2203]: * Stopping Apache httpd web server apache2
Oct 15 08:23:11 gamma apache2[2203]: *
Oct 15 08:23:11 gamma systemd[1]: Started LSB: Apache2 web server.
root@gamma:~# sudo service apache2 reload
apache2.service is not active, cannot reload.
root@gamma:~#
Выход из error.log
root@gamma:/# sudo service apache2 force-reload
apache2.service is not active, cannot reload.
root@gamma:/# grep '15 08:23:' /var/log/apache2/error.log
root@gamma:/# zgrep -h 'Oct 15 08:23:' /var/log/apache2/error.log*
[Sat Oct 15 08:23:11.012917 2016] [ssl:emerg] [pid 2202] AH02562: Failed to configure certificate bot.testingsite.cf:443:0 (with chain), check /etc/apache2/ssl/bot.testingsite.cf.crt
[Sat Oct 15 08:23:11.013037 2016] [ssl:emerg] [pid 2202] SSL Library Error: error:0906D06C:PEM rou tines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
[Sat Oct 15 08:23:11.013056 2016] [ssl:emerg] [pid 2202] SSL Library Error: error:140DC009:SSL rou tines:SSL_CTX_use_certificate_chain_file:PEM lib
root@gamma:/#
Я попытался включить сертификат SSL. Namecheap предоставил мне файл, и я использовал его в файле ..cf.crt. Увидев эту ошибку, я попытался проверить с помощью метода DCV. Но все же я получаю эту ошибку. sudo service apache2 restart
не дает никакого вывода.
Ошибка перезагрузки Apache2 в Ubuntu 16.04 Ubuntu Linux
Я пытаюсь использовать domain
для моего localhost
вместо localhost
или 127.0.0.1
Я добавил файл конфигурации myconfig.conf
в sites-availbale
Я также включил его, используя sudo a2ensite myconfig.conf
Когда я перезапускаю сервер apache2
используя sudo sudo systemctl restart apache2
, я получаю ошибку как
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
Я переустановил apache2
, удалив его, но он дает ошибку как
Job for apache2. service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details. invoke-rc.d: initscript apache2, action "start" failed.
Выход sudo journalctl -xe
May 26 12:42:51 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:52 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:53 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:54 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:55 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:56 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:57 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:58 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:42:59 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:00 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:01 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1. 1 May 26 12:43:02 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:03 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:04 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:05 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:06 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:07 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:08 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:09 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:10 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:11 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:12 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:13 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:14 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:15 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:16 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1. 1 May 26 12:43:17 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:18 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:19 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:20 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:21 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:22 vostro-tbe gnome-session[2123]: GET /chrome HTTP/1.1 May 26 12:43:22 vostro-tbe sudo[16839]: anuj : TTY=pts/1 ; PWD=/etc/apache2/sites-available ; USER=root ; COMMAND=/bin/journalctl -xe May 26 12:43:22 vostro-tbe sudo[16839]: pam_unix(sudo:session): session opened for user root by anuj(uid=0)
Вывод состояния systemctl status apache2.service
● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: failed (Result: exit-code) since Thu 2016-05-26 12:42:43 IST; 53s ago Docs: man:systemd-sysv-generator(8) Process: 16781 ExecStart=/etc/init. d/apache2 start (code=exited, status=1/FAILURE) May 26 12:42:43 vostro-tbe apache2[16781]: * May 26 12:42:43 vostro-tbe apache2[16781]: * The apache2 configtest failed. May 26 12:42:43 vostro-tbe apache2[16781]: Output of config test was: May 26 12:42:43 vostro-tbe apache2[16781]: apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/php7.0.load: Cannot load /usr/lib/apache2/modules/libphp7.0.so May 26 12:42:43 vostro-tbe apache2[16781]: Action 'configtest' failed. May 26 12:42:43 vostro-tbe apache2[16781]: The Apache error log may have more information. May 26 12:42:43 vostro-tbe systemd[1]: apache2.service: Control process exited, code=exited status=1 May 26 12:42:43 vostro-tbe systemd[1]: Failed to start LSB: Apache2 web server. May 26 12:42:43 vostro-tbe systemd[1]: apache2.service: Unit entered failed state. May 26 12:42:43 vostro-tbe systemd[1]: apache2.service: Failed with result 'exit-code'.
Выход sudo apache2ctl configtest
apache2: Syntax error on line 140 of /etc/apache2/apache2. conf: Syntax error on line 2 of /etc/apache2/mods-enabled/php7.0.load: Cannot load /usr/lib/apache2/modules/libphp7.0.so into server: /usr/lib/apache2/modules/libphp7.0.so: cannot open shared object file: No such file or directory Action 'configtest' failed. The Apache error log may have more information.
содержимое myconfig.conf
<VirtualHost *:80> ServerAdmin [email protected] ServerName website.com ServerAlias www.website.com DocumentRoot /var/www/html/website ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Установите пакет libapache2-mod-php7.0
или отключите модуль PHP7, запустив
sudo a2dismod php7.0
Я также получил ту же проблему, и причина, по которой она возникла, была чем-то вроде этого,
Я создал виртуальный хост example.com.conf в etc/apache2/sites-available
, поэтому он создал ссылку на него в etc/apache2/sites-enabled
когда u etc/apache2/sites-enabled
виртуальный хост для этого конкретного хоста.
Позже я удалил файл example.com.conf из etc/apache2/sites-available
, но забыл отключить хост, поэтому ссылка на этот хост по-прежнему доступна на etc/apache2/sites-enabled
, поэтому это вызывает ошибку мой случай, поэтому я просто удалил связанный файл с etc/apache2/sites-enabled
и мой apache начал работать.
Если вы используете php7, обязательно отключите модуль php5:
sudo a2dismod php5
это сработало для меня
Ваша проблема связана с вашими 2 строками в вашем файле конфигурации. 2 пути журнала приводят к ошибке с Apache.
У меня была такая же проблема, и когда я удалил две строки файла журнала точно так же, как у вас, я смог перезапустить apache.
установка, настройка и способы защиты от атак
Веб-сервер Apache не нуждается в представлении. Это программное обеспечение с открытым исходным кодом, выпущенное фондом Apache, один из самых используемых веб-серверов в мире. Рассмотрим, как его установить и как настроить конфигурацию брандмауэра для разрешения HTTP- и HTTPS-трафика и виртуальные хосты в Ubuntu 18.04.
Этапы установки Apache
Установить веб-сервер Apache в Ubuntu 18.04 Bionic Beaver очень просто:
$ sudo apt-get update && apt-get install apache2
Сценарии установки Ubuntu позаботятся о запуске и включении apache2-сервиса при загрузке.
Настройка брандмауэра
Чтобы получить доступ к содержимому сервера на той же машине, где он работает, нужно запустить веб-браузер и ввести в адресную строку localhost
. Если всё настроено правильно, страница поприветствует словами: «It works!».
http://local.server.ip
Если в системе включён брандмауэр (как и должно быть), то чтобы сделать контент доступным извне нашей машины, нужно разрешить входящий трафик через порт 80. Команда для запуска зависит от используемого менеджера брандмауэра. Например, при использовании ufw
(используется в Ubuntu по умолчанию) мы должны запустить:
$ sudo ufw allow http
Если вы используете firewalld
, можно запустить:
$ sudo firewall-cmd --permanent --add-service=http && firewall-cmd --reload
Обратите внимание, что приведённая выше команда будет по умолчанию действовать в зоне firewalld
. Если вы хотите работать с другой зоной, нужно указать её с помощью опции --zone
.
Настройка виртуального хоста
Веб-сервер Apache может запускать несколько веб-сайтов на одном компьютере. Каждый запущенный сайт («виртуальный хост» в терминологии Apache) должен иметь свою собственную конфигурацию. Виртуальный хост может быть IP или именем.
В этом руководстве мы сосредоточимся на втором типе, так как он проще в настройке и не требует нескольких IP-адресов (виртуальные хосты на основе имён позволяют нескольким веб-сайтам использовать один и тот же IP-адрес).
Виртуальный хост по умолчанию
В Ubuntu виртуальный хост по умолчанию определён в каталоге /etc/apache2/sites-available
внутри файла 000-default.conf
. Рассмотрим его:
<VirtualHost *:443>
[...]
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
[...]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access. log combined
[...]
</VirtualHost>
Директива <VirtualHost>
на первой строке применяется для группы параметров, используемых Apache для конкретного виртуального хоста. Первое, что вы увидите в ней, — инструкцию *:80
. Она указывает IP-адрес и порт, используемый виртуальным хостом.
Несколько сайтов могут быть определены в одном и том же файле или по отдельности. В обоих случаях первое определение считается значением по умолчанию, если ни один другой виртуальный хост не соответствует запросу клиента.
Директива на строке 3 не является обязательной, она используется, чтобы указать контактный адрес. Обычно в качестве аргумента директивы предоставляют действительный адрес электронной почты, чтобы было проще связаться с администратором.
DocumentRoot
в строке 4 является обязательным, это важно для конфигурации виртуального хоста. Аргумент этой инструкции должен иметь доступ к файловой системе. Указанный каталог будет считаться корневым каталогом виртуального хоста и не должен содержать завершающий символ «/». В этом случае корневая директория документа — /var/www/html
. Если мы посмотрим на её содержимое, то увидим, что она содержит страницу index.html
, которую вы до этого видели в качестве страницы приветствия сервера.
Последние две команды на строках 8–9, представленные в этом VirtualHost
, — ErrorLog
и CustomLog
. Используя первый, вы указываете файл, в который сервер будет записывать возникающие ошибки. Второй используется для регистрации запросов, отправленных на сервер в указанном формате.
Новый виртуальный хост
Вы видели, как определяется виртуальный хост по умолчанию. Теперь предположим, что вы хотите разместить другой веб-сайт с помощью вашего веб-сервера. Для этого вам нужно определить новый виртуальный хост.
Как сказано выше, файлы виртуальных хостов должны быть определены внутри каталога /etc/apache2/sites-available
(по крайней мере в дистрибутивах на основе Debian). Поэтому создадим этот файл там. Прежде чем сделать это, следует создать каталог, который будет использоваться как document root, а также создать базовую страницу, которая будет отображаться при открытии сайта:
$ sudo mkdir /var/www/example && echo "Welcome to example!" > /var/www/example/index.html
Теперь можно приступить к настройке виртуального хоста:
<VirtualHost *:80>
DocumentRoot /var/www/example
ServerName www.example.local
</VirtualHost>
Это минимальная конфигурация, необходимая для его запуска. Здесь вы можете увидеть новую директиву ServerName
. Это то, что определяет ваш виртуальный хост. Сохраним этот файл как example.conf
. Чтобы активировать ваш виртуальный хост, используйте команду a2ensite
. Эта команда создаёт символическую ссылку файла в каталоге /etc/apache2/sites-enabled
:
$ sudo a2ensite example.conf
После этого следует перезагрузить конфигурацию сервера:
$ sudo systemctl reload apache2. service
Чтобы убедиться, что конфигурация работает, вы должны добавить запись в файл /etc/hosts
той машины, с которой вы пытаетесь связаться с сайтом.
$ sudo echo "192.168.122.241 www.example.local" >> /etc/hosts
Без этой строки (и без записи DNS) было бы невозможно связать адрес сервера с именем вашего виртуального хоста, а использование IP-сервера напрямую вместо этого «инициировало» бы виртуальный хост по умолчанию.
С клиентского компьютера, если вы теперь перейдёте к www.example.local
, вы должны увидеть минимальную страницу, которую настроили выше.
Настройка SSL
SSL (Secure Sockets Layer) — это технология, которая позволяет нам шифровать данные, связанные с соединением между клиентом и сервером. При использовании SSL-сертификатов HTTPS (Hyper Text Transfer Protocol Secure) заменяет HTTP в URL-адресе.
SSL-сертификаты выдаются центром сертификации и могут быть очень дорогими, однако есть два других способа получить сертификат: создать самозаверяющий сертификат или воспользоваться сервисом Let’s encrypt.
Создаём самоподписанный SSL-сертификат
Создание самозаверенного сертификата — несложная задача. Это может быть удобно, если вы просто хотите получить шифрование. Мы можем создать самозаверяющий сертификат с помощью утилиты OpenSSL:
$ sudo openssl req -x509 \
-days 365 \
-sha256 \
-newkey rsa:2048 \
-nodes \
-keyout example.key \
-out example-cert.pem
Посмотрим, что делает эта команда. Первая опция, -x509
определяет, что формируется сертификат стандарта X509.
С помощью -days
мы устанавливаем срок действия сертификата в днях. Следующая опция — -newkey
. С её помощью мы создаём новый ключ, в данном случае RSA-ключ размером 2048 бит. В тестовом примере нам не нужно шифровать файл закрытого ключа, поэтому используем -nodes
. Если эта опция не указана, файл, в котором хранится ключ, будет защищён паролем, который нужно будет предъявлять каждый раз при перезапуске веб-сервера.
С помощью -keyout
и -out
мы указываем файл для записи сгенерированного ключа и сертификата соответственно. При запуске команды нам будет предложено ответить на несколько вопросов, после чего будет сгенерирован ключ и сертификат.
Скопируйте сгенерированный ключ и сертификат в каталоги /etc/ssl/private
и /etc/ssl/ssl-certs
соответственно:
$ sudo cp example-cert.pem /etc/ssl/certs
Сертификат является общедоступным, поэтому не требует специального разрешения.
Теперь ключ:
$ sudo cp example.key /etc/ssl/private
Важно настроить права доступа к файлу ключа. Папка /etc/ssl/private
принадлежит root-пользователю и группе ssl-cert
, и у неё есть права доступа 710. Это означает, что владелец имеет на неё полные права, а владелец группы может только получить к ней доступ и перечислить её содержимое, но не может дать разрешение другим:
$ ls -ld /etc/ssl/private
drwx--x--- 2 root ssl-cert 4096 Mar 16 11:57 /etc/ssl/private
Изменим права доступа к файлу ключа, предоставив владельцу права на чтение и запись, а группе — только для чтения:
$ sudo chown root:ssl-cert /etc/ssl/private/example. key
$ sudo chmod 640 /etc/ssl/private/example.key
Теперь, чтобы использовать сертификат, нужно включить модуль SSL с помощью команды a2enmod
:
$ sudo a2enmod ssl
Почти всё готово. Теперь пришло время изменить наш виртуальный хост и настроить его следующим образом:
<VirtualHost *:443>
DocumentRoot /var/www/example
ServerName www.example.local
# Enable ssl engine
SSLEngine on
SSLCertificate /etc/ssl/certs/example-cert.pem
SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>
Порт 443 в строке 1 — это порт, используемый для HTTPS (вместо порта 80, используемого для HTTP).
Мы также добавили инструкцию SSLEngine
on в строке 6.
Наконец, в строках 8–9 мы определили пути для сертификата и файла ключей, используя инструкции SSLCertificateFile
и SSLCertificateKeyFile
.
Теперь следуйте инструкциям по открытию порты брандмауэра из начале статьи, но на этот раз чтобы разрешить HTTPS-службу:
$ sudo ufw allow https
Наконец, перезагрузите конфигурацию Apache:
$ sudo systemctl reload apache2
Готово. Теперь, если мы перейдём по адресу https://www.example.local, мы должны увидеть веб-сервер, предупреждающий нас о том, что используемый сертификат небезопасен. Это, однако, признак того, что наш сертификат работает, и трафик между клиентом и сервером будет зашифрован (вам необходимо добавить исключение для сертификата, чтобы использовать его).
Настройка Let’s encrypt
Альтернатива коммерческим и самозаверенным сертификатам — «Let’s encrypt». Это бесплатный, автоматизированный и открытый центр сертификации. Его цель — дать возможность автоматически получить сертификат, которому доверяет браузер, без какого-либо вмешательства человека.
Для этого используется протокол ACME (certificate management agent), который запускается на сервере.
Чтобы получить сертификат, вы должны подтвердить, что у вас есть контроль над доменом, для которого вы хотите его использовать. Если у вас нет доступа к shell на сервере, нужно связаться с вашим поставщиком услуг, чтобы активировать сертификат от вашего имени, но, возможно, на панели конфигурации сервиса есть специальный раздел.
Если же у вас есть доступ к shell, необходимо установить клиент certbotACME
.
Для установки Certbot на Ubuntu 18.04 достаточно запустить:
$ sudo apt-get update && apt-get install certbot python-certbot-apache
Пакет Certbot поставляется с модулем systemd timer
, который будет запускать Certbot два раза в день, чтобы поддерживать сертификат в актуальном состоянии. Получить сертификат довольно просто:
$ sudo certbot --apache -m -d
Очевидно, чтобы это работало, домен должен правильно указывать на ваш общедоступный IP-адрес. Certbot предложит вам несколько вопросов для настройки конфигурации, и, если всё пойдёт хорошо, сертификат и ключ будут сохранены в каталоге /etc/letsencrypt/live/
. Просто настройте файл виртуального хоста, чтобы указать на них, и всё готово.
Как обезопасить сервер Apache
Основные средства защиты
Установка Fail2ban на Ubuntu Server 18.
04
Если вы хотите обезопасить свой сервер Ubuntu, первое, что вы должны сделать, — это установить систему обнаружения вторжений Fail2ban.
Fail2ban отслеживает определённые файлы журналов (в /var/log
) на предмет неудачных попыток входа или автоматических атак на сервер. Когда обнаруживается попытка компрометации с IP-адреса, Fail2ban блокирует его, добавляя новую цепочку в iptables
и предотвращая доступ или дальнейшую атаку на сервер.
Fail2ban настолько легко установить и использовать, что его можно рассматривать как простое и универсальное решение для всех серверов Linux.
Установить его просто. Войдите в свой сервер Ubuntu и обновите его при необходимости. Обратите внимание, что если в этом процессе обновлено ядро, сервер нужно перезагрузить, поэтому выберите время, когда перезагрузка возможна. Чтобы обновить сервер, введите следующие команды:
sudo apt-get update
sudo apt-get upgrade
После выполнения команд при необходимости перезагрузите сервер.
Установить Fail2ban можно с помощью одной команды:
sudo apt-get install -y fail2ban
Проверьте установленную версию:
fail2ban-server --version
После этого Fail2ban готов к работе. Запустить и включить сервис можно так:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Настройка jail
Настроим его для попыток входа по SSH. В каталоге /etc/fail2ban
вы найдёте файл jail.conf
. Не редактируйте его. Вместо этого создайте новый файл jail.local
, который переопределит любые подобные настройки в jail.conf
. Новая конфигурация будет отслеживать /var/log/auth.log
, использовать фильтр sshd fail2ban
, устанавливать для порта SSH значение 22 и устанавливать максимальное количество попыток — 3. Для этого выполните команду:
sudo nano /etc/fail2ban/jail.local
В новый файл вставьте следующее содержимое:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth. log
maxretry = 3
Сохраните и закройте его. Перезапустите Fail2ban с помощью команды:
sudo systemctl restart fail2ban
На этом этапе, если кто-либо попытается войти на ваш сервер Ubuntu через SSH и эта попытка 3 раза завершится ошибкой, он не сможет больше войти, поскольку iptables заблокирует IP-адрес.
Тестирование и разблокирование
Вы можете проверить, работает ли jail, намеренно провалив три попытки входа на сервер через SSH. После третьей неудачной попытки соединение будет зависать. Нажмите Ctrl+C, чтобы выйти, а затем попытайтесь вернуться по SSH на сервер. Вы больше не сможете использовать SSH на этом сервере с того IP-адреса, который вы использовали.
Затем вы можете разблокировать свой тестовый IP-адрес с помощью следующей команды:
sudo fail2ban-client set sshd unbanip ip_address
Где ip_address
— запрещённый IP-адрес.
Теперь вы снова можете войти.
Модуль mod_evasive
Ещё одна отличная утилита для обнаружения и блокировки IP-адресов, которые используются при атаке типа «отказ в обслуживании». Модуль помещает подозрительные IP-адреса во временный чёрный список и сохраняет их там, если они продолжают подозрительно себя вести.
Благодаря простоте настройки и эффективность он стал одним из любимых инструментов защиты систем Apache. Если вы хотите защитить свой сайт без затрат, можете также использовать его.
Установка mod_evasive в Ubuntu
Введите команду:
# apt-get update
Затем установите вспомогательную утилиту:
sudo apt-get install apache2-utils
Чтобы установить модуль mod_evasive в Ubuntu, введите следующее:
# apt-get install libapache2-mod-evasive
Настройка mod_evasive
Как и большинство программных пакетов Linux, mod_evasive
управляется файлом конфигурации.
Откройте его в текстовом редакторе с помощью следующей команды:
sudo nano /etc/apache2/mods-enabled/evasive.conf
Найдите запись:
#DOSEmailNotify you@yourdomain. com
Знак #
помечает это как комментарий. Удалите его, затем замените [email protected]
своим адресом электронной почты. Используйте ту, которой вы постоянно пользуетесь — именно сюда будут отправляться оповещения.
Отредактируйте файл журнала, чтобы он выглядел следующим образом:
Сохраните и выйдите, затем перезагрузите Apache:
sudo systemctl reload apache2
Тестирование mod_evasive
Пришло время проверить, правильно ли работает модуль.
Используйте скрипт test.pl
. Его сценарий расположен по этому адресу:
/usr/share/doc/libapache2-mod-evasive/examples/test.pl
.
Для его запуска примените эту команду:
perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Вывод должен выглядеть таким образом:
Параметры и настройки
DOSSystemCommand
Вы, возможно, заметили, что эта опция была помечена как комментарий и отключена. Она позволяет указать системную команду, которая будет выполняться при добавлении IP-адреса в чёрный список. Вы можете использовать её, чтобы запустить команду для добавления IP-адреса в брандмауэр или IP-фильтр.
DOSHashTableSize
Увеличьте значение для более загруженных веб-серверов. Опция выделяет пространство для выполнения операций поиска. Увеличение размера улучшает скорость за счёт памяти.
DOSPageCount
Количество запросов для отдельной страницы, после которого адрес помещается в чёрный список. В примере стоит 2, но это достаточно маленькое (и агрессивное) значение. Увеличьте его, чтобы уменьшить количество ложных срабатываний.
DOSSiteCount
Общее количество запросов на один и тот же сайт по одному и тому же IP-адресу. По умолчанию установлено значение 50. Вы можете увеличить его до 100, чтобы уменьшить количество ложных срабатываний.
DOSPageInterval
Количество секунд для DOSPageCount. По умолчанию значение равно 1 секунде. Это означает, что если вы не измените его, запрос 2 страниц за 1 секунду временно поместит IP-адрес в чёрный список.
DOSSiteInterval
Как и DOSPageInterval, он определяет количество секунд, которые отслеживает DOSSiteCount. По умолчанию это значение равно 1 секунде, то есть если один IP-адрес запрашивает 50 ресурсов на одном и том же веб-сайте за одну секунду, он будет временно помещён в чёрный список.
DOSBlockingPeriod
Время, в течение которого IP-адрес остаётся в чёрном списке. По умолчанию установлено 10 секунд, но вы можете изменить его на любое значение, которое вам нравится.
DOSLogDir
По умолчанию он настроен на запись журналов в /var/log/mod_evasive
. Эти журналы можно просмотреть позже, чтобы оценить поведение клиента.
Белые IP-адреса
Эта опция по умолчанию не включена в файл evasive.conf
.
Откройте файл для редактирования и добавьте следующую строку:
DOSWhitelist ваш_IP_адрес
Подставьте IP-адрес, который хотите добавить в белый список. Нужно указывать только одну запись в строке. Обычно список используется для доверенных клиентов, которые обмениваются с вашим сайтом большим количеством данных. Этот инструмент хорош для обнаружения ботов и скриптов. Если есть боты или сценарии, которые вы хотите разрешить, можете внести их.
Обязательно сохраните файл и выйдите из него, а затем перезагрузите службу Apache перед тестированием любого из этих параметров.
DNS Injection
Спам из веб-форм не только распространён, но и является быстрым способом внести домен в чёрный список подобный Spamhaus. Чтобы предотвратить подобное, вам нужно добавить ещё один модуль в Apache.
В терминале введите:
sudo apt-get -y install libapache2-mod-spamhaus
После завершения установки введите команду:
sudo touch /etc/spamhaus.wl
Далее откройте файл /etc/apache2/apache2.conf
(используя sudo
и ваш любимый текстовый редактор) и добавьте в конец вашего файла конфигурации блок:
<IfModule mod_spamhaus. c>
MS_METHODS POST, PUT, OPTIONS, CONNECT
MS_WhiteList /etc/spamhaus.wl
MS_CacheSize 256
</IfModule>
Сохраните файл apache2.conf
и перезапустите Apache, чтобы новый модуль вступил в силу.
Slowloris
В Apache есть модуль для предотвращения подобных DOS-атак. Вот как это работает. Откройте окно терминала. Введите команду:
sudo apt-get -y install libapache2-mod-qos
После завершения установки проверьте конфигурацию в /etc/apache2/mods-available/qos.conf
, чтобы убедиться, что она идеально соответствует вашим потребностям. После настройки модуля (при необходимости) перезапустите Apache.
Дополнительные средства защиты
Скрыть версию сервера
Это одно из первых соображений, поскольку вы не хотите показывать, какую версию веб-сервера вы используете. Её разоблачение означает, что вы помогаете хакеру ускорить процесс разведки.
Перейдите в папку:
$ Web_Server/conf
Измените httpd. conf
с помощью редактора. Добавьте следующую директиву и сохраните httpd.conf
:
ServerTokens Prod
ServerSignature Off
Перезапустите Apache.ServerSignature
удалит информацию о версии со страницы.ServerTokens
изменит заголовок только на рабочий, т. е. Apache.
Защита от атаки Clickjacking
Атака данного типа позволяет злоумышленнику выполнить клик на сайте-жертве от имени легитимного посетителя.
Чтобы обезопасить свой веб-сервер, вам нужно использовать заголовок «X-FRAME-OPTIONS»
Вы можете сделать это, отредактировав файл apache2.conf
.
sudo nano /etc/apache2/apache2.conf
Добавьте следующую строку внутри Directory /var/www/html/
:
Header always append X-Frame-Options SAMEORIGIN
Сохраните файл и перезапустите Apache.
sudo /etc/init.d/apache2 restart
Теперь попробуйте открыть веб-браузер для доступа к веб-серверу. Проверьте заголовки ответа HTTP в firebug. Вы должны увидеть X-Frame-Options.
Защита от атаки XSS
XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») является одной из наиболее распространённых атак на уровне приложений.
Вы можете защититься от неё, отредактировав файл конфигурации Apache.
sudo nano /etc/apache2/apache2.conf
Добавьте следующую строку внутри Directory /var/www/html/
:
Header set X-XSS-Protection "1; mode=block"
Заключение
Мы рассмотрели установку и настройку, а также все наиболее важные способы защиты сервера Apache, и теперь вы можете полноценно приступить к изучению его работы на практике.
Вадим Сычёв
Как запустить, остановить или перезапустить Apache
Apache — это кроссплатформенный HTTP-сервер с открытым исходным кодом. Он обладает мощными функциями и может быть расширен с помощью большого количества модулей.
Если вы разработчик или системный администратор, скорее всего, вы имеете дело с Apache на регулярной основе.
Запуск, остановка и перезапуск / перезагрузка — наиболее распространенные задачи при работе с веб-сервером Apache. Команды для управления службой Apache различны в разных дистрибутивах Linux.
Большинство последних дистрибутивов Linux используют SystemD в качестве системы инициализации и диспетчера служб по умолчанию. Старые дистрибутивы основаны на SysVinit и используют сценарии инициализации для управления службами. Еще одно отличие — это название сервиса. В Ubuntu и Debian служба Apache называется apache2
, а в системе на основе Red Hat, такой как CentOS, имя службы — httpd
.
В этой статье объясняется, как запустить, остановить и перезапустить Apache в наиболее популярных дистрибутивах Linux.
Перед началом работы #
В инструкциях предполагается, что вы вошли в систему как пользователь root или как пользователь с привилегиями sudo.
И служебные модули SystemD, и сценарий SysVinit принимают следующие аргументы для управления службой Apache:
-
start
: запускает службу Apache. -
stop
: завершает работу службы Apache. -
перезапуск
: останавливает, а затем запускает службу Apache. -
reload
: плавно перезапускает службу Apache.При перезагрузке основной процесс Apache завершает дочерние процессы, загружает новую конфигурацию и запускает новые дочерние процессы. -
статус
: Показывает статус услуги.
Запуск, остановка и перезапуск Apache в Ubuntu и Debian #
SystemD — это менеджер системы и служб для последних выпусков Ubuntu (20.04 18.04) и Debian (10, 9).
Чтобы запустить службу Apache, выполните следующую команду:
sudo systemctl start apache2
Чтобы остановить службу Apache, выполните следующую команду:
sudo systemctl stop apache2
Каждый раз, когда вы вносите изменения в Конфигурация Apache, вам необходимо перезапустить серверные процессы.Чтобы перезапустить службу Apache, выполните:
sudo systemctl restart apache2
Более старые (EOLed) версии Ubuntu или Debian используют сценарии init. d для запуска, остановки и перезапуска демона Apache:
sudo service apache2 start
sudo service apache2 stop
sudo service apache2 restart
Запуск, остановка и перезапуск Apache в RHEL / CentOS #
Systemd — это менеджер системы и служб для RHEL / CentOS 7 и 8.
Запустите службу Apache:
sudo systemctl start httpd
Остановите службу Apache:
sudo systemctl stop httpd
Перезапустите службу Apache:
sudo systemctl restart httpd
Если у вас есть В системе CentOS 6 или более ранней версии, использующей SysV, используйте следующие команды для запуска, остановки и перезапуска демона Apache:
sudo service httpd start
sudo service httpd stop
sudo service httpd restart
Заключение №
Мы показали, как запускать, останавливать и перезапускать веб-сервер Apache в различных системах Linux.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии ниже.
Команды Apache, которые вы должны знать
HTTP-сервер Apache — самый популярный веб-сервер в мире. Это бесплатный кроссплатформенный HTTP-сервер с открытым исходным кодом, обеспечивающий мощные функции, которые могут быть расширены с помощью самых разных модулей.
Если вы разработчик или системный администратор, скорее всего, вы регулярно имеете дело с Apache.
В этом руководстве мы рассмотрим наиболее важные и часто используемые команды Apache, включая запуск, остановку и перезапуск 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 и все дочерние процессы, даже если есть открытые соединения.
Чтобы остановить Apache, выполните одну из следующих команд:
sudo systemctl stop apache2
sudo service apache2 stop
Перезапустить Apache #
Параметр перезапуска — это быстрый способ остановки и последующего запуска сервера Apache.
Используйте одну из следующих команд для перезапуска:
sudo systemctl restart apache2
sudo service apache2 restart
Это команда, которую вы, вероятно, будете использовать наиболее часто.
Перезагрузить Apache #
Вам необходимо перезагрузить или перезапустить Apache всякий раз, когда вы вносите изменения в его конфигурацию.
При перезагрузке основной процесс apache завершает работу дочерних процессов, загружает новую конфигурацию и запускает новые дочерние процессы.
Чтобы перезагрузить Apache, используйте одну из следующих команд:
sudo systemctl reload apache2
sudo service apache2 reload
Test Apache Configuration #
Всякий раз, когда вы вносите изменения в файл конфигурации сервера Apache, это хорошая идея для проверки конфигурации перед перезапуском или перезагрузкой службы.
Используйте следующую команду для проверки конфигурации Apache на наличие синтаксических или системных ошибок:
sudo apachectl -t
Результат будет выглядеть следующим образом:
Синтаксис ОК
Если есть ошибки, команда выводит подробное сообщение.
Просмотр статуса Apache #
Чтобы проверить статус службы Apache, используйте следующую команду:
sudo systemctl status apache2
Результат будет выглядеть примерно так:
● apache2.service - HTTP-сервер Apache
Загружено: загружено (/lib/systemd/system/apache2.service; включено; предустановка поставщика:
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Активный: активен (работает) с Wed 2019-05-29 21:16:55 UTC; 6с назад
Процесс: 938 ExecStop = / usr / sbin / apachectl stop (код = завершен, статус = 0 / УСПЕХ)
Процесс: 956 ExecStart = / usr / sbin / apachectl start (code = exited, status = 0 / SUCCES
Основной PID: 997 (apache2)
Задач: 55 (лимит: 1152)
CGroup: / system.срез / apache2.service
├─ 997 / usr / sbin / apache2 -k start
├─ 999 / usr / sbin / apache2 -k start
└─1000 / usr / sbin / apache2 -k начало
Проверьте версию Apache #
Иногда вам может потребоваться узнать версию вашего Apache, чтобы вы могли отладить проблему или определить, доступна ли определенная функция.
Вы можете проверить свою версию Apache, запустив:
sudo apache2 -v
Версия сервера: Apache / 2.4.29 (Ubuntu)
Сервер построен: 2019-04-03T13: 22: 37
Параметр -V
(верхний регистр) показывает версию Apache вместе с параметром конфигурации.
sudo apache2 -V
Заключение №
В этом руководстве мы показали вам некоторые из наиболее важных команд Apache. Если вы хотите узнать больше о командной строке Apache, посетите документацию Apache
. Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как перезапустить Apache в Ubuntu 20.04 Focal Fossa
- Подробности
- Lubos Rendek
- Ubuntu
Цель этой статьи — предоставить пользователю информацию о том, как перезапустить Веб-сервер Apache 2 на Ubuntu 20. 04 Фокальная ямка.
В этом руководстве вы узнаете:
- Как корректно перезагрузить Apache
- Как перезапустить Apache
CAPTIONHERE
Требования к программному обеспечению и используемые условные обозначения
Категория | Требования, условные обозначения или используемая версия программного обеспечения |
---|---|
Система | Установленная Ubuntu 20.04 или обновленный Ubuntu 20.04 Focal Fossa |
Программное обеспечение | Apache 2 |
Другое | Привилегированный доступ к вашей системе Linux как root или с помощью команды sudo . |
Условные обозначения | # — требует, чтобы данные команды Linux выполнялись с привилегиями root либо непосредственно как пользователь root, либо с помощью команды sudo $ — требует, чтобы данные команды linux выполнялись как обычные не -privileged user |
Как перезапустить Apache на Ubuntu 20.
04 пошаговые инструкции
Существует два основных способа перезапуска веб-сервера Apache в Ubuntu Linux:
- reload — Изящно перезапускает демон Apache, отправив ему SIGUSR1. Если демон не запущен, он запускается. Это отличается от обычного перезапуска тем, что открытые в данный момент соединения не прерываются. . Побочным эффектом является то, что старые файлы журналов не закрываются немедленно. Это означает, что при использовании в сценарии ротации журналов может потребоваться значительная задержка, чтобы гарантировать, что старые файлы журналов закрыты перед их обработкой.Эта команда автоматически проверяет файлы конфигурации через
apache2ctl configtest
перед запуском перезапуска, чтобы выявить наиболее очевидные ошибки. Однако демон все еще может умереть из-за проблем с конфигурацией. - restart — перезапускает демон Apache, отправив ему сигнал SIGHUP. Если демон не запущен, он запускается. Эта команда автоматически проверяет файлы конфигурации с помощью configtest перед запуском перезапуска, чтобы выявить наиболее очевидные ошибки. Однако демон все еще может умереть из-за проблем с конфигурацией.
ПОДПИСАТЬСЯ НА НОВОСТИ И RSS
Подпишитесь на RSS и НОВОСТИ, чтобы получать последние новости Linux, вакансии, советы по карьере и учебные пособия.
Несмотря на то, что оба вышеуказанных метода проверяют конфигурацию во время процедуры перезапуска / перезагрузки, всегда рекомендуется проверять конфигурацию веб-сервера Apache с помощью следующей команды:
$ apachectl configtest Синтаксис ОК
Начиная с версии Ubuntu 20.04 Focal Fossa Server / Desktop основан на systemd
, для перезапуска веб-сервера Apache рекомендуются следующие два метода.
ЗНАЕТЕ ЛИ ВЫ?
Вы можете проверить, был ли веб-сервер Apache 2 полностью перезагружен, проверив номер Main PID
с помощью команды sudo systemctl status apache2
до и после перезапуска.
- Использование команды
systemclt
корректно перезагружает веб-сервер Apache:$ sudo systemctl перезагрузить apache2
- Этот метод полностью перезагружает веб-сервер Apache 2:
$ sudo systemctl перезапустить apache2
Как исправить общие проблемы с Apache2 — Урок
Проблемы с загрузкой веб-сайта часто связаны с подключением к Интернету, но даже самая идеально настроенная сеть не может помочь, если в пункте назначения нет службы ответа. Одним из самых популярных HTTP-серверов, используемых для этой задачи, является Apache2. Популярность Apache во многом объясняется его простой установкой и использованием, но, тем не менее, можно столкнуться с проблемами даже с самым простым программным обеспечением. Если вы столкнулись с проблемой при загрузке веб-страницы, следуйте этим простым методам устранения неполадок, описанным в этом руководстве, чтобы попытаться восстановить ваш веб-сервер и снова заработать.
Тестовый хостинг на UpCloud!
Убедитесь, что служба запущена
Первым шагом при устранении неполадок любой службы является проверка того, что служба запущена и может функционировать.Простой подход — просто перезапустить службу. На серверах Ubuntu и Debian используйте следующую команду.
sudo systemctl перезапустить apache2
В CentOS и других средах Red Hat служба Apache2 носит имя «httpd», поэтому используйте вместо нее эту команду.
sudo systemctl перезапуск httpd
В зависимости от выбранного вами дистрибутива выходные данные команды перезапуска будут разными. Субъективно Ubuntu обычно дает наиболее полезный ответ, как показано ниже.
* Перезапуск веб-сервера apache2 [OK]
CentOS и Debian, вероятно, ничего не скажут, пока перезагрузка не завершилась неудачно.
Если ваша система не смогла перезапустить Apache2, вы, скорее всего, получили сообщение об ошибке в той или иной форме. Если вы получили ответ, похожий на один из приведенных ниже примеров вывода, скорее всего, служба неправильно установлена в вашей системе или некоторые файлы отсутствуют.
apache2: неопознанная служба
Не удалось перезапустить apache2.служба: Не удалось загрузить модуль apache.service: нет такого файла или каталога.
Если вы увидите ошибки такого типа, попробуйте снова установить службу. На серверах под управлением Debian или Ubuntu используйте следующую команду.
sudo apt-get install apache2
А в CentOS вместо этого установите httpd с помощью следующей команды.
sudo yum установить httpd
Убедившись, что веб-сервер полностью установлен, перезапустите службу еще раз с той же командой, которую вы использовали ранее.
Если вы получили другое сообщение об ошибке, попробуйте получить дополнительную информацию о том, в каком состоянии находится ваша веб-служба. Используйте одну из следующих команд, применимых к вашей системе.
sudo systemctl статус apache2
sudo systemctl статус httpd
Выходные данные проверки состояния покажут, по крайней мере, запущена служба или остановлена. Системы Debian и CentOS обычно показывают более подробный отчет, включая время работы службы и пару строк журнала. Ниже приведен пример отображения статуса Debian, в CentOS он будет почти идентичным.Ubuntu по умолчанию не поддерживает этот тип вывода.
● apache2.service - LSB: веб-сервер Apache2 Загружено: загружено (/etc/init.d/apache2) Активен: активен (работает) с Пт 31.07.2015 10:44:26 EEST; 2ч 14мин назад Процесс: 9704 ExecStop = / etc / init.d / apache2 stop (код = завершен, статус = 0 / УСПЕХ) Процесс: 9711 ExecStart = / etc / init.d / apache2 start (код = завершен, статус = 0 / УСПЕХ) CGroup: /system. slice/apache2.service ├─9726 / usr / sbin / apache2 -k start ├─9730 / usr / sbin / apache2 -k start ├─9731 / usr / sbin / apache2 -k начало ├─9732 / usr / sbin / apache2 -k start ├─9733 / usr / sbin / apache2 -k start ├─9734 / usr / sbin / apache2 -k start └─9747 / usr / sbin / apache2 -k start 31 июля, 10:44:26 debian.example.com apache2 [9711]: Начальный веб-сервер: apache2.
Важная часть здесь находится в третьей строке. Активный и запущенный означает, что процесс должен работать. Если вместо этого он отображается как активный и остановленный или сбойный, скорее всего, произошел сбой процесса.
Затем проверьте процессы по имени apache2 или httpd.
sudo ps aux | grep -E 'apache2 | httpd'
При каждом упоминании искомого ключевого слова grep будет распечатывать строку, в которой было найдено ключевое слово, включая сам процесс поиска, так что вы увидите хотя бы команду grep.Если имеется более одной строки вывода, все, кроме последней, являются процессами, связанными с вашим веб-сервисом. В приведенном ниже примере показаны процессы apache2, запущенные в Ubuntu.
корень 1457 0,0 1,5 321908 16132? SS Jul30 0:02 / usr / sbin / apache2 -k start www-data 1461 0,0 2,8 326532 29172? S 30 июля 0:00 / usr / sbin / apache2 -k start www-data 1462 0,0 3,1 327480 32364? S 30 июля 0:00 / usr / sbin / apache2 -k start www-data 1463 0,0 2,9 326688 30260? S 30 июля 0:00 / usr / sbin / apache2 -k start www-данные 1464 0.0 3,1 326496 32148? S 30 июля 0:00 / usr / sbin / apache2 -k start www-data 1465 0,0 2,7 326816 28040? S 30 июля 0:00 / usr / sbin / apache2 -k start www-data 1841 0,0 2,0 323132 21044? S 30 июля 0:00 / usr / sbin / apache2 -k start www-data 1871 0,0 2,2 323396 23280? S 30 июля 0:00 / usr / sbin / apache2 -k start пользователь 11669 0,0 0,0 11744 928 точек / 0 S + 15:32 0:00 grep --color = auto -E apache2 | httpd
Поскольку команда перезапуска службы ранее не работала, любые процессы, которые мог перечислить grep, вероятно, перестали работать и должны быть закрыты, прежде чем служба сможет снова запуститься. В системах Debian и Ubuntu остановите все процессы apache2 с помощью этой команды.
судо killall apache2
На серверах CentOS не только веб-служба называется как-то иначе, но и команда kill работает немного иначе, вместо этого используйте следующую команду для того же результата.
sudo kill -a httpd
После команды kill вы можете снова запустить проверку процесса, чтобы убедиться, что зомби больше не осталось. Затем попробуйте перезапустить службу, используя те же команды, что и в начале этого руководства.
sudo systemctl статус apache2
sudo systemctl статус httpd
Это должно запустить веб-службу при условии, что она не была неправильно настроена.
Проверьте конфигурацию вашего сервера
Если при запуске службы возникают ошибки, относящиеся к файлам, расположенным в / etc / apache2 или / etc / httpd /, система не может прочитать файлы конфигурации службы. Apache2 поставляется с некоторыми удобными инструментами для проверки целостности файлов и синтаксиса, которые могут помочь в обнаружении любых опечаток или других нарушений в конфигурации. На серверах Debian и Ubuntu проверьте файлы конфигурации, выполнив следующую команду.
судо apache2ctl -t
На машинах с CentOS вместо этого просто вызовите httpd.
судо httpd -t
В выводе будут показаны все проблемы, обнаруженные с файлом конфигурации. Или, если все в порядке, он просто распечатывает подтверждение, подобное показанному ниже.
Синтаксис ОК
Другой вариант устранения неполадок для веб-службы — показать проанализированный виртуальный хост и запустить настройки с командами для Debian / Ubuntu и CentOS соответственно.
судо apache2ctl -S
Судо httpd -S
Ниже приведен пример вывода команды из системы CentOS. Убедитесь, что корни сервера и документа указывают на правильные каталоги.
Конфигурация
VirtualHost: ServerRoot: "/ etc / httpd" Корень основного документа: "/ var / www / html" Основной журнал ошибок: "/ etc / httpd / logs / error_log" Прокси-сервер мьютекса: using_defaults Mutex authn-socache: using_defaults Мьютекс по умолчанию: dir = "/ run / httpd /" механизм = по умолчанию Mutex mpm-accept: using_defaults Mutex authdigest-opaque: using_defaults Mutex прокси-балансировщик-шм: using_defaults Карта перезаписи мьютекса: using_defaults Mutex authdigest-client: using_defaults PidFile: "/ run / httpd / httpd. пид " Определить: DUMP_VHOSTS Определить: DUMP_RUN_CFG Пользователь: name = "apache" id = 48 Группа: name = "apache" id = 48
Если ваш сервер использует настраиваемую конфигурацию виртуального хоста, например, при размещении нескольких веб-сайтов на одном сервере, убедитесь, что каждый файл виртуального хоста имеет правильное доменное имя и указывает на правильный корневой каталог. На машинах Debian и Ubuntu по умолчанию есть файл виртуального хоста, который хранится в / etc / apache2 / sites-enabled /. Откройте файл для редактирования.
sudo nano / etc / apache2 / sites-enabled / 000-default.conf
В этом файле обычно есть некоторые инструкции о том, что означает каждый параметр в комментариях, которые были опущены в приведенном ниже примере, но важными частями являются ServerName и DocumentRoot, как уже упоминалось.
ServerName www.example.com ServerAdmin [адрес электронной почты защищен] DocumentRoot / var / www / html #LogLevel info ssl: warn ErrorLog $ {APACHE_LOG_DIR} /error. log CustomLog $ {APACHE_LOG_DIR} / доступ.журнал комбинированный # Включить conf-available / serve-cgi-bin.conf
CentOS и httpd не имеют одного и того же файла виртуального хоста, установленного по умолчанию, но вместо этого используют конфигурацию службы httpd для хранения настроек по умолчанию. Проверьте файл конфигурации с помощью приведенной ниже команды.
Судо vi /etc/httpd/conf/httpd.conf
Найдите одинаковые параметры ServerName и DocumentRoot и убедитесь, что они правильно установлены.
Если вы внесли какие-либо изменения в файлы конфигурации, службу необходимо перезагрузить, чтобы изменения вступили в силу.Перезапуск службы выполняет свою работу, но если вы хотите избежать простоя веб-сервера, используйте перезагрузку с помощью одной из следующих команд.
sudo systemctl перезагрузить apache2
sudo systemctl перезагрузить httpd
Журналы проверок
Когда все на стороне службы работает должным образом, и вы не можете найти неисправность, но веб-сайт по-прежнему не загружается, всегда самое время покопаться в журналах. Apache2 ведет два набора журналов доступа и ошибок. Вы можете найти журналы, хранящиеся в / var / log / apache2 / или / var / log / httpd, в зависимости от вашего выбора дистрибутива Linux.Вы можете перечислить все файлы в каталоге журналов вашего веб-сервера, используя приведенные ниже команды.
судо лс / вар / журнал / apache2 /
судо лс / вар / журнал / httpd /
Списки журналов будут немного отличаться, так как разные системы называют журналы немного по-разному. Серверы Ubuntu и Debian хранят текущие журналы работоспособности в access.log или error.log, предыдущие журналы помечаются порядковым номером, 1 — самый последний, а более старые журналы также сжимаются. В CentOS и других вариантах Red Hat журналы называются access_log и error_log, к более старым журналам добавляется дата, когда журнал был написан e.г. access_log-20150108.
Простой способ начать чтение журналов, когда вы не обязательно знаете, что ищете, — это использовать приложение для фильтрации «grep». Найдите любые ошибки, используя одну из команд ниже, которая соответствует имени веб-приложения вашей системы.
sudo grep -i -r ошибка / var / log / apache2 /
sudo grep -i -r ошибка / var / log / httpd /
Пользователи
Ubuntu и Debian могут также проверить сжатые файлы журналов. Вместо этого это можно сделать с помощью «zgrep», но из-за его ограничений вы можете искать только в одном журнале за раз, например, используя следующую команду.
sudo ошибка zgrep /var/log/apache2/error.log.2.gz
Не все ошибки, зарегистрированные вашей веб-службой, обязательно означают, что с вашим сервером что-то не так, но следите за любыми повторяющимися проблемами, такими как отсутствие файлов в примере ошибки ниже.
[Пт 17 июля, 12:36: 08.431065 2015] [: ошибка] [pid 4649] [клиент 80.69.160.92] сценарий '/var/www/html/index.php' не найден или не может запуститься
Вы также можете включить более подробное ведение журнала, если поиск ошибок не дает никаких результатов. Объем вывода журнала контролируется параметром «LogLevel» в файле конфигурации. В системах Debian и Ubuntu откройте файл конфигурации с помощью следующей команды.
Судо нано /etc/apache2/apache2.conf
Для CentOS и других серверов на базе Red Hat используйте вместо этого эту команду.
Судо vi /etc/httpd/conf/httpd.conf
Найдите параметр LogLevel и вместо него измените значение «warn» по умолчанию на «debug», затем сохраните файл и выйдите.Опять же, чтобы изменения вступили в силу, необходимо перезагрузить службу. Вы можете сделать это с помощью одной из следующих команд, подходящих для вашей системы.
sudo systemctl перезагрузить apache2
sudo systemctl перезагрузить httpd
Чтобы создать несколько новых записей с использованием новых уровней журнала, попробуйте еще раз зайти на свой веб-сайт несколько раз, даже если он не работает. Более подробные журналы должны помочь сузить основные проблемы.
Другие услуги
Если ваш веб-сайт по-прежнему не загружается после устранения неполадок с Apache, проверьте другие связанные службы на вашем облачном сервере, такие как базы данных, брандмауэр и сетевое соединение, у которых также есть собственные инструкции по устранению неполадок.
Не стесняйтесь обращаться в нашу службу поддержки. Не забудьте включить любую соответствующую информацию, которую вы, возможно, обнаружили во время устранения неполадок, так как каждая деталь будет полезна в дальнейших исследованиях.
Как перезапустить Apache в Ubuntu Linux
Несмотря на рост популярности NGINX, Apache по-прежнему остается одним из наиболее часто используемых серверных программ с открытым исходным кодом. Но эта статья не о обсуждении Apache и NGINX. Это всего лишь несколько советов, в которых я покажу вам различные способы перезапуска сервера Apache в Ubuntu или других дистрибутивах Linux.
Перезапустить Apache в Ubuntu Linux
Как и многие другие службы, существует несколько способов перезапуска Apache. Поскольку Ubuntu 16.04, 18.04 и более поздние версии используют systemd, вы можете использовать команды systemd для управления любой службой, включая Apache. На самом деле, я рекомендую использовать systemd.
Но подождите! Вам действительно нужно перезапускать Apache?
Почему вы хотите перезапустить сервер Apache? Возможно, вы внесли некоторые изменения в конфигурацию и хотите, чтобы эти изменения вступили в силу. В таком случае перезапускать Apache не нужно.
Перезапуск Apache означает, что сервер Apache выключится, а затем запустится снова. Если вы находитесь на рабочем сервере, это приведет к простою всех служб, использующих сервер Apache. Вы же не хотите этого делать?
Apache поддерживает перезагрузку, что означает, что вы можете перезагрузить конфигурацию, не выключая сервер. Таким образом, ваш действующий сервер не будет простаивать.
sudo systemctl reload apache2
Если вы не хотите использовать команду systemd, есть альтернативная команда для перезагрузки сервера apache:
sudo service apache2 reload
Хорошо! Вы действительно хотите перезапустить Apache
. Я понимаю, что у вас может быть своя причина, по которой перезагрузка Apache не работает, и вам необходимо перезапустить сервер Apache.В этом случае вы можете использовать команду systemd:
sudo systemctl restart apache2
В качестве альтернативы вы также можете использовать эту команду:
sudo service apache2 restart
Бонусный совет: проверьте состояние сервера Apache
Поскольку вы имеете дело с перезапуском и перезагрузкой службы, было бы неплохо проверить ее статус. Вы можете проверить статус сервера Apache, используя systemd:
systemctl status apache2.service
Несистемная команда для проверки статуса сервера Apache:
service apache2 status
Надеюсь, вам понравился этот быстрый совет по перезапуску сервера Apache в Ubuntu и других дистрибутивах Linux. Если у вас есть вопросы или предложения, дайте мне знать в разделе комментариев.
Запуск веб-сервера Apache при каждой перезагрузке (для Ubuntu / Debian Linux)
Если вы скомпилировали и установили Apache на машине Debian / Ubuntu Linux и хотите, чтобы служба Apache запускалась каждый раз, когда вы перезагружаете свой компьютер, это короткое руководство для вас.Я попытался сделать это очень простым, поэтому я почти уверен, что вы сможете выполнить все шаги, даже если вы не знаете сценариев оболочки Unix / Linux. Чтобы запустить Apache во время загрузки, вам нужно написать очень простой сценарий запуска. Следуйте инструкциям ниже. Обратите внимание, что вы должны запускать команды как root для Ubuntu и Debian. |
- Теперь введите приведенный ниже код в текстовом редакторе. Строки, начинающиеся с символа #, являются комментариями (кроме первой строки).
#! / bin / sh
case «$ 1» в начале
)
echo «Запуск Apache …»
# Измените местоположение на ваше конкретное местоположение
/ usr / local / apache2 / bin / apachectl start
;;
стоп)
echo «Остановка Apache …»
# Измените местоположение на ваше конкретное местоположение
/ usr / local / apache2 / bin / apachectl stop
;;
graceful)
echo «Изящный перезапуск Apache …»
# Измените местоположение на ваше конкретное местоположение
/ usr / local / apache2 / bin / apachectl graceful
;;
перезапуск)
echo «Перезапуск Apache… «
# Измените местоположение на ваше конкретное местоположение
/ usr / local / apache2 / bin / apachectl restart
;;
*)
echo» Использование: ‘$ 0’ {start | stop | restart | graceful} «> & 2
выход 64
;;
esac
выход 0 - Теперь нажмите «Ctrl – o», чтобы сохранить файл, и «Ctrl – x», чтобы выйти из редактора.
- Вы должны изменить права доступа к файлу, выполнив команду ниже:
Ubuntu: sudo chmod u + x /etc/init.d/apache2
Debian: chmod u + x / etc / init.d / apache2
- Чтобы запустить Apache, выполните команду ниже:
Ubuntu: sudo /etc/init.d/apache2 start
Debian: /etc/init.d/apache2 start
- Чтобы остановить Apache, выполните команду ниже:
Ubuntu: sudo /etc/init.d/apache2 stop
Debian: /etc/init.d/apache2 stop
- Чтобы перезапустить Apache, выполните команду ниже:
Ubuntu: sudo /etc/init.d/apache2 перезапуск
Debian: /etc/init.d/apache2 перезапуск
- Чтобы корректно перезапустить Apache, выполните команду ниже:
Ubuntu: sudo / etc / init.d / apache2 изящный
Debian: /etc/init.d/apache2 изящный
- Чтобы добавить сценарий к уровню выполнения по умолчанию, выполните следующие действия.
Ubuntu: sudo update – rc.d apache2 по умолчанию
Debian: update – rc.d apache2 по умолчанию
- Если вы хотите удалить его с уровня выполнения, выполните следующие действия.
Ubuntu: sudo update – rc.d –f apache2 remove
Debian: update – rc.d –f apache2 удалить
Вот и все, готово.Теперь Apache будет запускаться автоматически во время загрузки.
Это руководство немного помогло? Как насчет того, чтобы купить мне чашку кофе?
Пожалуйста, используйте форму для комментариев ниже, если у вас есть какие-либо вопросы или вам нужны дополнительные объяснения по чему-либо. Я рекомендую тщательно протестировать
производственная система тестирования перед переходом к производству.
т
Как перезапустить Apache | Блог Electric Toolbox
Если вы внесли изменения в файл конфигурации Apache httpd.conf или одного из других включенных файлов конфигурации, таких как файлы vhosts.d, вам необходимо перезагрузить службу Apache, чтобы изменения вступили в силу. Из командной строки вы делаете это с помощью команды apachectl. Точное расположение этой команды зависит от используемого вами варианта Unix или Linux (например, Fedora, OSX, FreeBSD, Slackware, Mandrake, SUSE) и настроек времени компиляции, но обычно он доступен по адресу / usr / sbin / apachectl
Изящный перезапуск Apache
Пример корректного перезапуска Apache показан ниже:
/ usr / sbin / apachectl изящный
Обратите внимание, что вам нужно будет либо работать как root, либо использовать команду «sudo» для запуска этой команды.
Если Apache еще не запущен, он будет запущен. Если он уже запущен, он перезагрузится с новыми изменениями, но не прервет активные соединения, а это означает, что любой, кто находится в процессе загрузки, по-прежнему сможет это загрузить.
Сначала выполняется тест конфигурации
Перед перезапуском службы Apache будет произведена проверка файлов конфигурации, чтобы убедиться, что они действительны. Если в них есть ошибка, она отобразится и служба Apache продолжит работу со старыми настройками.Перед повторной попыткой перезапуска необходимо исправить настройки.
Вы также можете просто проверить настройки без перезапуска Apache, например:
/ usr / sbin / apachectl configtest
Это проверит файл httpd.conf и сообщит, верен ли синтаксис файла. Будет отображен список ошибок, включая номера строк, если они есть. Это позволяет легко изолировать любые проблемы.
Доступные параметры для команды apachectl
Ниже перечислены все доступные параметры, которые можно передать команде apachectl.Этот текст взят со страницы руководства apachectl.
apachectl start: Запустить демон Apache. Выдает ошибку, если уже запущен.
apachectl stop: Останавливает демон Apache.
apachectl restart: Перезапускает демон Apache, отправив ему SIGHUP. Если демон не запущен, он запускается. Эта команда автоматически проверяет файлы конфигурации с помощью configtest перед запуском перезапуска, чтобы убедиться, что Apache не умирает.
fullstatus: Отображает полный отчет о состоянии из mod_status. Чтобы это работало, на вашем сервере должен быть включен mod_status, а в вашей системе доступен текстовый браузер, такой как lynx. URL-адрес, используемый для доступа к отчету о состоянии, можно установить, отредактировав переменную STATUSURL в сценарии.
apachectl status: Отображает краткий отчет о состоянии. Аналогично опции fullstatus, за исключением того, что список обслуживаемых запросов опущен.
apachectl graceful: Изящно перезапускает демон Apache, отправив ему сигнал SIGUSR1. Если демон не запущен, он запускается. Это отличается от обычного перезапуска тем, что открытые в данный момент соединения не прерываются. Побочным эффектом является то, что старые файлы журналов не закрываются немедленно. Это означает, что при использовании в сценарии ротации журналов может потребоваться значительная задержка, чтобы гарантировать, что старые файлы журналов закрыты перед их обработкой. Эта команда автоматически проверяет файлы конфигурации с помощью configtest перед запуском перезапуска, чтобы убедиться, что Apache не умирает.
apachectl configtest: Запустить проверку синтаксиса файла конфигурации. Он анализирует файлы конфигурации и сообщает Syntax Ok или подробную информацию о конкретной синтаксической ошибке.
apachectl help: Отображает короткое справочное сообщение.
Обновление 19 марта 2007 г.
Я написал эту статью изначально для Apache 1.3 и когда я использовал Gentoo Linux и OSX для обслуживания страниц с Apache. На моих текущих машинах openSUSE, на которых работает Apache 2.2 больше нет программы apachectl. Вместо приведенной выше команды вы можете запустить следующую очень похожую команду и параметры:
/etc/init.d/apache2 start | stop | reload | restart | configtest
Запуск /etc/init.d/apache2
самостоятельно выводит справочное сообщение с подробным описанием различных параметров, перечисленных ниже:
начало — начало httpd
startssl — запустить httpd с -DSSL
stop — остановить httpd (отправить SIGTERM родителю)
try-restart — остановить httpd, и если это удастся (т.е.е. если он работал раньше), запустите его снова.
status — проверьте, запущен ли httpd
restart — остановить httpd, если он запущен; запустить httpd
reload | graceful — выполнить плавный перезапуск, отправив SIGUSR1, или запустить, если не работает
configtest — выполнить тест синтаксиса конфигурации
extreme-configtest — попробуйте запустить httpd как никто (обнаруживает больше ошибок, фактически загружая конфигурацию, но не может читать сертификаты SSL)
probe — проверить необходимость перезагрузки, выдать аргумент, необходимый для перезагрузки.