Установка Apache на Linux Subsystem for Windows. Решение сопутствующих ошибок

Добрый день. В этой статье я расскажу как установить Apache на подсистему Linux в Windows 10. Инструкция подразумевает что Вы уже включили новую фичу в своей системе.

  1. Открываем BASH консоль
    2016-07-22_09-40-31

 

  1. Пишем в консоли

Ждем. Когда процесс закончится. Сразу оговормся что автостарт apache не происходит потому что в Linux Subsystem for Windows отсутствует демон Upstart. Я пока разбираюсь с этой проблемой.  Для того чтобы запустить apache пишем в терминале

Апач запуститься. Открываем любимый браузер и пишем в адресной строке localhost
2016-07-22_10-02-53

 

ПРОБЛЕМЫ.
После запуска Apache. внимательные пользователи сразу же обратят внимание в лог консоли. Там будет несколько сообщений об ошибках, не критичных, но все же они есть. Список

1. AH00557: apache2: apr_sockaddr_info_get() failed for DESKTOP-RM4S1IT
2. AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
3.  [core:warn] [pid 6417:tid 140018619451264] (22)Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT

Итак, начинаем последовательно их решать.
1. AH00557: apache2: apr_sockaddr_info_get() failed for DESKTOP-RM4S1IT

В данном случае "DESKTOP-RM4S1IT" является именем моего ноутбука.  Решение данной проблемы очень простое. Копируем куда-нибудь это имя и пишем в терминале

Добавляем в этот файл в самом верху следующую запись

2016-07-22_10-11-52

 

Закрываем файл нажатием Ctrl+X после клавиша Y и после клавиша Enter.
После этого перезагружаем апач командой sudo service apache2 restart  и видим что первая ошибка исчезла. Переходим к решению второй.

2. AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Итак, чаще всего такая ошибка в apache (Не только в Linux Subsystem но и в целом в среде Unix) возникает по причине отсутствия параметра "ServerName" в httpd.conf веб сервера.
Исправить ее достаточно просто.  Переходим к окну терминала Linux пишем команду

Откроется конфиг файл Apache.  Проматываем его в самый конец (кнопочки Page Down, Page Up) и в самый низ файла с новой строки, объявлем такую директиву

Закрываем файл нажатием Ctrl+X после клавиша Y и после клавиша Enter.
После этого перезагружаем апач командой sudo service apache2 restart  и видим что вторая ошибка исчезла. Переходим к решению крайней.

3.  [core:warn] [pid 6417:tid 140018619451264] (22)Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT

Для решения это ошибки нужно вновь отредактировать файл apache2.conf. Переходим к окну терминала Linux пишем команду

Откроется конфиг файл Apache.  Проматываем его в самый конец (кнопочки Page Down, Page Up). С новой строки добавляем еще одну директиву следующего содержания

Это будет выглядеть вот так
2016-07-22_10-25-09

Закрываем файл нажатием Ctrl+X после клавиша Y и после клавиша Enter.
После этого перезагружаем апач командой sudo service apache2 restart  и видим что при старте Apache  у нас не присутствует ни одной ошибки.
2016-07-22_10-27-39

 

На этом все, удачи в разработке.

P.S. не забывайте о том  что после выключение / перезагрузки компьютера Apache не стартует самостоятельно. По этому если вы перезагружались или выключали компьютер , прежде чем взаимодействовать с веб сервером откройте BASH  консоль подсистемы Linux и запустите Apache командой

 

Comments

comments

Оставьте комментарий