Сервер Apache не запускается автоматически

Я установил Apache долгое время как часть настройки среды разработки на моем ноутбуке.

Однако, поскольку я остановил ее несколько месяцев назад, она больше не запускается автоматически при загрузке. У меня эта проблема на моем ноутбуке дома и на моем ноутбуке на работе.

В обоих случаях я установил Apache в Ubuntu 10.10 несколько месяцев назад, использовал его в течение нескольких недель без сбоев, но потом однажды Я остановил его, и теперь он больше не запускается автоматически. Я попытался запустить обновление rc для него вручную, но мне сказали, что скрипт init уже используется.

Однако запуск / перезапуск его вручную с помощью

sudo service apache2 start/restart

отлично работает. В обоих случаях я допускаю это только после обновления до 11.04, потому что я надеялся, что он будет разрешен новой версией. Но это не так! Я был бы признателен, если кто-нибудь скажет мне, как запустить Apache еще раз.

11
задан 12 May 2011 в 13:02

50 ответов

Для других пользователей (googling) для этой проблемы проверьте, что если вы запустите:

chkconfig |grep httpd

, вы получите

httpd 0: off 1: off 2: on 3: on 4: on 5: on 6: off

else do:

chkconfig httpd on

(извините за эквивалент ubuntu chkconfig update-rc.d см. Альтернативу Chkconfig для сервера Ubuntu?) [ ! d5]

1
ответ дан 4 August 2018 в 19:28

Попробуйте запустить

update-rc.d apache2 enable [list of run levels]

как root.

Вам может быть интересно прочитать

man update-rc.d
10
ответ дан 4 August 2018 в 19:28
  • 1
    Большое спасибо, я выполнил команду (без списка уровней запуска, только по умолчанию), и, похоже, она работает. Вы знаете, почему это перестало работать? Я не занимался скриптами init, я думаю, что просто остановил Apache из командной строки, но я не собирался останавливать его постоянно . :-) – Carsten Agger 12 May 2011 в 14:32
  • 2
    У меня нет никакого мнения, почему он прекратил работать :) Может быть, после обновления что-то начнет работать не правильно. – ignar 13 May 2011 в 00:24
  • 3
    Спасибо, но это не помогает. Независимо от того, как я называю update-rc.d apache2 enable, apache перестает работать автоматически. Я всегда должен запускать его вручную. Кажется, что никаких реальных проблем нет, так как он всегда запускается правильно, когда я делаю это вручную. – Carsten Agger 31 May 2011 в 12:14

Я добавляю этот ответ, основываясь на последних проблемах, с которыми я столкнулся с теми же симптомами.

Сначала некоторые исходные данные:

Ubuntu использует сценарии в папке /etc/init.d/ для запуска / stop. Ubuntu использует символические ссылки для этих скриптов /etc/init.d/, хранящихся в папках /etc/rc#.d/, для запуска / остановки служб на основе «уровня запуска». Символы, начинающиеся с «S», указывают на то, что служба должна быть запущена. Символы, начинающиеся с «K», указывают на то, что служба должна быть остановлена ​​(убита). Уровень выполнения 1 выполняет скрипты, символически связанные в /etc/rc1.d/, уровень выполнения 2 использует /etc/rc2.d/ и т. Д. Уровень запуска по умолчанию для Ubuntu - 2. Установка Apache по существу запускает sudo update-rc.d apache2 defaults, который создает соответствующие символические ссылки в папках /etc/rc#.d/.

Так кажется, что на моем сервере что-то или кто-то в какой-то момент побежал sudo update-rc.d apache2 disable, который удалил все символические ссылки «S» и заменил их символическими ссылками «K». Таким образом, убийство или просто не запуск Apache при инициализации любого из уровней выполнения.

Мое решение состояло в том, чтобы снова включить Apache:

sudo update-rc.d apache2 enable

Теперь Apache запускает / останавливается, как ожидалось

NB:

Стоит отметить, что просто запустить sudo update-rc.d apache2 defaults снова недостаточно, потому что он видит, что существуют символические ссылки и считает, что они нужны. Он просто отвечает:

