Как вы перезапустите Apache?


249

Я переключился с SLES на Ubuntu и теперь хочу перезапустить свой локальный сервер. В SLES я использовал:

rcapache2 restart

но это как-то не работает в Ubuntu. :(

Как мне перезапустить мой Apache?

Ответы:


364

sudo service apache2 restart за то, что позаимствовано у Red Hat.


1
Я думаю, что serviceэто способ LSB, и он должен работать в большинстве дистрибутивов, теперь, когда Debian и Ubuntu наконец-то получили его.
Мариус Гедминас

10
sudo restart apache2не работает в Ubuntu 12.04. Не уверен в других версиях Ubuntu.
saji89

2
@ saji89 вам нужно сделать sudo service apache2 restart, тогда это будет работать.
Kevdog777

9
sudo restart apache2не работает в Ubuntu 14.04. sudo service apache2 restartработает жестко.
Toesslab

105

Вы хотите перезапустить Apache или изящно перезагрузить его конфигурацию?

Все отвечали на первый вопрос; Вы можете сделать второе с

sudo service apache2 reload

Изящная перезагрузка происходит немного быстрее, и времени простоя нет.

Есть одно предостережение: если ваши конфигурационные файлы apache содержат ошибку (например, настраивает файл журнала в несуществующей директории), сервер может молча завершиться, не выводя никаких сообщений об ошибках на консоль. Большинство других ошибок отлавливается тем, apache2ctl configtestчто service apache2 reloadвыполняется перед выполнением фактической перезагрузки apache2ctl graceful.


1
Да! Использовать грациозно гораздо лучше, если вы хотите перезапустить, не запуская зрителей вашего сайта!
Том

Я считаю, что преимущество перезапуска состоит в том, что если Apache не работает, он запустится . -> перезагрузит и запустит его?
Торбен Гундтофте-Брюн

Я так не думаю - еще хуже, перезагрузка остановит работающий apache, если вы допустите синтаксическую ошибку в файле конфигурации.
Мариус Гедминас

3
Всегда бегайте, sudo apache2ctl configtestпрежде чем делать изящный перезапуск. Изящный перезапуск не удастся, и apache будет остановлен, если в конфигурации есть синтаксическая ошибка.
Микко Ранталайнен,

@MikkoRantalainen: спасибо, я редактировал ответ на падение сырой apache2ctl gracefulи вместо того, чтобы рекомендовать только service apache2 reload, который бежит configtestперед тем graceful.
Мариус Гедминас

26

В Ubuntu рекомендуется запускать / останавливать службы (а не только Apache), используя команды start / stop / reload (которые на самом деле являются символическими ссылками на программу initctl , часть upstart ).

Для служб, которые используют устаревшие /etc/init.dсценарии, соответствующий сценарий будет вызываться с правильными параметрами; для сервисов, использующих инфраструктуру upstart, соответствующий переход событий будет сигнализироваться демону upstart через initctl .

Итак, чтобы запустить / остановить / перезагрузить / перезапустить apache в Ubuntu, вы можете использовать:

sudo start apache2
sudo stop apache2
sudo reload apache2
sudo restart apache2

20
sudo /etc/init.d/apache2 restart

Конечно , вы можете обменять restartна stop, startи (я думаю)reload


2
Делая это в недавнем Ubuntu, вы получаете сообщение о том, что делаете это по-новому, хотя он все равно будет выполнять желаемую команду.
jfmessier

Я еще не понял, что Apache переехал в Upstart.
Оли

Я больше не вижу этого сообщения.
Тим


11

Как сказал Мариус, изящный следует использовать либо для перезапуска:

sudo apache2ctl graceful

или же

sudo apache2ctl graceful-stop

остановить Apache изящно.

Эти команды ждут, пока все запросы на веб-страницы не будут обработаны, прежде чем перезапускать / останавливать веб-сервер, чтобы ваш пользователь не получил половину веб-страницы.


4

Сначала вы проверяете свой статус с помощью этой команды

sudo service apache2 status

затем остановите работающий сервис

sudo service apache2 stop

затем используйте эту команду:

sudo /opt/lampp/lampp start

это решение сработало для меня.


2

если вы устанавливаете версию Apache 2.4 в своей системе, чтобы начать перезапуск или остановить сервер Apache в вашей локальной системе, вам следует выполнить следующую команду

./apachectl start

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


1

Вы можете использовать службы для перезапуска Apache

service apache2 restart

и вы можете использовать все функции для этого (Стоп - Пуск - Перезагрузка)



0
sudo systemctl restart apache2

systemctl - управляет системой systemd и менеджером сервисов.

systemctl может использоваться для анализа и управления состоянием системного менеджера системы и службы.


-1

если вы root: (в Ubuntu root, я думаю, отключен, используйте команду sudo!)

$ /etc/init.d/apache stop
$ /etc/init.d/apache start
$ /etc/init.d/apache restart
$ /etc/init.d/apache reload 

(Если вы использовали a2ensite или a2dissite, вам необходимо перезагрузить конфигурацию apache)


rootне отключен, у него просто нет пароля, если вы сами его не дадите.
Микаэль Ауно

1
это //stop apacheдолжно быть комментарий? если да, то стандартное обозначение оболочки будет #stop apache, //не работает в Баш
Микель

Корневая учетная запись @MikaelAuno отключена, если у нее нет пароля
T0xicCode

1
@ xav0989 Это вопрос определения. Конечно, вы не можете напрямую войти как rootили войти rootлюбым способом, для которого требуется rootпароль, но есть и другие способы root. Попробуйте, например, sudo -iследовать, whoamiи вы увидите, что вы действительно вошли как root. Кроме того, если вы это сделаете, ps aux | grep rootвы увидите, что у вас уже есть много процессов в вашей системе, работающих как root. Так что, пожалуй, rootне отключено.
Микаэль Ауно

@MikaelAuno или sudo -E -s. Отключенный, я предполагаю, что подразумевалось, что вы не можете напрямую войти в систему как root, но вы все равно можете запускать процессы как root.
T0xicCode
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.