Apache не может перезапустить


71

Попытка перезапустить apache из терминала с помощью следующей команды:

 sudo service apache2 restart

при выполнении этой команды появляется ошибка ниже:

Job for apache2.service failed. See "systemctl status apache2.service" and "journalctl -xe" for details.

По исключению "systemctl status apache2.service" попал ниже вывода

apache2.service - (null)
   Loaded: loaded (/etc/init.d/apache2)
   Active: failed (Result: exit-code) since Sat 2015-05-30 02:22:41 IST; 12s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4866 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

apache error.log

AH00489: Apache/2.4.12 (Unix) configured -- resuming normal operations
AH00094: Command line: '/usr/local/apache2/bin/httpd'

6
после запуска перезапуска apache2 и получения этой ошибки запустите программу sudo journalctl -xe, которая даст вам лучшее представление о том, что произошло. если у вас все еще есть проблемы с пониманием этого. Опубликуйте результаты здесь.
grag42

Хорошо. Это мне тоже не помогло. Что находится в лог-файлах Apache. /var/log/apache2/error.log
grag42

@ grag42 спасибо за ваше предложение, я запустил sudo journalctl -xe и обнаружил, что там есть какая-то проблема с правилом перезаписи, и исправил ее, и теперь она работает.
Гаутам Савалия

4
Возможный дубликат Apache не
запускается

3
@rancho: Что заставляет вас верить, что вопрос дубликат? Связанный вопрос содержит довольно специфическое сообщение об ошибке, которого у нас нет. Возможные причины проблемы ОП довольно неясны в данный момент.
Дэвид Фёрстер

Ответы:


61

Может быть, это поможет найти причину:

journalctl | tail

В моем случае это была ошибка в файле конфигурации:

AH00526: Syntax error on line 5 of /etc/apache2/sites-enabled/mydomain-wsf.lan.conf

6
No journal files were found.
Стиви Дж.

5
@ SteveieG, попробуйsudo journalctl | tail
Дерик

1
Что вы сделали, чтобы исправить это?
Лео Леопольд Герц 준영

в моем случае я также допустил ошибку в файле
apache2.config

Благодарю. Я неправильно набрал свой каталог для недавно добавленного сайта conf.
Линнелл Эммануэль Нери

48

В файле есть синтаксическая ошибка apache2.conf.

В терминале введите:

cd /etc/apache2

Затем:

apache2ctl configtest

Он покажет вам, где находится ошибка в apache2.confфайле для исправления.


1
Отличный подход tnx, сэкономил мое время
Георгий Гарчагудашвили

1
Это фантастика.
августа

1
Благодарю. Была проблема с опцией redmine и PassengerResolveSymlinksInDocumentRoot.
Вадим

LOL, после выполнения: apache2ctl configtestсинтаксис получил нормально, но когда я запускаю apache2 --helpполучил apache2: Syntax error on line 82 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot и без ошибок в apache error.log!
Владимир Ч

После того, как я внимательно /etc/apache2/sites-enabled/посмотрел в каталог, я заметил, что получил файл, а не символическую ссылку на site.conf + reenable mod php5.6 (sudo a2dismod php5.6; sudo a2enmod php5.6) мой сервис apache2 был запущен без "ооо ааа "
Владимир Ч

18

Проблема в том, что некоторые файлы конфигурации удалены, вам необходимо переустановить его.

Переустановите APACHE2:

Чтобы заменить файлы конфигурации, которые были удалены, без очистки пакета, вы можете сделать:

sudo apt-get -o DPkg::Options::="--force-confmiss" --reinstall install apache2

Чтобы полностью удалить файлы конфигурации apache2, вам необходимо:

sudo apt-get purge apache2

который затем позволит вам переустановить его обычным способом:

sudo apt-get install apache2

Очистка необходима для удаления всех файлов конфигурации - если вы удаляете файлы конфигурации, но удаляете только пакет, то это запоминается, и отсутствующие файлы конфигурации по умолчанию не переустанавливаются.

Затем переустановите PHP5:

apt-get purge libapache2-mod-php5 php5 && \
apt-get install libapache2-mod-php5 php5

1
Как вы думаете, почему некоторые файлы конфигурации были удалены?
Лео Леопольд Герц 준영

2

Проблема:

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

Решение:

  • Чтобы полностью удалить файлы конфигурации apache2, вам необходимо:

    1) sudo apt-get purge apache2

  • который затем позволит вам переустановить его обычным способом:

    2) sudo apt-get install apache2

==> Работает нормально ...

Спасибо....


2

Я получил ту же ошибку после удаления виртуального хоста. Проблема заключалась в том, что файл SSL, связанный с этим хостом, находится в /etc/apache2/sites-enabled. SSL был через Let's Encrypt, поэтому код для удаления был:

sudo rm yourdomain.com-le-ssl.conf

1

Я получил те же ошибки при работе с .htaccess

Я просто поставил эту команду

<Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

в /etc/apache2/sites-enabled/000-default.confэтой папке

после добавления этого я получаю ошибку

Затем я удаляю эти команды из файла, и моя ошибка устранена.


1

Скорее всего, у вас есть синтаксическая ошибка. для меня это было в моей папке «сайты включены».

я неправильно написал «ServerAlias» в «ServerAlisa».


Мой был, я неправильно написал свою папку.
Линнелл Эммануэль Нери

0

В основном это ошибка конфигурации. У меня только что был включен старый сайт на Apache, что вызвало эту ошибку. Поэтому мне пришлось отключить его перед перезагрузкой apache.

sudo a2dissite <my-site>
sudo service apache2 reload

Задача решена :)


0

Спасибо за помощь! Мне удалось правильно установить с решением:

Чтобы полностью удалить файлы конфигурации apache2, вам необходимо:

  1. sudo apt-get purge apache2 который затем позволит вам переустановить его обычным способом:

  2. sudo apt-get install apache 2

Теперь работает нормально.


0

Я думаю, проблема в том, что у вас включен какой-то сайт, но вы удалили его файл конфигурации. Попробуйте отключить сайт с помощью sudo a2dissite "name", а затем перезапустите сервер Apache. По крайней мере, это была проблема для меня, и это действие решило ее.


0

В моем случае ошибка начала появляться после выполнения apt upgrade. Много поиграв, я пошел в следующие каталоги, чтобы посмотреть, что я могу отключить.

  • / etc / apache2 / mods-enabled - a2dismod (чтобы снова включить a2enconf)
  • / etc / apache2 / conf-enabled - a2disconf (чтобы снова включить a2enconf)

В моем случае я должен был включить эти моды.

введите описание изображения здесь

Кажется, что apt-upgradeдолжен был удалить / сломал php7.2, потому что, как только я отключил его и перезапустил все работало. Конечно, в любом другом случае это может быть что-то другое. Когда Apache падает, это может быть плохой конфиг или плохой мод. Вы должны выбрать свои сражения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.