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

Вы можете использовать главный редактор PDF. Мастер PDF Editor является хорошим приложением для этой задачи.

1
задан 2 April 2013 в 19:59

8 ответов

Убедитесь, что вы дважды не декларируете Listen 80 в файлах .conf.

Например, вы можете использовать его как в ports.conf, так и в inn sites-enabled/www.conf.

Чтобы узнать, используйте: grep -ri listen /etc/apache2

Держите Listen 80 только в одном месте.

27
ответ дан 24 May 2018 в 23:55

Когда у меня возникла эта проблема, оказалось, что мой Apache не смог начать загрузку, потому что у меня был сайт SSL, для которого требуется ввести пароль для сертификата.

Хороший способ чтобы определить, действительно ли это для вас - запустить ps -ef | grep apache: если это возвращает процессы, которые выглядят как /bin/bash /usr/share/apache2/ask-for-passphrase mysite.com:443 RSA, тогда он ждет ввода пароля в терминал, который вы никогда не увидите.

Во-первых, я убил височный процесс (отправка kill -HUP в идентификатор процесса для процесса / usr / sbin / apache2 должна быть достаточной, чтобы убить другие, но сделать еще один ps -ef | grep apache, чтобы убедиться).

Затем я выполнил инструкции в этом сообщении, чтобы создать файл паролей SSL, для которого не требуется вводить пароль. Затем service apache2 start работал нормально, и Apache начал правильно после перезагрузки.

12
ответ дан 24 May 2018 в 23:55

Отвечая на вопрос, как я решил эту проблему. Может быть полезно кому-то в будущем.

Try netstat -ltnp | grep :80

Это вернет нечто вроде

tcp6 0 0 ::: 80 ::: * LISTEN 1047 / apache2

Затем запустите

sudo kill -9 1047

, где 1047 - это pid программы, запущенной на порту 80. Вы можете заменить pid, который вы получили из netstat [!d6 ]

11
ответ дан 24 May 2018 в 23:55
  • 1
    спасатель жизни ^^ " благодаря – vivoconunxino 25 March 2018 в 22:44
  • 2
    wow! ... и вот я через 48 часов после отправки билета в inmotionhosting и жду ответа. Спасибо – Amjo 24 May 2018 в 11:54

Я получил эту ошибку при новой установке при запуске apache2 Ubuntu 12.10.

Это ошибка в apache2. Он завис в фоновом режиме. Вот мое пошаговое руководство, где ошибки могут быть в программном обеспечении.

Вот ошибка, которую я получил:

el@titan:~$ sudo service apache2 start
 * Starting web server apache2               
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
                                                                         [fail]

Адрес уже используется? Что можно использовать? Проверьте это:

el@titan:~$ grep -ri listen /etc/apache2
/etc/apache2/apache2.conf:#   supposed to determine listening ports for incoming connections, and which
/etc/apache2/apache2.conf:# Include list of ports to listen on and which to use for name based vhosts
/etc/apache2/ports.conf:Listen 80
/etc/apache2/ports.conf:    Listen 443
/etc/apache2/ports.conf:    Listen 443

Это означает, что apache2 предотвращает запуск apache2. Bizarre. Это подтвердит:

el@titan:~$ ps -ef | grep apache2
root      1146   954  0 15:51 ?        00:00:00 /bin/sh /etc/rc2.d/S91apache2 start
root      1172  1146  0 15:51 ?        00:00:00 /bin/sh /usr/sbin/apache2ctl start
root      1181  1172  0 15:51 ?        00:00:00 /usr/sbin/apache2 -k start
root      1193  1181  0 15:51 ?        00:00:00 /bin/bash /usr/share/apache2/ask-for-passphrase 127.0.1.1:443 RSA
el        5439  5326  0 16:23 pts/2    00:00:00 grep --color=auto apache2

Да, в этом случае apache2 работает, я пытался запустить apache2 во второй раз на том же порту.

Что меня смущает, так это то, что [ f11] сообщает, что apache2 НЕ работает:

el@titan:~$ sudo service apache2 status
Apache2 is NOT running.

И когда вы запрашиваете apache2ctl для своего статуса, он зависает.

root@titan:~# /usr/sbin/apache2ctl status
**hangs until Ctrl-C is pressed.

Итак, у Ubuntu возникают проблемы с управлением apache2 при загрузке. Время, чтобы остановить apache2:

root@titan:~# /usr/sbin/apache2ctl stop
httpd (no pid file) not running

Большой ключ! Вы пытаетесь остановить apache2, и он потерял идентификатор процесса! Поэтому Ubuntu не может остановить apache2, потому что он не знает, где это!

