Apache(アパッチ)で再起動しようとするとエラーがでます。
再起動をさせたいのですが
下記のエラーはどういう意味でしょうか?
また、どういったことをすればエラーを解消できますか?
(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
ご教授宜しくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
再起動コマンドを、rootユーザーじゃなくて一般ユーザーで実行してしまったと言うことでしょう。
投稿2017/09/05 12:17
総合スコア86459
0
ベストアンサー
Listen 80を「バーチャルホストを書いている分割設定ファイル」やhttpd.confに複数書いてないでしょうか?
ソケット80番を重複オープンしようとして開けません!というエラーメッセージです。
ターミナルから下記コマンドで複数記述がないか確認してみてください。(/etc/httpdはApache設定ファイルのパスで、違う場合は変更してください)
bash
1grep Listen /etc/httpd
投稿2017/09/05 12:15
編集2017/09/05 12:17総合スコア1652
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
上記のコマンドを打ったらこのようにでました。
grep: /etc/httpd: ディレクトリです
これはつまりどういうことでしょうか?
すいません、
# Listen: Allows you to bind Apache to specific IP addresses and/or
# Change this to Listen on specific IP addresses as shown below to
#Listen 12.34.56.78:80
Listen 80
こうでました!
Apacheはyum、apt-getなどでパッケージをインストールしたのでしょうか?それともコンパイルしてインストールしたのでしょか?パッケージとコンパイルインストールを両方入れている場合は、注意が必要です。
>Listen 80
1箇所のみのようなので、可能性としてはインストール場所が違うか、80番ポートを使うなんらかのサーバーが既に使用しているか、Apacheが不具合を起こしている可能性があります。
下記コマンドで80番ポートをどのサーバーが使用しているか調べてみてください。
sudo netstat -tunap | grep 80
--
tcp 0 0 :::80 :::* LISTEN 20851/httpd
※私の開発環境での結果です
上記のように表示された場合は、Apacheが不具合を起こしている可能性がありますのでApacheを強制終了させてください。
sudo su -
killall -9 httpd && rm -f /var/run/httpd/httpd.pid
service httpd start
別のサーバーが起動している場合は、該当のサーバーを終了させてからApacheを起動します。
終了の仕方がわからない場合または、強制終了は下記のように行います。
sudo kill -9 サーバーのPID番号
または、
sudo killall -9 サーバー名
2017/09/08 23:35
いきなり -9 でkillするのは良くない習慣でしょう。終了処理が行われません。
> いきなり -9 でkillするのは良くない習慣でしょう。終了処理が行われません。
質問で「Apache(アパッチ)で再起動しようとするとエラーがでます。」とあったので、サーバーを正常終了する方法は理解していると読み取っていましたが、サーバーの正常終了方法を知らない他のユーザーのためにその方法を記載しておきます。
■サーバーの正常終了の方法(SystemV Init系・Upstart系 古めのOS)
sudo service サーバー名 stop
sudo /etc/init.d/サーバー名 stop
■サーバーの正常終了の方法(Systemd系 最近のOS)
sudo systemctl stop サーバー名.service
■Apacheの場合(CentOS 6など)
sudo service httpd stop
sudo /etc/init.d/httpd stop
■Apacheの場合(CentOS 7など)
sudo systemctl stop httpd.service
※OSやインストールしているパッケージによってはサーバー名(サービス名)が違う場合もあります。
※sudoを使わないで「su」を使ってスーパーユーザー(root)になってからコマンドを実行しても同じことができますが、普通スーパーユーザーの実行コマンドはログに残らないのでできるだけsudoをお勧めします。
蛇足ですがSystemVはSysV(システムファイブ or シスファイブ)とも呼ばれます。正確にはVはアルファベットではなく数字のVです。
RedHat系のOSでは長らくデフォルトのサーバー起動方式をInit方式にしていましたが、最新のRedHat 7ではSystemdに切り替わり、その他のRedHat系のCentOS 7などのOSでも同様に切り替わりました。また、Debian系のOSでもSystemdに切り替わっています。もちろんすべてのOSではありません。
正確にはOSによって異なりますが、SystemV InitからUpstart、そしてSystemdに切り替わりました。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。