Apache는 Fedora 15에서 시작할 수 없습니다.

Apache는 Fedora 15에서 시작할 수 없습니다.

Fedora 15에서 Apache를 시작할 수 없습니다. 프로젝트를 다운로드하고 /var/www/html(반복적으로) 소유자로 변경했지만 SELinux 컨텍스트나 그와 유사한 것을 변경한 것 같지는 않습니다. 내가 실행하면 service httpd start다음을 얻습니다.

httpd 시작(systemctl을 통해): 작업이 실패했습니다. 자세한 내용은 시스템 로그 및 "systemctl status"를 참조하세요.
[실패]

루트로 실행 하면 httpd -k start다음을 얻습니다.

(98) 이미 사용 중인 주소: make_sock: 주소 127.0.0.1:80에 바인딩할 수 없습니다.

이유는 모르겠지만 SELinux와 관련이 있는 것 같습니다. 어떤 아이디어가 있나요?

답변1

오류 출력에 표시된 대로 수행해야 합니다.

자세한 내용은 시스템 로그 및 를 참조하십시오 systemctl status.

하지만 두 번째 오류 메시지는 매우 명확합니다. 일부 프로그램이 이미 실행 중이며 포트 80을 사용하고 있습니다. netstat포트 80을 점유하고 있는 프로그램을 찾으려면 루트로 실행하십시오.

netstat -ntlp

아마도 이것은 이전 명령에서 시작된 httpd 프로세스일 것입니다. 그렇다면 다시 시도하기 전에 종료하거나 restart대신 사용하십시오 start.

답변2

열린 포트를 찾으려면 루트로 다음 명령을 실행하십시오.

netstat -tpln

"로컬 주소" 열에서 열려 있는 포트를 볼 수 있습니다. 또한 마지막 열에는 포트를 사용하는 프로세스의 PID가 표시됩니다. 다음을 통해 PID를 종료해 보십시오.

kill -9 PID

여기서 PID는 방금 찾은 프로세스 ID입니다.

이제 Apache가 시작됩니다.

답변3

저도 이 문제가 발생하여 Apache를 다시 설치하고 해결했습니다. 터미널에 입력합니다( su루트 뒤 또는 sudo명령 앞).

# yum remove httpd
Removed HTTPD 100%
# yum install httpd
Installed HTTPD 100%

그런 다음 .conf파일을 처리합니다.

그런 다음 터미널에 다음을 입력하십시오.

sudo service httpd start

그러면 효과가 있을 것입니다.

답변4

교육 목적으로 다음과 같이 설명하겠습니다. 아마도 Fedora에서 제공하는 GUI 기반 httpd 구성 유틸리티를 사용했을 것입니다. system-config-http.conf 파일을 생성합니다. Apache는 먼저 "일반" conf.d(수신 포트를 지정함)를 로드하고 해당 포트에서 수신을 시작합니다. 그런 다음 Apache가 로드됩니다.다른.conf 파일을 찾아서 처리합니다. GUI 유틸리티로 생성된 새 구성 파일에는 포트 80에 대한 또 다른 "listen" 지시문이 포함되어 있습니다! 따라서 Apache는 무언가가 이미 포트 80을 점유하고 있음을 "인식"하므로 Apache가 프로세스 시작을 중지하고 완전히 종료됩니다.

이 모든 것의 진짜 비밀은 당신이 할 것이라는 것입니다안 돼요포트 80의 점유를 확인하십시오.아무것. 나는 몇 년 전 Fedora 15를 설치했을 때 이것에 물렸습니다. 제 생각에는~ 해야 하다이 동작을 방지하기 위해 오래 전에 구성 유틸리티를 수정했습니다. 잘못된!

관련 정보