Назад | Перейти на главную страницу

Порт свободен, но Apache дает сбой: «Адрес уже используется: make_sock: не удалось привязать к адресу»

Apache (Linux Red Hat 4.1.x) не запускается с сообщением: «Адрес уже используется: make_sock: не удалось привязать к адресу».

# /etc/init.d/httpd start
Starting httpd: (98)Address already in use: 
make_sock: could not bind to address 0.0.0.0:8000
no listening sockets available, shutting down
Unable to open logs
                                                       [FAILED]

Уже пробовали делать:

killall -9 httpd

Похоже, Apache не запущен. Порт 8000 свободен, поэтому ничто не мешает Apache занять его. (nginx включен: 80 как обратный прокси)

 # netstat -tulpn| grep :80
 tcp  0   0 0.0.0.0:8001    0.0.0.0:*   LISTEN 17181/DarwinStreami
 tcp  0   0 0.0.0.0:80      0.0.0.0:*   LISTEN 7962/nginx.conf

Возможно у кого-то возникнут мысли, как это исправить?

UPD1: Параметры конфигурации Apache:

ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5

<IfModule prefork.c>
StartServers       1
MinSpareServers   5
MaxSpareServers   20
ServerLimit     200
MaxClients  200
MaxRequestsPerChild 2000

User apache
Group apache

DocumentRoot "/var/www/html"

NameVirtualHost *:8000

UPD2: Pid не найден:

# ls /etc/httpd/run/*.pid
/etc/httpd/run/crond.pid          /etc/httpd/run/sshd.pid
/etc/httpd/run/dhclient-eth0.pid  /etc/httpd/run/streamingadminserver.pid
/etc/httpd/run/haldaemon.pid      /etc/httpd/run/syslogd.pid
/etc/httpd/run/messagebus.pid     /etc/httpd/run/syslog-ng.pid
/etc/httpd/run/nginx.pid          /etc/httpd/run/xfs.pid

UPD3: перезагрузка сервера не помогает;)

UPD4: nc -l 8000 работает нормально, так что проблема не в порту 8000, а в самом Apache.

UPD5: "# / usr / sbin / lsof -i: 8000" - ничего не выводит

У вас есть директива Listen для одного и того же сокета несколько раз. Использовать grep -r Listen /etc/httpd/conf.d/*.conf /etc/httpd/conf/httpd.conf найти виновного.

Из документация apache:

Состояние ошибки
Использование нескольких директив Listen для одного и того же IP-адреса и порта приведет к появлению сообщения об ошибке «Адрес уже используется».

Иногда я получаю это, когда файл PID не был удален во время предыдущей остановки apache. Если PID есть, попробуйте удалить его перед повторным запуском.

Я также иногда получаю это, когда пытаюсь запустить apache, используя учетную запись, отличную от той, для которой был настроен apache.