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)
답변
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
답변
“apache2 : ServerName에 127.0.1.1을 사용하여 서버의 정규화 된 도메인 이름을 안정적으로 확인할 수 없습니다” 오류 를 해결하려면 apache2.conf 파일에 다음을 지정하십시오.
ServerName HOSTNAME_OF_THE_SERVER
conf 파일을 저장하고 아파치 서버를 다시 시작하십시오.
친절하게 출력을 게시 sudo netstat -ano | grep '443'
또한 443 / ssl 포트에서 청취하도록 아파치를 구성하는 경우 아파치 웹 서버에서 ssl 인증서를 구성해야합니다.
답변
봤어 :
Unable to open logs
/ var / log / apache2에 대한 권한을 확인할 수 있다고 생각합니다!
답변
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:~#
답변
문제는 다른 프로세스에서 포트 443이 열려 있다는 것입니다. 먼저 해당 프로세스를 종료해야합니다.
리눅스 – 나는 CLOSE_WAIT 소켓 연결을 제거하려면 어떻게합니까 – 스택 오버플로는 말합니다 :
CLOSE_WAIT
프로그램이 여전히 실행 중이고 소켓을 닫지 않았 음을 의미합니다 (커널이 기다리고 있습니다). 추가-p
할netstat
PID를 얻기 위해, 다음 (더 강력하게 죽일SIGKILL
필요한 경우).CLOSE_WAIT
소켓을 제거해야합니다 .ps
pid를 찾는 데 사용할 수도 있습니다 .