web-dev-qa-db-ja.com

Apache2の起動時に「アクセスが拒否されました:make_sock:アドレスにバインドできませんでした」というメッセージが表示されるのはなぜですか?

私はそれを止めることができます

/etc/init.d/Apache2 stop

しかし、私はそれを使用して再び起動したいとき:

/etc/init.d/Apache2 start

私はこのエラーを受け取ります:

Starting web server Apache2                                                  /usr/sbin/Apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
                                                                         [fail]
24
Artisan

将来的に同様の状況からあなたを救うことを願う、あなたが得るエラーについてのいくつかの言葉。

Linuxでは、0〜1024のポートはシステム用に予約されています。つまり、使用するには、変更する権限が必要です-基本的なシステム設定にアクセスします。 rootユーザーにはこのような特権があり、実際には0から1024の範囲のポートを使用できます。

あなたが見ることができるあなたの問題では、Apache2応答を介してシステムが問題の根本を示しています([...]アドレスに何とかバインドすることができませんでした80):

(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80

Apache2 httpデーモンが起動すると、HTTPで使用するデフォルトのポートである80ポートをバインドしようとします see 。これは、システムに割り当てられたポートなどのポートです。ルートからのみアクセスできます。

Root権限を持たない一般的なユーザーとしてstartコマンドを実行しましたが、実行に失敗しました。

簡単な言葉で:

君は:

こんにちはApache2。私はKongthapであり、開始するように言っています(/etc/init.d/Apache2 start

Apache2:

OK。開始しています(WebサーバーApache2の開始)

システム、接続を使用してリッスンするポート80を教えてください。

システム:

OK。確認する瞬間...

ああ...申し訳ありませんがApache2ですが、80ポートで実行させることはできません。個人使用です。

また、それをバインドするための正しい特権がありません。 (Operation not permitted

Apache2:

ああ、Kongthap起動できませんでした、システムは私にそれをさせませんでした((13)Permission denied:[...]

結論

この問題には主に2つの解決策があります。

  1. Sudoを使用して、ルート権限でApache2 HTTPデーモンを実行します。

    Sudo service Apache2 start
    

    または:

    Sudo /etc/init.d/Apache2 start
    
  2. デフォルトのポートを80から1024より大きい値に変更します。たとえば、200025009000などです。このような状況で実行する典型的なポート8080

    Sudo vi /etc/Apache2/ports.conf
    

    探すか、ない場合は追加します:

    Listen 8080
    

    または、ポート> 1024などの選択した他のポートで、選択したポートはnot別のプロセスで使用されます。

48
Stef K

以下はApacheサーバーを起動/停止/再起動するコマンドです

  • 始めること:

    Sudo /etc/init.d/Apache2 start
    
  • 止まる:

    Sudo /etc/init.d/Apache2 stop
    
  • 再起動します:

    Sudo /etc/init.d/Apache2 restart
    
7
Saurav Kumar

コマンドを発行してselinuxポートコンテキストを確認します

semanage port -l | grep http

Http_port_tリストに存在する場合は問題ありませんが、そうでない場合はポートを追加します

semanage port -a -t http_port_t -p tcp 80

または割り当てたいもの。

4
zahid iqbal

これはselinuxエラーであるか、少なくとも私の場合はそうでした。ブール値を変更するか、selinuxを無効にするか、setenforce 0で許容値に設定します。

ブール値を変更するには、getenforce -a | grep httpを実行し、「http接続ネットワークを許可する」を探す必要があります。コピーして、リストに「-off」と表示されている「on」を置き換えます

1
tru