私はそれを止めることができます
/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]
将来的に同様の状況からあなたを救うことを願う、あなたが得るエラーについてのいくつかの言葉。
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つの解決策があります。
Sudo
を使用して、ルート権限でApache2 HTTPデーモンを実行します。
Sudo service Apache2 start
または:
Sudo /etc/init.d/Apache2 start
デフォルトのポートを80
から1024
より大きい値に変更します。たとえば、2000
、2500
、9000
などです。このような状況で実行する典型的なポート8080
Sudo vi /etc/Apache2/ports.conf
探すか、ない場合は追加します:
Listen 8080
または、ポート> 1024
などの選択した他のポートで、選択したポートはnot別のプロセスで使用されます。
以下はApacheサーバーを起動/停止/再起動するコマンドです
始めること:
Sudo /etc/init.d/Apache2 start
止まる:
Sudo /etc/init.d/Apache2 stop
再起動します:
Sudo /etc/init.d/Apache2 restart
コマンドを発行してselinuxポートコンテキストを確認します
semanage port -l | grep http
Http_port_tリストに存在する場合は問題ありませんが、そうでない場合はポートを追加します
semanage port -a -t http_port_t -p tcp 80
または割り当てたいもの。
これはselinuxエラーであるか、少なくとも私の場合はそうでした。ブール値を変更するか、selinuxを無効にするか、setenforce 0
で許容値に設定します。
ブール値を変更するには、getenforce -a | grep http
を実行し、「http接続ネットワークを許可する」を探す必要があります。コピーして、リストに「-off」と表示されている「on」を置き換えます