У меня возникли проблемы с перезапуском Apache с 2000 виртуальных хостов.
Я использую Apache 2.2.22 + PHP 5.4.6 на 64-разрядной версии CentOS 5.8.
Когда я пытаюсь перезапустить его, отображается следующее:
/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
это нормально, потом какое-то время, а потом снова: /
Мне кажется, что Apache изначально не запускался, по крайней мере, не под PID, под которым его запустил сценарий инициализации. Проверьте (или предоставьте здесь) вывод "ps auxwww".
Моя самая сильная интуиция подсказывает, что ваш корневой процесс apache умирает, оставляя детей в живых и прослушивая порт 80. Если это так, посмотрите в журнал ошибок apache и системные журналы, чтобы узнать, что убивает корневой процесс.
Другие возможности: у вас может быть что-то еще, запускающее apache вручную вне сценария инициализации, или что-то еще может прослушивать порт 80 (но это не объясняет, почему работает killall -9 httpd).
Это была проблема с пакетом. У меня httpd из репозитория webtactic. Поменял на ту из Lxcenter и работает очень хорошо;)