У меня возникли проблемы при перезапуске Apache с 2000 виртуальных хостов.
Я использую Apache 2.2.22 + PHP 5.4.6 на CentOS 5.8 64-бит.
При попытке перезапуска выдает следующее:
/etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(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
[FAILED]
Когда я killall -9 httpd
это делаю, то все нормально, а потом это происходит снова :/
решение1
Мне кажется, что Apache изначально не был запущен, по крайней мере не под тем PID, под которым его запустил скрипт init. Проверьте (или предоставьте здесь) вывод "ps auxwww".
Моя интуиция подсказывает, что ваш корневой процесс Apache умирает, оставляя дочерние процессы активными и прослушивающими порт 80. Если это так, посмотрите журнал ошибок Apache и системные журналы, чтобы узнать, что убивает корневой процесс.
Другие возможности: возможно, что-то еще запускает Apache вручную вне сценария инициализации, или что-то еще прослушивает порт 80 (но это не объясняет, почему killall -9 httpd работает).
решение2
Это была проблема с пакетом. У меня httpd из репозитория webtactic. Поменял на тот, что из Lxcenter, и все работает отлично ;)