System start/stop links for /etc/init.d/apache2 already exist.
6
ответ дан 4 August 2018 в 19:28
  • 1
    Спасибо! Это было очень полезно при устранении неполадок в моей конфигурации. – reor 10 September 2016 в 00:36
  • 2
    У меня такая проблема, но это решение на удивление не сработало. Когда я запускаю sudo update-rc.d apache2 enable defaults, он удаляет то, что у меня есть, а затем возвращает его обратно. У меня есть K09apache2 в rc0, 1 и 6, и у меня есть S91apache2 в rc2, rc3, rc4, rc5. service apache2 start работает отлично, но я должен сделать это после каждого перезапуска, так как он не запускается автоматически. mysql, с другой стороны, всегда начинается нормально. – Buttle Butkus 13 July 2017 в 09:01
  • 3
    Они выглядят правильно. Вы можете открыть новый вопрос с подробной информацией о своей конкретной проблеме и обязательно включить соответствующие строки из своих /var/log/syslog и /var/log/apache2/error.log. Сообщите мне ссылку на вопрос, и я посмотрю, смогу ли я помочь. – Karl Wilbur 13 July 2017 в 11:05

У меня была такая же проблема, и я запускаю Ubuntu 14 на локальной настройке Vagrant. Я удалил каталог /etc/apache2/sites-enabled и добавил ссылку на мой домашний каталог, который, конечно, монтируется на мой локальный диск в соответствии с конфигурациями Vagrant.

Оказывается, apache не видел каталог, потому что ресурс был еще не установлен. Я переписал свое положение о Vagrant, чтобы просто скопировать каталог sites-enabled вместо добавления символической ссылки.

Я также сделал sudo update-rc.d apache2 enable, как было предложено Karl Wilbur, чтобы убедиться, что init был включен.

0
ответ дан 4 August 2018 в 19:28

У меня была та же проблема, и я запускаю Ubuntu 14 на локальной настройке Vagrant. Я удалил каталог / etc / apache2 / sites-enabled и добавил ссылку на мой домашний каталог, который, конечно, монтируется на моем локальном диске в соответствии с конфигурациями Vagrant.

Оказывается, apache не видел каталог, потому что ресурс еще не был установлен. Я переписал свое положение о Vagrant, чтобы просто скопировать каталог с поддержкой вместо добавления символической ссылки.

Я также сделал sudo update-rc.d apache2 enable , как было предложено Karl Wilbur , чтобы убедиться, что apache init включен.

0
ответ дан 6 August 2018 в 03:38

Я добавляю этот ответ, основываясь на последних проблемах, с которыми я столкнулся с теми же симптомами.

Сначала некоторые исходные данные:

  • Ubuntu использует сценарии в /etc/init.d/ для запуска / остановки служб.
  • Ubuntu использует символические ссылки для этих сценариев /etc/init.d / , хранящихся в папке /etc/rc#.d / , для запуска / остановки служб на основе «уровня выполнения».
  • Символы, начинающиеся с «S», указывают на то, что служба должна быть запущена .
  • Символы, начинающиеся с «K», указывают на то, что служба должна быть остановлена ​​(убита).
  • Уровень выполнения 1 выполняет скрипты, символически связанные в /etc/rc1.d / , runlevel 2 использует /etc/rc2.d / и т. д.
  • Уровень запуска по умолчанию для Ubuntu равен 2.
  • Установка Apache по существу запускает sudo update-rc.d apache2 defaults , который создает соответствующие символические ссылки в папках /etc/rc#.d / .

Так кажется, что на моем сервере что-то, или кто-то, int ran sudo update-rc.d apache2 disable , который удалил все символические ссылки «S» и заменил их символическими ссылками «K». Таким образом, убить или просто не запускать Apache при инициализации любого из уровней выполнения.

Мое решение состояло в том, чтобы снова включить Apache:

  sudo update-rc.d apache2  enable  

Теперь Apache запускает / останавливается, как ожидалось, при запуске или переключении уровней запуска.

NB:

