WSLのUbuntuのApache起動時に「Failed to enable APR_TCP_DEFER_ACCEPT」警告
ぐぐると対処法はすぐ出てくるんだけど、自分用にもう少し詳しくメモ
WSLでApache2をインストールして起動したら、Failed to enable APR_TCP_DEFER_ACCEPT
という警告が出た。
これは、Apacheの設定ファイル /etc/apache2/apache2.conf
に以下の2行を追記すれば出なくなる。
設定後、一応 sudo service apache2 restart
でサービスを再起動しておくこと。
この方法は以下の記事を参考にさせていただいた。
【BoUoW】Apache起動時の「Failed to enable APR\_TCP\_DEFER\_ACCEPT」 - Qiita
で、どうしてこれで直るのかを少し調べる……
以下のWSLのGitHubのIssueを見ると、TCP_DEFER_ACCEPT
がWindowsではサポートされていないから、この警告が出るらしい。
でも TCP_DEFER_ACCEPT
が何なのかは、片手間に調べた程度では理解できなかった。
雰囲気では、Linuxで使われている、TCP周りの何かを効率良くするためのオプションらしい。
TCP 3-way handshakeのレイテンシ軽減のためのTCP\_DEFER\_ACCEPTソケットオプション - ゆううきブログ
Linux socket accepシステムコールとTCP\_DEFER\_ACCEPT
そしてApacheの AcceptFilter
が何なのかというと……
AcceptFilter
に none
以外を設定した場合、そのプロトコルで TCP_DEFER_ACCEPT
が有効になると。
また、Linuxでの初期値は以下の通りらしい。
しかしWindowsではそもそも TCP_DEFER_ACCEPT
に対応してないから、none
を設定してあげないと警告が出た……ということだと思う。