AH00015 : 로그를 열 수 없습니다. 'start'조치가 실패했습니다. 우분투 14.04에서


10

apache2를 설치하려고 하는데이 문제에 직면했습니다.

웹 서버 apache2를 다시 시작하면 오류가 발생합니다.

    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
[fail]
 * The apache2 instance did not start within 20 seconds. Please read the log files to discover problems

아파치 구성 파일을 게시 할 수 있습니까?
Lety

죄송합니다, 아파치 구성 파일을 얻는 방법?
narru033

이어야 하고 /etc/apache2/apache2.conf, /etc/apache2/sites-enabled/000-default.conf정의한 경우/etc/apache2/sites-available/yourFile.conf
Lety

답변:


8

운영

sudo netstat -tulpn | grep :80

그리고 당신은 같은 것을 얻을 것입니다

tcp        0      0 0.0.0.0:80         0.0.0.0:*      LISTEN     1066/lighttpd

포트를 수신하는 프로세스의 pid를 주목하십시오. 필자의 경우 1066이었습니다.

sudo kill -9 1066

pid를 포트를 청취하는 것으로 변경하십시오. 1066과 같지 않을 수도 있습니다.


1

다른 서버 응용 프로그램과 마찬가지로 다른 응용 프로그램에 의해 이미 바인딩 된 포트 (이 경우 포트 80)에 바인딩 할 수 없습니다 http. 오류의 원인은 다른 곳에서 이미 듣고 있기 때문에 Apache가 포트 80에 바인딩 할 수 없기 때문입니다.

sudo netstat -tulpn | grep :80포트 80에서 수신 대기중인 프로세스 이름을 실행 한 다음 해당 프로그램을 재구성하거나 제거하십시오.


1

어떤 유형의 서버에서이 서버를 실행하고 있습니까?

첫 번째 오류를 해결하려면

AH00558 : apache2 : 127.0.1.1을 사용하여 서버의 완전한 도메인 이름을 안정적으로 판별 할 수 없습니다. 이 메시지를 억제하려면 'ServerName'지시문을 전체적으로 설정하십시오.

httpd.conf파일 을 편집하고 다음 줄을 추가해야합니다.

ServerName localhost

다른 오류를 해결하려면 루트 권한으로 Apache를 실행해야합니다.

sudo /usr/sbin/apachectl start

1
이것은 실제 오류가 아닙니다.
토마스 워드

httpd.conf파일 이 없습니다 . 그 줄을 넣을 수 있습니까 apache2.conf?
JohnK

설정 ServerName에서하면 httpd.conf효과가 없습니다.
Cerin

1

나는 같은 문제가 있습니다.

이 블로그를 따라 WSL에 LAMP를 설치하려고했습니다. LSL on LSL 이 명령을 실행했을 때 :

/etc/init.d/apache2 start  

이 같은 오류가 발생했습니다.

 * Starting Apache httpd web server apache2                                                                             
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
*

이전에 Windows에 Nginx를 올바르게 설치하려고 시도했지만 실패했지만 Nginx를 포트 80에 바인딩 한 것을 기억했습니다. 문제는 Linux 전문가가 아니며 apache2 conf 파일에서 포트에 바인딩 할 영역을 볼 수 없다는 것입니다.

나는 달리기를 시도했다.

sudo netstat -tulpn | grep :80

아무것도 얻지 못했습니다. 또한 라우터에서 포트를 전달하여 오류를 해결하는 방법을 이해할 수 없었습니다.

Nginx가 실행 중이 아니므로 포트 80에서 실행중인 크롬을 제외하고 포트 80이 정상적으로 작동해야한다는 것을 알고 있습니다. 그래서 좌절감을 느끼면 어떻게 될지 알지 못 sudo하므로 다음 과 같이 명령을 진행 했습니다.

sudo  /etc/init.d/apache2 start  

그리고 나는 얻었다 :

 * Starting Apache httpd web server apache2                                                                              
 *

로 start 명령을 진행하면 sudoApache2가 실행할 권한이 있습니다. 이것은 루트 권한으로 Apache2를 실행하는 것이 바람직하지 않기 때문에 단기 솔루션입니다 (따라서 우리는 정보를 얻음). 솔루션은 아직 거기에 있지만 지금은 적어도 테스트를 진행할 수 있습니다.

누구든지 해결책을 알고 있다면 알려주십시오.


@Yufenyuy 감사합니다. 나는 모든 코드를 잡으려고 노력했지만 ...
seanbw

... @ seanbw 천만에요. 이것이 우리가 커뮤니티에있는 이유입니다.
ThunderBird

@Yufenyuy 내가 얻는 편집. 대부분. sudo가 자체 형식을 가지고 있지만 별도의 줄에 있지 않기 때문에 sudo와 같은 단어를 문장의 일부로 태그하는 방법을 알려주는 링크를 제공 할 수 있습니까? 감사합니다
seanbw

... @ seanbw`와`example 사이에 단어를 넣을 수 있습니다 sudo.
ThunderBird

0

새로운 웹 서버를 설치하거나 포트 80을 예약하여 서비스를 확인하고 새로 설치 한 것을 확인할 수 있습니다.


0

필자의 경우 이것은 로그 문제가 아니라 실제로 Listen지시문 과 관련이 있습니다. 랩톱을 다른 네트워크로 옮길 때 존재하지 않는 IP에서 Listen으로 설정되었습니다.

이것은 서비스를 제거한 후 다시 설치 한 후에 만 ​​나타났습니다 :

(OS 10049) The requested address is not valid in its context. : AH00072: make_sock: could not bind to address 0.0.0.0:80 AH00015: Unable to open logs

그래서 방금 문제가되는 Listen 지시문에 주석을 달았습니다 (다른 사람을 유지).

Q는 우분투에 관한 것이지만 다른 사람들은 여기에 문제가 발생했을 수 있습니다.

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