Стоит отметить, что только запуск sudo update-rc.d apache2 defaults снова недостаточен, потому что он видит, что существуют символические ссылки и считает, что они нужны. Он просто отвечает:

  Ссылки на запуск / останов системы для /etc/init.d/apache2 уже существуют.   
6
ответ дан 6 August 2018 в 03:38

Попробуйте запустить

  update-rc.d apache2 включить [список уровней выполнения]  

как root.

Вам может быть интересно прочитать

  man update-rc.d  
10
ответ дан 6 August 2018 в 03:38

Для других пользователей (googling) для этой проблемы проверьте, что если вы запустите:

  chkconfig | grep httpd  

вы получаете

< blockquote>

httpd 0: off 1: off 2: on 3: on 4: on 5: on 6: off

else do:

  chkconfig httpd on  

(извините за эквивалент ubuntu chkconfig update-rc.d см. Альтернатива Chkconfig для сервера Ubuntu? )

1
ответ дан 6 August 2018 в 03:38

У меня была та же проблема, и я запускаю Ubuntu 14 на локальной настройке Vagrant. Я удалил каталог / etc / apache2 / sites-enabled и добавил ссылку на мой домашний каталог, который, конечно, монтируется на моем локальном диске в соответствии с конфигурациями Vagrant.

Оказывается, apache не видел каталог, потому что ресурс еще не был установлен. Я переписал свое положение о Vagrant, чтобы просто скопировать каталог с поддержкой вместо добавления символической ссылки.

Я также сделал sudo update-rc.d apache2 enable , как было предложено Karl Wilbur , чтобы убедиться, что apache init включен.

0
ответ дан 7 August 2018 в 21:29

Для других пользователей (googling) для этой проблемы проверьте, что если вы запустите:

  chkconfig | grep httpd  

вы получаете

< blockquote>

httpd 0: off 1: off 2: on 3: on 4: on 5: on 6: off

else do:

  chkconfig httpd on  

(извините за эквивалент ubuntu chkconfig update-rc.d см. Альтернатива Chkconfig для сервера Ubuntu? )

1
ответ дан 7 August 2018 в 21:29

Попробуйте запустить

  update-rc.d apache2 включить [список уровней выполнения]  

как root.

Вам может быть интересно прочитать

  man update-rc.d  
10
ответ дан 7 August 2018 в 21:29

Я добавляю этот ответ, основываясь на последних проблемах, с которыми я столкнулся с теми же симптомами.

Сначала некоторые исходные данные:

  • Ubuntu использует сценарии в /etc/init.d/ для запуска / остановки служб.
  • Ubuntu использует символические ссылки для этих сценариев /etc/init.d / , хранящихся в папке /etc/rc#.d / , для запуска / остановки служб на основе «уровня выполнения».
  • Символы, начинающиеся с «S», указывают на то, что служба должна быть запущена .
  • Символы, начинающиеся с «K», указывают на то, что служба должна быть остановлена ​​(убита).
  • Уровень выполнения 1 выполняет скрипты, символически связанные в /etc/rc1.d / , runlevel 2 использует /etc/rc2.d / и т. д.
  • Уровень запуска по умолчанию для Ubuntu равен 2.
  • Установка Apache по существу запускает sudo update-rc.d apache2 defaults , который создает соответствующие символические ссылки в папках /etc/rc#.d / .

Так кажется, что на моем сервере что-то, или кто-то, int ran sudo update-rc.d apache2 disable , который удалил все символические ссылки «S» и заменил их символическими ссылками «K». Таким образом, убить или просто не запускать Apache при инициализации любого из уровней выполнения.

Мое решение состояло в том, чтобы снова включить Apache:

  sudo update-rc.d apache2  enable  

Теперь Apache запускает / останавливается, как ожидалось, при запуске или переключении уровней запуска.

NB:

Стоит отметить, что только запуск sudo update-rc.d apache2 defaults снова недостаточен, потому что он видит, что существуют символические ссылки и считает, что они нужны. Он просто отвечает:

  Ссылки на запуск / останов системы для /etc/init.d/apache2 уже существуют.   
6
ответ дан 7 August 2018 в 21:29

