Ubuntu 12.10에서 Apache를 시작할 수 없음 : 사용 가능한 청취 소켓이 없습니다.


9

apt-get을 사용하여 설치된 apache2를 시작할 수 없습니다. 두 개의 별도 Ubuntu 12.10 설치에서 하나는 내 데스크탑 PC에, 다른 하나는 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 00 127.0.0.1:80 0.0.0.0:* LISTEN 1588 / aolserver4-nsd

위의 경우 프로세스 번호 1588포트 80을 획득 한 경우 해당 프로세스 1588을 종료해야합니다.

sudo kill -9 1588

이제 다음 명령에 따라 아파치 서버를 시작할 수 있습니다

sudo /etc/init.d/apache2 start


3
감사! "Apache 오류 로그에 더 많은 정보가있을 수 있습니다"라는 메시지가 표시되지만 "로그를 열 수 없습니다"라는 정보는 없지만 로그 파일에 대한 정보가 없습니다 (apache 's? vhosts ')? ). nodejs가 여전히 포트 80을 사용하고 있음이 밝혀졌습니다.
andyk

같은 오류가 발생하지만 netstat는 포트 80을 사용하여 아무것도 표시하지 않습니다.
Cerin

@ Cerin netstat 전에 sudo를 시도해야합니다.
Vikas Dwivedi

2

"apache2 : ServerName에 127.0.1.1을 사용하여 서버의 정규화 된 도메인 이름을 안정적으로 확인할 수 없습니다" 오류 를 해결하려면 apache2.conf 파일에 다음을 지정하십시오.

ServerName HOSTNAME_OF_THE_SERVER

conf 파일을 저장하고 아파치 서버를 다시 시작하십시오.

친절하게 출력을 게시 sudo netstat -ano | grep '443'

또한 443 / ssl 포트에서 청취하도록 아파치를 구성하는 경우 아파치 웹 서버에서 ssl 인증서를 구성해야합니다.


의 출력을 게시했습니다 sudo netstat -ano | grep '443'. ServerName은 문제가되지 않습니다. 대단히 감사합니다.
michalstanko

1

봤어 :

Unable to open logs

/ var / log / apache2에 대한 권한을 확인할 수 있다고 생각합니다!


나는 약간의 초보자이지만 /var/log/apache2디렉토리를 재귀 적으로 월드 쓰기 가능 하게 만든 다음 sudo service apache2 start다시 실행하려고 시도했지만 출력은 여전히 Unable to open logs거기에있었습니다. 어떤 제안? 감사.
michalstanko

흠. 그렇게 될 수 있을까요? cpanelblog.in/apache-error-unable-to-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이 열려 있다는 것입니다. 먼저 해당 프로세스를 종료해야합니다.

리눅스 - 나는 CLOSE_WAIT 소켓 연결을 제거하려면 어떻게합니까 - 스택 오버플로는 말합니다 :

CLOSE_WAIT프로그램이 여전히 실행 중이고 소켓을 닫지 않았 음을 의미합니다 (커널이 기다리고 있습니다). 추가 -pnetstatPID를 얻기 위해, 다음 (더 강력하게 죽일 SIGKILL필요한 경우). CLOSE_WAIT소켓을 제거해야합니다 . pspid를 찾는 데 사용할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.