ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Две распространенные ошибки при запуске сервера Apache в Linux

Две распространенные ошибки при запуске сервера Apache в Linux

Помните, что правильный способ запуска сервера apache – использовать команду apachectl.

apachectl stop
apachectl start
apachectl graceful

 

Вы также можете проверить свои файлы конфигурации с помощью apachectl configtest.

 

Адрес, который уже используется

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down

 

Это вызвано одним или несколькими процессами, запущенными на порту 443 (secure socket). Вы можете получить все идентификаторы процессов, запущенных на этом порту, с помощью команды fuser или более классической ps auxww с менее читаемым форматом.

[andreyex@host ~]$ fuser 443/tcp
443/tcp: 7977 6815 9819 35217
# Now you just have to do a **kill** on those process.
[andreyex@host ~]$ kill -9 7977 6815 9819 35217
# Or in a single line:
[andreyex@host ~]$ kill -9 $(fuser 443/tcp 2>/dev/null)

 

На устройстве не осталось свободного места

(28)No space left on device: Couldn't create accept lock
# or
(28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed

 

Когда вы проверяете свое хранилище, вы обнаруживаете, что у вас еще достаточно свободного места. Итак, что происходит? Проблема возникает из-за того, что apache не был выключен должным образом и оставил много семафорных массивов. Семафорные массивы используются для межпроцессного взаимодействия (ipc). Итак, вот ipcs команда. ipcs предоставляет информацию о средствах ipc, доступ к которым был получен вызывающим процессом.

[andreyex@host ~]$ ipcs -s | grep www-data
0x00000000 163840 www-data 600 1  
0x00000000 196609 www-data 600 1  
0x00000000 229378 www-data 600 1

 

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

[andreyex@host ~]$ ipcs -s | grep www-data | perl -e "while () { @a=split(/\s+/); print \`ipcrm sem $a[1]\`}"
Exit mobile version