У меня была та же проблема, и я запускаю Ubuntu 14 на локальной настройке Vagrant. Я удалил каталог / etc / apache2 / sites-enabled и добавил ссылку на мой домашний каталог, который, конечно, монтируется на моем локальном диске в соответствии с конфигурациями Vagrant.

Оказывается, apache не видел каталог, потому что ресурс еще не был установлен. Я переписал свое положение о Vagrant, чтобы просто скопировать каталог с поддержкой вместо добавления символической ссылки.

Я также сделал sudo update-rc.d apache2 enable , как было предложено Karl Wilbur , чтобы убедиться, что apache init включен.

0
ответ дан 10 August 2018 в 09:47

Попробуйте запустить

  update-rc.d apache2 включить [список уровней выполнения]  

как root.

Вам может быть интересно прочитать

  man update-rc.d  
10
ответ дан 10 August 2018 в 09:47

Я добавляю этот ответ, основываясь на последних проблемах, с которыми я столкнулся с теми же симптомами.

Сначала некоторые исходные данные:

  • Ubuntu использует сценарии в /etc/init.d/ для запуска / остановки служб.
  • Ubuntu использует символические ссылки для этих сценариев /etc/init.d / , хранящихся в папке /etc/rc#.d / , для запуска / остановки служб на основе «уровня выполнения».
  • Символы, начинающиеся с «S», указывают на то, что служба должна быть запущена .
  • Символы, начинающиеся с «K», указывают на то, что служба должна быть остановлена ​​(убита).
  • Уровень выполнения 1 выполняет скрипты, символически связанные в /etc/rc1.d / , runlevel 2 использует /etc/rc2.d / и т. д.
  • Уровень запуска по умолчанию для Ubuntu равен 2.
  • Установка Apache по существу запускает sudo update-rc.d apache2 defaults , который создает соответствующие символические ссылки в папках /etc/rc#.d / .

Так кажется, что на моем сервере что-то, или кто-то, int ran sudo update-rc.d apache2 disable , который удалил все символические ссылки «S» и заменил их символическими ссылками «K». Таким образом, убить или просто не запускать Apache при инициализации любого из уровней выполнения.

Мое решение состояло в том, чтобы снова включить Apache:

  sudo update-rc.d apache2  enable  

Теперь Apache запускает / останавливается, как ожидалось, при запуске или переключении уровней запуска.

NB:

Стоит отметить, что только запуск sudo update-rc.d apache2 defaults снова недостаточен, потому что он видит, что существуют символические ссылки и считает, что они нужны. Он просто отвечает:

  Ссылки на запуск / останов системы для /etc/init.d/apache2 уже существуют.   
6
ответ дан 10 August 2018 в 09:47

Для других пользователей (googling) для этой проблемы проверьте, что если вы запустите:

  chkconfig | grep httpd  

вы получаете

< blockquote>

httpd 0: off 1: off 2: on 3: on 4: on 5: on 6: off

else do:

  chkconfig httpd on  

(извините за эквивалент ubuntu chkconfig update-rc.d см. Альтернатива Chkconfig для сервера Ubuntu? )

1
ответ дан 10 August 2018 в 09:47

У меня была та же проблема, и я запускаю Ubuntu 14 на локальной настройке Vagrant. Я удалил каталог / etc / apache2 / sites-enabled и добавил ссылку на мой домашний каталог, который, конечно, монтируется на моем локальном диске в соответствии с конфигурациями Vagrant.

Оказывается, apache не видел каталог, потому что ресурс еще не был установлен. Я переписал свое положение о Vagrant, чтобы просто скопировать каталог с поддержкой вместо добавления символической ссылки.

Я также сделал sudo update-rc.d apache2 enable , как было предложено Karl Wilbur , чтобы убедиться, что apache init включен.

0
ответ дан 13 August 2018 в 16:00

Для других пользователей (googling) для этой проблемы проверьте, что если вы запустите:

  chkconfig | grep httpd  

вы получаете

< blockquote>

httpd 0: off 1: off 2: on 3: on 4: on 5: on 6: off

else do:

  chkconfig httpd on  