Вы считаете, что перезагрузка исправит его, но это происходит не потому, что apache2 запускается при загрузке и зависает. Нормальный процесс загрузки для apache2 работает неправильно.

Итак, как это исправить?

Я получил эту ошибку при новой установке при запуске apache2 Ubuntu 12.10. , проанализировав вывод команды ps. Обратите внимание, что команда ps сообщает нам, что этот процесс был запущен с помощью «/etc/rc2.d/S91apache2 start».

Это программа-нарушитель, для которой требуется быстрый удар.

/etc/rc2.d/S91apache2 - это символическая ссылка, используемая для запуска apache2 для вас при запуске компьютера. По какой-то причине это похоже на запуск apache2, а затем зависает. Поэтому мы должны будем сказать это, чтобы не делать этого.

Итак, взгляните на это /etc/rc2.d/S91apache2.

el@titan:/etc/rc2.d$ ls -l
lrwxrwxrwx   1 root root    17 Nov  7 21:45 S91apache2 -> ../init.d/apache2*

Это символическая ссылка, которую мы не хотим, чтобы она была там. Сделайте это, чтобы предотвратить запуск apache2 при загрузке:

root@titan:~# sudo update-rc.d -f apache2 remove
 Removing any system startup links for /etc/init.d/apache2 ...
   /etc/rc0.d/K09apache2
   /etc/rc1.d/K09apache2
   /etc/rc2.d/S91apache2
   /etc/rc3.d/S91apache2
   /etc/rc4.d/S91apache2
   /etc/rc5.d/S91apache2
   /etc/rc6.d/K09apache2

Перезагрузите компьютер, чтобы убедиться, что apache2 не запускается и не зависает. Хорошо. Теперь вы МОЖЕТЕ вернуть apache2 так, как было, но это приведет к сбою снова.

root@titan:~$ sudo update-rc.d apache2 defaults     //(don't do this)
 Adding system startup for /etc/init.d/apache2 ...
   /etc/rc0.d/K20apache2 -> ../init.d/apache2
   /etc/rc1.d/K20apache2 -> ../init.d/apache2
   /etc/rc6.d/K20apache2 -> ../init.d/apache2
   /etc/rc2.d/S20apache2 -> ../init.d/apache2
   /etc/rc3.d/S20apache2 -> ../init.d/apache2
   /etc/rc4.d/S20apache2 -> ../init.d/apache2
   /etc/rc5.d/S20apache2 -> ../init.d/apache2

Вместо этого запустите apache2 следующим образом:

sudo service apache2 start

И apache2 снова выполняет резервное копирование и обслуживание страниц. Кажется, есть некоторые серьезные ошибки с apache2 / Ubuntu 12.10, которые заставляют apache2 запускаться и зависать. Это временное решение, я полагаю, что исправление заключается в том, чтобы получить более новые версии apache2 и Ubuntu и надеяться на лучшее.

8
ответ дан 24 May 2018 в 23:55
  • 1
    Наслаждался чтением и использованием ваших советов! Спасибо, что написал «способ отладки»! – Ram 22 July 2016 в 10:15

У меня был сервер Nginx, прослушивающий мой сервер AWS EC2, я думаю, что он сконфигурировался, когда я строил EC2, следовательно, я получал ошибку «Адреса уже в использовании». Поэтому я остановил службу и запустил службу Apache2:

sudo service nginx stop
sudo service apache2 start
3
ответ дан 24 May 2018 в 23:55

Это означает, что вы уже используете порт 80, либо измените порт для apache2 (который я не рекомендую), отредактировав:

/etc/apache2/ports.conf

Или закройте приложение, запущенное на порту 80 :

netstat -antp | grep 80

Чтобы найти то, что работает на порту 80.

1
ответ дан 24 May 2018 в 23:55
  • 1
    netstat -antp | grep 80 ничего не выводит. – Gunner Barnes 3 April 2013 в 23:39
  • 2
    вы можете скопировать и вставить свой результат netstat -antp | grep 80? – Dylan Dodds 3 April 2013 в 23:45
  • 3
    В буквальном смысле нет выхода. – Gunner Barnes 3 April 2013 в 23:47
  • 4
    хм, это странно, попробуйте изменить порт на 81, если не заблокирован порт, есть еще одна ошибка, вы можете проверить ошибки apache2 в /var/log/apache2/error.log – Dylan Dodds 3 April 2013 в 23:53

Просто подсказка для всех, кто, возможно, использует VirtualBox с сетями NAT. Я нашел, что правило NAT между моим гостем и хостом установило себя, привязывая порт

1
ответ дан 24 May 2018 в 23:55

Не только дубликаты упоминаний

Listen 80

, но и упоминание об этом в дополнение к Listen 80

Include ports.conf
0
ответ дан 24 May 2018 в 23:55

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

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