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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

3回答

5027閲覧

Bash on Ubuntu on Windowsでapacheの起動

shi_ue

総合スコア4437

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2016/10/11 02:41

編集2017/05/08 13:46

###前提・実現したいこと
せっかく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をインストール](http://qiita.com/tomo0925@github/items/9255f3fac7410a0f328f)」を参考に、PHP7.0をインストールしています。 「[Bash on Ubuntu on WindowsでLAMP開発環境を構築](http://sawara.me/linux/2680/)」を見ると普通にインストールして普通に起動してるんですよね・・・ 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 セキュリティセンターからクリーンインストールをしてみました。 何の問題もなく動きましたとさ。 お し ま い

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kunai

2016/10/11 02:44

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

2016/10/11 03:25

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

2016/10/11 04:46

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

2016/10/11 04:47

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

回答3

0

ベストアンサー

家が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 13:30

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shi_ue

2016/10/14 14:12

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

2016/10/15 05:01

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

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 04:33

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shi_ue

2016/10/11 04:40

sshdなんかは特殊な方法をやらないと、bashを閉じた時に終了してしまいますが、一度立ち上げてしまえば、sshで使い慣れたsshクライアントで出来るので、ローカルサーバーとしては使い勝手がいいです。 マシン自体のipv6をオフにしているので、それでしょうかね。 onにしてやってみます。 あと、apacheのipv4オンリーはダメでした。 Lisnten にipアドレスを書いても同じ結果でした。
miyabi-sun

2016/10/11 05:56

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

0

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

投稿2016/10/11 03:40

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shi_ue

2016/10/11 03:52

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問