Ubuntu 12.10でApacheを起動できません:利用可能なリスニングソケットがありません


9

apt-getを使用してインストールされたapache2を起動できません。2つの個別のUbuntu 12.10インストールでまったく同じエラーが発生します。1つはデスクトップPCで、もう1つはVirtualBoxで実行されています。

michal@michaltest:~$ sudo service apache2 start
 * Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
           [fail]

lsofさんのコメント:

michal@michaltest:/var/log/apache2$ sudo lsof -i :80
COMMAND     PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ubuntu-ge  2074 michal   11u  IPv4  23978      0t0  TCP michaltest.local:47578->mulberry.canonical.com:http (CLOSE_WAIT)
firefox   25194 michal   71u  IPv4  42477      0t0  TCP michaltest.local:59793->69.59.197.29:http (ESTABLISHED)
firefox   25194 michal   76u  IPv4  41834      0t0  TCP michaltest.local:59698->69.59.197.29:http (ESTABLISHED)
gvfsd-htt 25320 michal   12u  IPv4  42568      0t0  TCP michaltest.local:56203->lb260.amst.cotendo.net:http (CLOSE_WAIT)

netstat言う:

michal@michaltest:/var/log/apache2$ sudo netstat -lnp | grep '80'
unix  2      [ ACC ]     STREAM     LISTENING     8030     876/acpid           /var/run/acpid.socket

/var/log/apache2/error.log:

[Thu Nov 08 11:13:30 2012] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations
[Thu Nov 08 11:17:32 2012] [notice] caught SIGTERM, shutting down

/etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

ご協力いただきありがとうございます。

編集#1:

michal@michaltest:~$ sudo netstat -ano | grep '443'
tcp       54      0 10.0.2.15:58504         91.189.92.70:443        CLOSE_WAIT  off (0.00/0/0)

回答:


9

nginx(3パッケージ)を削除するだけで、それで終わりです。

主な問題は、使用可能なリスニングソケットないことです。Ubuntu サーバーで別のアプリケーション/サービスがポート80を取得したため、この問題が発生しています。

ここで、ポート80を取得したプロセスを強制終了する必要があります。次のコマンドで簡単に見つけることができます:-

sudo netstat -ltnp | grep ':80'

これは次のようなものを返します:-

tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 1588 / aolserver4-nsd

上記の場合、プロセス番号1588ポート80を取得した場合、そのプロセス1588を強制終了する必要があります。

sudo kill -9 1588

これで、次のコマンドでApacheサーバーを起動できます

sudo /etc/init.d/apache2 start


3
ありがとう!「Apacheエラーログには詳細な情報が含まれている可能性があります」と表示されていて、「ログを開くことができません」という内容は何もありませんが、どのログファイル(apache's? )。nodejsはまだ..ポート80を使用していることをターンアウト
andyk

同じエラーが発生しますが、netstatはポート80を使用して何も表示しません...
Cerin

@Cerin netstatの前にsudoを試してください。
Vikas Dwivedi 2017

2

解決するには、「apache2の:確実にServerNameのために127.0.1.1を使用して、サーバーの完全修飾ドメイン名を特定できませんでした」エラーが、親切にあなたのapache2.confファイルに次のように指定

ServerName HOSTNAME_OF_THE_SERVER

confファイルを保存し、Apacheサーバーを再起動します。

の出力を親切に投稿してください sudo netstat -ano | grep '443'

また、443 / sslポートでリッスンするようにApacheを構成している場合は、Apache Webサーバーでssl証明書を構成しておく必要があります。


の出力を投稿しましたsudo netstat -ano | grep '443'。ServerNameのことは問題ではありません。どうもありがとうございました。
michalstanko 2012年

1

あなたは見ましたか:

Unable to open logs

/ var / log / apache2のパーミッションを確認できると思います!


私は少し初心者ですが、/var/log/apache2ディレクトリを再帰的に世界中で書き込み可能にsudo service apache2 startしてから、もう一度実行してみUnable to open logsましたが、出力はまだそこにありました。助言がありますか?ありがとう。
michalstanko 2012年

うーん。それはそのようなものでしょうか?cpanelblog.in/apache-error-unable-to-open-logs
martin-mystere

1

背後でnginxサービスが実行されている可能性があります。したがって、nginx "service nginx stop"を停止して、apache2サービスを開始してみてください。問題なく実行されるはずです。(他のアプリサービスが実行されている場合は停止します)

今日も同じ問題があり、解決しました。

root@ip-172-31-16-xxx:~# **service nginx stop**
root@ip-172-31-16-xxx:~# **service nginx status**
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2017-12-26 08:48:21 UTC; 1min 12s ago
  Process: 5897 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 1220 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 1158 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 1229 (code=exited, status=0/SUCCESS)

Dec 26 06:56:32 ip-172-31-16-xxxsystemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 26 06:56:32 ip-172-31-16-138 systemd[1]: Started A high performance web server and a reverse proxy server.
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopping A high performance web server and a reverse proxy server...
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopped A high performance web server and a reverse proxy server.

root@ip-172-31-16-xxx:~# **service apache2 start**
root@ip-172-31-16-xxx:~# **service apache2 status**
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   **Active: active (running) since Tue 2017-12-26 08:49:51 UTC; 14s ago**
     Docs: man:systemd-sysv-generator(8)
  Process: 5845 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 5937 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 55
   Memory: 6.5M
      CPU: 46ms
   CGroup: /system.slice/apache2.service
           ├─5954 /usr/sbin/apache2 -k start
           ├─5957 /usr/sbin/apache2 -k start
           └─5958 /usr/sbin/apache2 -k start

Dec 26 08:49:50 ip-172-31-16-138 systemd[1]: Starting LSB: Apache2 web server...
Dec 26 08:49:50 ip-172-31-16-138 apache2[5937]:  * Starting Apache httpd web server apache2
Dec 26 08:49:51 ip-172-31-16-138 apache2[5937]:  *
Dec 26 08:49:51 ip-172-31-16-138 systemd[1]: Started LSB: Apache2 web server.
root@ip-172-31-16-138:~#

0

問題のように聞こえるのは、別のプロセスがポート443を開いていることです。最初にそのプロセスを終了する必要があります。

linux-CLOSE_WAITソケット接続を削除する方法-スタックオーバーフローは言う:

CLOSE_WAITプログラムがまだ実行中で、ソケットを閉じていない(カーネルがソケットを閉じるのを待っている)ことを意味します。を追加-pnetstatてpidを取得し、(SIGKILL必要に応じて)より強力に強制終了します。それはあなたのCLOSE_WAITソケットを取り除くはずです。pspidの検索にも使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.