служба httpd restart / (98) адрес уже используется

11

Я не могу перезапустить apache на своем веб-сервере CentOS 6.8:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:7080
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:7080
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

Я перепробовал кучу вещей, которые я прочитал онлайн, включая удаление файлов блокировки.

Я решил попробовать перезагрузить сервер. После перезагрузки попытка загрузить любые размещенные веб-сайты приведет к «502 Bad Gateway».

# service httpd status
httpd is stopped

# service httpd start
Starting httpd:                                            [  OK  ]

# service httpd status
httpd dead but subsys locked

Несмотря на «мертвый» статус, теперь я могу загружать сайты!

Иногда служба httpd restart работает ...

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Но в других случаях это приводит к первой ошибке выше. В этом случае я могу это исправить с помощью:

# killall -9 httpd
# service httpd start

Так что я могу обойти это, но мне действительно интересно, что происходит, и мне интересно, стоит ли мне беспокоиться.

stevland
источник
Ваша файловая система заполнена? И: когда появляется ошибка, запустите netstat -tulpenи ищите все, что прослушивает порт 7080. Вы запускаете только apache, верно? Порт 7080 не является ошибкой?
Леннией
tcp 0 0 :::7080 :::* LISTEN 0 5626801 3829/httpd
Stevland

Ответы:

12

Возможно, вы указали своего слушателя на этом порту дважды в ваших конфигах где-то.

Слушай *: 7080

Если вы запустите тест конфигурации Apache, он скажет, что конфигурация в порядке, пока вы фактически не перезапустите службу, произойдет сбой с ошибкой, аналогичной той, что вы видите.

Также убедитесь, что ваше местоположение регистрации существует и доступно для записи, и в нем есть место для записи, это сообщение в конце подозрительно.

Джефф У.
источник
9

SSH к серверу и запустить следующее:

setenforce 0

Это отключит selinux до следующей перезагрузки

Затем попробуйте перезагрузить Apache

service httpd restart

Если это работает как-то, Selinux был включен.

Для отключения навсегда перейдите по этой ссылке:

https://kb.plesk.com/en/115626

Энтони Форнито
источник
Как бы я ни любил простые ответы, к сожалению, это не сработало. :(
Stevland
Можете ли вы запустить эти команды, чтобы увидеть, что использует какие порты. Пожалуйста, добавьте вывод в вопрос или вставьте. "netstat -ano | grep 80" "netstat -ano | grep 7080" "cat / etc / services | grep -w 80" "cat / etc / services | grep -w 7080" "nmap localhost | grep 80" "nmap localhost | grep 80 "" nmap localhost "
Энтони Форнито