Вы можете использовать главный редактор PDF. Мастер PDF Editor является хорошим приложением для этой задачи.
Убедитесь, что вы дважды не декларируете Listen 80 в файлах .conf.
Например, вы можете использовать его как в ports.conf, так и в inn sites-enabled/www.conf.
Чтобы узнать, используйте: grep -ri listen /etc/apache2
Держите Listen 80 только в одном месте.
Когда у меня возникла эта проблема, оказалось, что мой 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 начал правильно после перезагрузки.
Отвечая на вопрос, как я решил эту проблему. Может быть полезно кому-то в будущем.
Try netstat -ltnp | grep :80
Это вернет нечто вроде
tcp6 0 0 ::: 80 ::: * LISTEN 1047 / apache2Затем запустите
sudo kill -9 1047
, где 1047 - это pid программы, запущенной на порту 80. Вы можете заменить pid, который вы получили из netstat [!d6 ]
Я получил эту ошибку при новой установке при запуске 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 и надеяться на лучшее.
У меня был сервер Nginx, прослушивающий мой сервер AWS EC2, я думаю, что он сконфигурировался, когда я строил EC2, следовательно, я получал ошибку «Адреса уже в использовании». Поэтому я остановил службу и запустил службу Apache2:
sudo service nginx stop
sudo service apache2 start
Это означает, что вы уже используете порт 80, либо измените порт для apache2 (который я не рекомендую), отредактировав:
/etc/apache2/ports.conf
Или закройте приложение, запущенное на порту 80 :
netstat -antp | grep 80
Чтобы найти то, что работает на порту 80.
Просто подсказка для всех, кто, возможно, использует VirtualBox с сетями NAT. Я нашел, что правило NAT между моим гостем и хостом установило себя, привязывая порт
Не только дубликаты упоминаний
Listen 80
, но и упоминание об этом в дополнение к Listen 80
Include ports.conf