(извините за эквивалент ubuntu chkconfig update-rc.d см. Альтернатива Chkconfig для сервера Ubuntu? )

1
ответ дан 13 August 2018 в 16:00

Попробуйте запустить

  update-rc.d apache2 включить [список уровней выполнения]  

как root.

Вам может быть интересно прочитать

  man update-rc.d  
10
ответ дан 13 August 2018 в 16:00
  • 1
    Большое спасибо, я выполнил команду (без списка уровней запуска, только по умолчанию), и, похоже, она работает. Вы знаете, почему это перестало работать? Я не занимался скриптами init, я просто остановил Apache из командной строки, но я не собирался останавливать его постоянно . :-) – Carsten Agger 12 May 2011 в 14:32
  • 2
    У меня нет никакого мнения, почему он прекратил работать :) Может быть, после обновления что-то начнет работать не правильно. – ignar 13 May 2011 в 00:24
  • 3
    Спасибо, но это не помогает. Независимо от того, как я называю update-rc.d apache2 enable, apache перестает работать автоматически. Я всегда должен запускать его вручную. Кажется, что никаких реальных проблем нет, так как он всегда запускается правильно, когда я делаю это вручную. – Carsten Agger 31 May 2011 в 12:14

Я добавляю этот ответ, основываясь на последних проблемах, с которыми я столкнулся с теми же симптомами.

Сначала некоторые исходные данные:

  • Ubuntu использует сценарии в /etc/init.d/ для запуска / остановки служб.
  • Ubuntu использует символические ссылки для этих сценариев /etc/init.d / , хранящихся в папке /etc/rc#.d / , для запуска / остановки служб на основе «уровня выполнения».
  • Символы, начинающиеся с «S», указывают на то, что служба должна быть запущена .
  • Символы, начинающиеся с «K», указывают на то, что служба должна быть остановлена ​​(убита).
  • Уровень выполнения 1 выполняет скрипты, символически связанные в /etc/rc1.d / , runlevel 2 использует /etc/rc2.d / и т. д.
  • Уровень запуска по умолчанию для Ubuntu равен 2.
  • Установка Apache по существу запускает sudo update-rc.d apache2 defaults , который создает соответствующие символические ссылки в папках /etc/rc#.d / .

Так кажется, что на моем сервере что-то, или кто-то, int ran sudo update-rc.d apache2 disable , который удалил все символические ссылки «S» и заменил их символическими ссылками «K». Таким образом, убить или просто не запускать Apache при инициализации любого из уровней выполнения.

Мое решение состояло в том, чтобы снова включить Apache:

  sudo update-rc.d apache2  enable  

Теперь Apache запускает / останавливается, как ожидалось, при запуске или переключении уровней запуска.

NB:

Стоит отметить, что только запуск sudo update-rc.d apache2 defaults снова недостаточен, потому что он видит, что существуют символические ссылки и считает, что они нужны. Он просто отвечает:

  Ссылки на запуск / останов системы для /etc/init.d/apache2 уже существуют.   
6
ответ дан 13 August 2018 в 16:00
  • 1
    Спасибо! Это было очень полезно при устранении неполадок в моей конфигурации. – reor 10 September 2016 в 00:36
  • 2
    У меня такая проблема, но это решение на удивление не сработало. Когда я запускаю sudo update-rc.d apache2 enable defaults , он удаляет то, что у меня есть, а затем возвращает его обратно. У меня есть K09apache2 в rc0, 1 и 6, и у меня есть S91apache2 в rc2, rc3, rc4, rc5. service apache2 start работает нормально, но я должен делать это после каждого перезапуска, так как он не запускается автоматически. mysql, с другой стороны, всегда начинается нормально. – Buttle Butkus 13 July 2017 в 09:01
  • 3
    Они выглядят правильно. Вы можете открыть новый вопрос с подробной информацией о своей конкретной проблеме и не забудьте включить соответствующие строки из своих / var / log / syslog и /var/log/apache2/error.log . Сообщите мне ссылку на вопрос, и я посмотрю, смогу ли я помочь. – Karl Wilbur 13 July 2017 в 11:05

Другие вопросы по тегам:

Похожие вопросы: