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

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

ただいまの
回答率

87.48%

Ubuntu ApacheでHTTP通信ができない

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 224

score 1

問題

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で通信すると白くなります。この原因として考えられる設定ファイルの所在が知りたいです。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • CHERRY

    2021/08/28 06:10

    > The Apache error log may have more information.

    とありますが、Apache のエラーログにはどのようなメッセージが出ていますか?

    キャンセル

  • 1234567890-

    2021/08/28 09:02 編集

    /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

    とあります。

    なお、ポート開放は正常です。

    キャンセル

回答 2

check解決した方法

0

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

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

netstat -ano | find ":80"

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

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

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


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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2021/08/28 17:37

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

    キャンセル

  • 2021/08/28 21: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エラーが発生します。

    キャンセル

  • 2021/08/28 21: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が起動できないようです。

    度々追記ばかりで恐縮ですが、上記の追加情報から何か原因となっているものとして考えられるものはありますでしょうか?

    キャンセル

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

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

関連した質問

同じタグがついた質問を見る