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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Apache

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

Ubuntu

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Q&A

解決済

2回答

144閲覧

lvh.meでcurlは接続できるのにブラウザからは開けません(WSL、apache2.4)

aki029

総合スコア1

Apache

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

Ubuntu

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

0グッド

0クリップ

投稿2024/04/30 17:13

編集2024/04/30 17:14

実現したいこと

自力でWeb関係を学習している初心者です。PCにapacheでサーバーを立てようとしているのですが、virtualhostの設定がうまく効きません。virtualhostの設定ファイルはdockerで作ったCentOSのapacheで用いていたものをほとんど流用しています。

発生している問題・分からないこと

シェルのcurlコマンドであれば作成したファイルや仮想ディレクトリのページを取得できますが、ブラウザでlvh.meを使ったurlでアクセスしても「このサイトにアクセスできません。」という画面が出てきてしまいます。イメージ説明

エラーメッセージ

error

1 curl -I [任意の名前].lvh.me 2--実行結果-- 3 HTTP/1.1 200 OK 4Date: Tue, 30 Apr 2024 17:09:03 GMT 5Server: Apache/2.4.52 (Ubuntu) 6Upgrade: h2,h2c 7Connection: Upgrade 8Content-Type: text/html; charset=UTF-8

該当のソースコード

UseCanonicalName Off EnableSendfile off <VirtualHost *:80> ServerAdmin root@localhost Servername lvh.me ServerAlias *.lvh.me VirtualDocumentRoot /virtual/%1/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/" </FilesMatch> <Directory /virtual/*/public_html> DirectoryIndex index.php Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> DirectoryIndex index.php index.html </VirtualHost>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

同様の問題に関する記事を見かけましたが(https://teratail.com/questions/208490)、VPSはWSLを構築して以来導入してはいないのであまり参考になりませんでした...
何卒宜しくお願い致します。

補足

特になし

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

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

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

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

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

winterboum

2024/05/01 01:00

環境を書きましょう。 webサーバはどこに建てたのか curl はどこで実行したのか ブラウザはどこで実行したのか。 1台のPCに仮想OSたててやってるとしたら、それは別のホストというつもりで記述してください
guest

回答2

0

おそらく
物理マシンがWindows
WSLでUbuntuをインストールして、Ubuntu内にApacheをインストール
Ubuntuの全NICで80番ポートをlisten
Ubuntu内でcurl -I lvh.meは接続可
ホストのWindows上のブラウザでlvh.meにアクセスすると動かない
という状況だったと思います(本文からは判別不能ですが予想では)


lvh.meというドメインは、DNSでIPアドレスを引くと必ず127.0.0.1が返ってくるようなものです

質問はlvh.meとはぜんぜん関係なく
Ubuntu内でcurl -I 127.0.0.1は接続可
ホストのWindows上のブラウザで127.0.0.1にアクセスすると動かない
のはなぜか? というのが本題です


127.0.0.1はループバックアドレスで、ホストのWindowsではWindows自体、仮想マシンで使うと仮想マシン自身を指します

WSLを入れた時点で、ホストのWindowsには仮想のNICがセットアップされて172.26.〜というようなIPアドレスが振られていて、WSLの仮想マシンも同様です
ホストのWindowsと仮想マシンは172.26.〜という仮想のネットワークの配下で繋がっているイメージを持てばよいです
WSLの仮想マシンで起動しているWebサーバにアクセスするにはそちらのIPアドレスを使えばよいです(ホストからはwsl hostname -Iなどで確認可能です)

投稿2024/05/01 12:25

quickquip

総合スコア11061

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

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

0

自己解決

どうやらWSLのWebサーバーはWindows側ではlvh.meでは認識されないらしく、Windows側のhostsファイルにWSLのipをlvh.meで紐づけてあげたらうまくいきました。コメントくださった方々、ありがとうございました。今後の質問の参考にします。

投稿2024/05/01 08:40

aki029

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問