質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.03%

Bash on Ubuntu on Windowsでapacheの起動

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,620

shi_ue

score 4360

前提・実現したいこと

せっかくWindows 10でUbuntuが動くようになったので、Bash on Ubuntu on Windowsでapache & PHPを動かしてみようと思っています。

発生している問題・エラーメッセージ

apache & PHP7.0のインストールまではうまく行ったのですが、apacheの起動前にconfigtestが実行される際にエラーが発生します。

apache2: ../sysdeps/posix/getaddrinfo.c:2583: getaddrinfo: Assertion `(__extension__ ({ const struct in6_addr *__a = (const struct in6_addr *) (sin6->sin6_addr.__in6_u.__u6_addr32); __a->__in6_u.__u6_addr32[0] == 0 && __a->__in6_u.__u6_addr32[1] == 0 && __a->__in6_u.__u6_addr32[2] == __bswap_32 (0xffff); }))' failed.
Aborted (core dumped)
Action 'configtest' failed.
The Apache error log may have more information.

管理者権限が必要なのかと思い、管理者で実行してみましたが同じでした。

その他

PHPは「Bash on Ubuntu on Windowsにphpをインストール」を参考に、PHP7.0をインストールしています。
Bash on Ubuntu on WindowsでLAMP開発環境を構築」を見ると普通にインストールして普通に起動してるんですよね・・・
getaddrinfoでアサーションが起きているので、ipv6系のエラーなのでしょうか?

もし解決した方がいらっしゃれば教えていただけないでしょうか。

追記

いったんBash on Ubuntu on Windowsの環境を削除して、apacheだけ入れてみましたが、同じ結末です。apt update、apt upgradeの前にやっても後にやっても同じでした。
32bitと64bitの差とかあるんですかね。当方は64bitです。
次期バージョンではUbuntuが16.04LTSにアップデートされ、ipv6のバインドも対応されるそうなので、それを待つしかないのでしょうか。来年の春なので遠いですね。Insider Previewに入るのは怖いし・・・

引き続き解決策を募集します。

追記(2017/05/08)

Creators updateが来たので入れてみましたが、結局同じ・・・
仕方がないので、Windows Defender セキュリティセンターからクリーンインストールをしてみました。

何の問題もなく動きましたとさ。
お し ま い

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kunai

    2016/10/11 11:44

    Apacheのエラーログの中には何が記録されていますか?

    キャンセル

  • shi_ue

    2016/10/11 12:25

    何も記録されていません。0バイトでした。

    キャンセル

  • infrataro

    2016/10/11 13:46

    Bash on Ubuntu on Windows自体は管理者権限で実行していますか?(右クリック管理者として実行)

    キャンセル

  • shi_ue

    2016/10/11 13:47

    はい。質問文の中にも書いてありますが、管理者権限でも実行しています。

    キャンセル

回答 3

checkベストアンサー

+3

家がIPv6が使える環境でしたので、テストをしてみたところ、ユーザー権限で起動しました(httpd.confについては、root権限が無しで動作させるため、ポート80から8080へ変更しています)。IPv6対応のプロバイダを使用し、IPv6を配布している環境で、Windows自体もIPv6が有効で、IPv6アドレスを持っています。となると、やはり、IPv6がないとうまく動かないと言うことなのかもしれません。

【試した環境】
プロバイダおよびルータ: IPv6対応(IPoE)、ルータでRAとDHCPv6(DNSサーバ情報取得のため)を配付。IPv4とはデュアルスタック(IPv4はDS-Liteでインターネットにアクセス)。
Windows: IPv6有効。IPv6アドレスも取得している。IPv4ももちろん使える。
Ubuntu: 特にそのまま、何も変えてない。起動は一般ユーザ権限。(ただし、ターミナルにはCmderを使っている)
Apache: pcre,apr,apr-util,apacheを~/localに全てソースからコンパイルしてインストール。http.confで80を8080にだけ変更。一般ユーザのままapachectl startで起動。
その他: 起動時にFQDNを設定していないといういつもの警告以外に下記警告が出る。でも起動は可能でアクセスも可能。
(22) Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT

なお、PHPは入れてません。コンパイルするのが疲れましたので。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/14 23:12

    そこまで試していただいたんですね。ありがとうございます。
    こちらでもやってみます!
    警告は、http.confに
      AcceptFilter http none
      AcceptFilter https none
    を入れると出なくなるようです。

    キャンセル

  • 2016/10/15 14:01

    やっぱりダメでした。わたしの環境が特殊なんですかね?
      httpd -t
    とコンフィグのチェックをするだけでAssertionが起きてしまいます。
    コンパイルオプションの
       -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
    が付いているのが悪いのか、と思って、apr.h の APR_HAVE_IPV6 を 0 にしてみましたが同じでした。

    せっかく試していただいたのに残念な結果になってしまいました。
    使えないので諦めます。

    キャンセル

0

apacheに限ったことではないようですが、海外サイトで議論されています。
Ubunts自体のアップデートを行って解決するかもです。
https://github.com/Microsoft/BashOnWindows/issues/614

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/11 12:52

    ご回答ありがとうございます。
    アップデートしてみましたが、同じでした。

    sshdも同じエラーが出たのですが、Listenアドレスを0.0.0.0にしたら、エラーが出なくなったので、たぶんipv6のアドレスを調べに行くときにエラーが出ているのだと推察してるんです。
    もう少し調査してみます。

    キャンセル

0

へー、Bash on Ubuntuでサーバーが立ち上げられるようになったんですね!
ポートの制限だとかで無理だったと記憶していましたが試してみます。

質問文のブログ記事では特に何もしていないのに、すんなりサーバーが立ち上がりましたが、
IPv6対応のプロバイダ+ルーターだったのでしょうか?

一応リンク、v6対応のプロバイダはあまり多くないようです…
https://flets.com/next/ipv6_ipoe/isp.html

調査していると、ApacheをIPv4のみで動かす設定があるようです。
一度試してみてください。
http://kajuhome.com/cgi-bin/patio/patio.cgi?mode=view&no=1932

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/11 13:40

    sshdなんかは特殊な方法をやらないと、bashを閉じた時に終了してしまいますが、一度立ち上げてしまえば、sshで使い慣れたsshクライアントで出来るので、ローカルサーバーとしては使い勝手がいいです。

    マシン自体のipv6をオフにしているので、それでしょうかね。
    onにしてやってみます。

    あと、apacheのipv4オンリーはダメでした。
    Lisnten にipアドレスを書いても同じ結果でした。

    キャンセル

  • 2016/10/11 14:56

    ありがとうございます。
    だめでしたか…

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる