Як перезапустити 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 не працює, він запуститься . -> Чи запуститься також перезавантаження ?
Torben Gundtofte-Bruun

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

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

@MikkoRantalainen: спасибі, я відредагував відповідь, щоб скинути сировину, apache2ctl gracefulі замість цього рекомендую просто service apache2 reload, що працює configtestраніше graceful.
Маріус Гедмінас

26

Рекомендований спосіб Ubuntu для запуску / зупинки служб (не тільки Apache) - використовувати команди start / stop / reload (які насправді є символічними посиланнями на програму initctl , частина запуску ).

Для служб, які використовують застарілі /etc/init.dсценарії, буде викликаний відповідний скрипт з правильними параметрами; для служб , які використовують вискочку інфраструктуру, відповідний перехід події буде сигнал до вискочки демона через 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

щоб витончено зупинити Апач.

Ці команди чекають, поки всі запити на веб-сторінки будуть подані, перш ніж перезапустити / зупинити веб-сервер, щоб користувач не отримав половину веб-сторінки.


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 - Керування системною системою та менеджером послуг.

systemctl може бути використаний для самоаналізу та контролю стану "systemd" системи та менеджера послуг.


-1

якщо ви root: (У моєму корі Ubuntu відключений, я думаю, ніж використовувати команду '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не вимкнено.
Mikael Auno

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