Apache 서버가 자동으로 시작되지 않습니다 경우 모두 몇 달

필자는 랩톱에서 개발 환경을 설정하는 과정에서 오랫동안 Apache를 설치했습니다.

그러나 몇 개월 전에 중지했기 때문에 더 이상 부팅시 자동으로 시작되지 않습니다. 집에있는 랩톱과 직장에있는 랩톱에이 문제가 있습니다.

두 경우 모두 몇 달 전에 Ubuntu 10.10에 Apache를 설치하고 결함없이 몇 주 동안 사용했지만 어느 날 중단하고 더 이상 자동으로 시작되지 않습니다. 수동으로 업데이트 rc를 실행하려고 시도했지만 init 스크립트가 이미 사용 중이라고 들었습니다.

그러나 수동으로 시작 / 다시 시작

sudo service apache2 start/restart

잘 작동합니다. 두 경우 모두 11.04로 업그레이드 한 후에야 새 버전으로 해결할 수 있기를 바랍니다. 그러나 그렇지 않습니다! 누군가가 Apache를 자동으로 한 번 더 시작하는 방법을 말해 줄 수 있다면 감사하겠습니다.



답변

실행하려고

update-rc.d apache2 enable [list of run levels]

루트로.

당신은 읽고 관심이있을 수 있습니다

man update-rc.d


답변

동일한 증상으로 발생한 최근 문제를 기반으로이 답변을 추가하고 있습니다.

먼저 일부 배경 데이터 :

  • Ubuntu는 /etc/init.d/폴더의 스크립트를 사용하여 서비스를 시작 / 중지합니다.
  • Ubuntu는 폴더에 /etc/init.d/저장된 해당 스크립트에 대한 심볼릭 링크를 사용 /etc/rc#.d/하여 “실행 수준”에 따라 서비스를 시작 / 중지합니다.
  • “S”로 시작하는 심볼릭 링크는 서비스를 시작해야 함을 나타냅니다.
  • “K”로 시작하는 심볼릭 링크는 서비스를 중지 (킬링)해야 함을 나타냅니다.
  • 런레벨 1은에서 링크 된 스크립트 /etc/rc1.d/, 런레벨 2는 /etc/rc2.d/등을 실행 합니다.
  • 우분투의 기본 실행 수준은 2입니다.
  • 기본적으로 Apache 설치가 실행 sudo update-rc.d apache2 defaults되어 /etc/rc#.d/폴더에 적절한 심볼릭 링크가 생성 됩니다 .

따라서 내 서버에서 어떤 sudo update-rc.d apache2 disable” 일부 ” 누군가 가 “S”심볼릭 링크를 모두 제거하고 “K”심볼릭 링크로 대체 한 것으로 보입니다 . 따라서 실행 레벨을 초기화 할 때 Apache를 종료하거나 시작하지 않습니다.

내 솔루션은 Apache를 다시 활성화하는 것입니다.

sudo update-rc.d apache2 enable

이제 런레벨을 시작하거나 전환 할 때 Apache가 예상대로 시작 / 중지됩니다.

NB :

sudo update-rc.d apache2 defaults심볼릭 링크가 존재한다는 것을 알기 때문에 다시 실행하는 것만으로 는 불충분하다는 점에 주목할 가치가 있습니다. 그냥 다음과 같이 응답합니다.

System start/stop links for /etc/init.d/apache2 already exist.


답변

이 경우 Apache가 시작되지 않는 이유를 알았습니다. 부팅시 화면에 인쇄 된 출력에서만 시작 로그에서이 흔적을 찾을 수 없습니다.

그러나 여기 있습니다 : 스크립트의 마지막 줄이 /etc/apache2/apache2.conf실패했습니다.

왜?

그것은 말한다 :

Include sites-enabled/

그러나 내가 설정 한 두 사이트는 내 홈 디렉토리에 있으며 암호화되어 있습니다!

따라서 부팅시 (Apache를 시작하는 동안) 이러한 사이트가 존재하지 않으며 Apache가 실패하고 실행을 거부합니다.

해결책?

나는 작은 스크립트는 “disable_sites”를 불러로를 심볼릭 링크 생성 한 /etc/rc0.d/etc/rc6.d(종료 및 재부팅)

#!/bin/bash

/usr/sbin/a2dissite vvsshop
/usr/sbin/a2dissite neoflex
/etc/init.d/apache2 reload

exit 0

또한 로그인 할 때마다 사이트를 다시 활성화하는 스크립트를 만들어 시스템 설정에서 시작 프로그램으로 추가했습니다. 이제 작동합니다!

따라서 여기서 교훈은 부트하는 동안 Apache가 예기치 않게로드되지 않고 로그에서 오류를 찾을 수 없거나 서버를 수동으로 시작할 때 필요한 모든 디렉토리가 있는지 확인하는 것입니다. 이것은 아마도 다른 방법으로도 해결할 수 있습니다.


답변

이 문제를 찾고있는 사람들은 (구글링) 다음을 실행하면 확인하십시오.

chkconfig |grep httpd

당신은 얻을

httpd 0 : off 1 : off 2 : on 3 : on 4 : on 5 : on 6 : off

그렇지 않으면 :

chkconfig httpd on

(우분투 chkconfig에 대한 미안은 update-rc.d 입니다. 우분투 서버에 대한 Chkconfig 대안 참조 ? )


답변

나는 같은 문제가 있었고, 로컬 Vagrant 설정에서 Ubuntu 14를 실행 중입니다. /etc/apache2/sites-enabled디렉토리를 제거하고 내 홈 디렉토리에 대한 링크를 추가했습니다. 물론 Vagrant 구성에 따라 로컬 드라이브에 마운트됩니다.

리소스가 아직 마운트되지 않았기 때문에 아파치가 디렉토리를 보지 못했습니다. Vagrant sites-enabled에서 symlink를 추가하는 대신 디렉토리를 복사하라는 조항을 다시 작성했습니다 .

또한 아파치 init이 활성화되었는지 확인하기 위해 sudo update-rc.d apache2 enable제안한대로했습니다 Karl Wilbur.


답변