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

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

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

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Apache

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

Ubuntu

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

Q&A

解決済

2回答

3658閲覧

Ubuntu ApacheでHTTP通信ができない

1234567890-

総合スコア1

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Apache

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

Ubuntu

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

0グッド

0クリップ

投稿2021/08/27 13:47

問題

UbuntuのApacheでhttp通信(ポート80)ができなくて困っています。
http://でサイトに繋ぐと白い画面が表示されます。
https://で接続すると正常です。

原因

おそらく過去にApache関連でhttpでの通信についての設定を触った

試したこと

Apacheのアンインストール → 再インストール

分かっていること

Listen 80にするとApacheが起動しないので、/etc/apache2/ports.confをListen 443にすると起動

# If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default.conf Listen 443 #<---該当箇所 ここを80にするとエラー (下記参照) <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

エラー詳細

上記ports.confを80にしてApacheを起動したときのエラーは以下の通りです

(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80 (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down AH00015: Unable to open logs Action 'start' failed. The Apache error log may have more information.

このエラーに対し、ポート80を使っている他のプロセスを調べてkillしようとしましたがポート80では他に何も動いていないようです。サーバーを再起動しても変化はありません。

知りたいこと

Apacheの設定ファイルまでを完全にインストールしなおしてもhttpで通信すると白くなります。この原因として考えられる設定ファイルの所在が知りたいです。

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

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

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

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

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

CHERRY

2021/08/27 21:10

> The Apache error log may have more information. とありますが、Apache のエラーログにはどのようなメッセージが出ていますか?
1234567890-

2021/08/28 03:19 編集

/etc/log/apache2/ other_vhosts_access.log.1 : xxxx.localdomain:80 40.77.167.64 - - [28/Aug/2021:06:22:03 +0900] "\x16\x03\x03" 400 0 "-" "-" error.log: [Sat Aug 28 06:27:49.583493 2021] [mpm_event:notice] [pid 3787:tid 140328217939008] AH00489: Apache/2.4.41 (Ubuntu) configured -- resuming normal operations [Sat Aug 28 06:27:49.583571 2021] [core:notice] [pid 3787:tid 140328217939008] AH00094: Command line: '/usr/sbin/apache2' error.log.1: [Sat Aug 28 06:27:49.558139 2021] [mpm_event:notice] [pid 3787:tid 140328217939008] AH00493: SIGUSR1 received. Doing graceful restart [Sat Aug 28 06:27:49.576981 2021] [core:warn] [pid 3787:tid 140328217939008] (92)Protocol not available: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT とあります。 なお、ポート開放は正常です。
guest

回答2

0

自己解決

色々あって自己解決できました

原因はWindows Server 2019内で動いていたIISがポート80を使用していたことでした。
WSLのUbuntuからは特定できず、

netstat -ano | find ":80" ```でポート80を使用しているプロセスをWindows Serverから確認し、PID4が動作していることが発覚したのでIISを削除することで解決に至りました。

投稿2021/08/28 14:59

1234567890-

総合スコア1

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

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

0

以下のエラーを見ると、80 番ポートを複数あけようとして失敗しているように見えます。
複数のファイルにまたがって、もしくは 1 つのファイルに複数 Listen 80 が記載されたりしていないでしょうか。
以下のコマンドを例にご確認いただければと思います。

sudo grep "Listen 80" /etc/apache2/*

ご参考になれば幸いです。

投稿2021/08/28 06:01

atomis

総合スコア283

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

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

1234567890-

2021/08/28 06:55

ご回答ありがとうございます。 ワイルドカードが使えないようなので(xx Is a directoryと表示される) grepコマンドに-rオプションをつけて/etc/apache2/ 内の全てのファイルを”Listen 80”で検索しましたが、何も表示されませんでした。 また、一度Apacheを再インストール(設定ファイルまで全て削除)しているため、おそらく多重表記等はないものと思われます。
atomis

2021/08/28 08:07

ワイルドカードについて失礼しました。 念のため確認ですが、Apache 以外の Web サーバーや設定ファイルも存在しないですよね? (他にプロセスも上がっていないとのことなので、ないとは思っていますが。) 私も Ubuntu 20.04 LTS に Apache を入れて色々と試してみましたが問題を再現させることができず、他に思いつくこともありませんでした。 お役にたてずすみません。
1234567890-

2021/08/28 08:22

過去にNginxを入れたことがあるということを書き忘れていました。昨日apacheをアンインストールした際にNginxの設定ファイルの存在が表示されたのでそれに気付き、apt purge nginxでアンインストールしたのですが、もしかしたらまだ設定ファイルが残っている可能性も考えられますね。
atomis

2021/08/28 08:37

おっしゃるとおりファイルが残っている可能性が高いです。 まずはそちらをご確認いただければと思います。
1234567890-

2021/08/28 12:38

Nginxの存在は確認されませんでした。完全に消去されたものと思われます。 [core:notice] [pid 9623:tid 140317412232256] AH00094: Command line: '/usr/sbin/apache2' とエラーログにあったので、'/usr/sbin/apache2'を実行したところ、 (13)Permission denied: AH00072: make_sock: could not bind to address [::]:80 (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down やはりこの文言が出てきてしまいます。LAN環境からローカルIPで閲覧した場合も443ポートは正常なのですが80ポートで404エラーが発生します。
1234567890-

2021/08/28 12:53

追記: HTTPでのアクセスをHTTPSにリダイレクトするといったことを試みたのを思い出しました。 /etc/apache2/sites-enabled/000-default.confの内容は以下のようになっています。 リダイレクトのために2,3,4行目にRewrite関連のものを追記しています。 <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> また、WordPressを削除したことを思い出しました。WordPress関連のリダイレクトに関する設定が .htaccessに残っていたので削除したのですが、相変わらずApacheが起動できないようです。 度々追記ばかりで恐縮ですが、上記の追加情報から何か原因となっているものとして考えられるものはありますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問