필자는 랩톱에서 개발 환경을 설정하는 과정에서 오랫동안 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
.