a2ensite에 대한 사이트 오류가 없습니다


275

나는이 cmsplus.dev아래에 /etc/apache2/sites-available다음 코드로

<VirtualHost *:80>
    ServerAdmin master@server.com
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

이제을 사용할 때 sudo /usr/sbin/a2ensite cmsplus.dev오류가 발생합니다.

ERROR: Site cmsplus.dev does not exist!

내 웹 서버 Apache/2.4.6 (Ubuntu)

이 문제를 해결하는 방법?

답변:


577

.conf사이트 구성 파일에 확장명을 추가하여 문제를 해결했습니다 .

아파치 a2ensite결과 :

오류! 사이트가 존재하지 않습니다

문제; 다음을 사용하여 사이트를 활성화하는 동안 오류가 발견 된 경우 :

sudo a2ensite example.com

그러나 다음을 반환합니다.

오류 : example.com이 존재하지 않습니다

a2ensite 파일 이름 끝에서만 작동하는 Perl 스크립트입니다. .conf

따라서, 나는 내 설정 파일의 이름을 변경해야 example.com하는 example.com.conf다음과 같이 달성 될 수로 :

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

성공


25
기묘한! 이것은 우분투 12.04와 12.10에서 확장없이 잘 작동했습니다.
FloatingRock

저도 마찬가지입니다. Guilherme과 같이 apache2.conf는 우분투 또는 Apache 버전 사이에서 변경되었습니다.
Nicolas Zozol

7
대안으로 apache.conf 파일을 편집 할 수 있다고 생각합니다. 관련 행은 "IncludeOptional sites-enabled / *. conf"입니다. 마지막에서 .conf를 제거하면 12.04에서 작동했던 것으로 돌아갑니다. 나는 이것이 데비안이 우분투에 속아서 만든 변화 일 수 있다고 생각하지만 확실하지 않습니다.
요시야

2
왜 이것이 3 위입니까? 이것이 올바른 방법입니다.
표면 가공

나는 거의 모든 것을 바꾼 후에 이미 포기했습니다 ... 지금부터 .conf 확장자를 추가하는 것을 기억합니다 ...
wtf8_decode

91

아마도 우분투 설치를 업데이트했을 것이고 업데이트 중 하나는 Apache를 버전 2.4.x로 업그레이드하는 것을 포함했습니다

Apache 2.4.x에서 / etc / apache2 / sites-available 디렉토리에있는 vhost 구성 파일의 확장자는 .conf 여야합니다.

터미널 (mv 명령)을 사용하여 모든 기존 구성 파일의 이름을 바꾸고 모든 파일에 .conf 확장자를 추가하십시오.

mv /etc/apache2/sites-available/cmsplus.dev /etc/apache2/sites-available/cmsplus.dev.conf

"Permission denied"오류가 발생하면 터미널 명령 앞에 "sudo"를 추가하십시오.

구성 파일을 다른 것으로 변경할 필요는 없습니다.

가상 호스트를 활성화합니다 :

a2ensite cmsplus.dev.conf

그런 다음 Apache를 다시로드하십시오.

service apache2 reload

귀하의 사이트가 지금 가동 중이어야합니다.


업데이트 : 여기 에 언급 된 것처럼 설치 한 Linux 배포는 구성을 Include * .conf만으로 변경했습니다. 따라서 Apache 2.2 또는 2.4와 관련이 없습니다.


28

또 다른 좋은 방법이 있습니다 apache2.conf. 끝에 줄이 있는 파일을 편집하십시오.

선택적 사이트 사용 가능 /*.conf

.conf이처럼 끝 부분을 제거하십시오 .

선택적 사이트 사용 가능 / *

서버를 다시 시작하십시오.

(필자는 업데이트 할 때 우분투 13.10에서만 시도했습니다.)


1
흠 ... 우분투 14.04에서 시도했지만 작동하지 않았습니다. .conf그러나 구성 파일에 추가 했습니다.
Clifton Labrum

이상하게도 우분투 12.04를 13.10으로 업데이트 할 때이 오류가 발생했습니다 (아파치 구성 파일을 실수로 대체했기 때문에). 14.04 업데이트에서 나는 대체하지 않는 것을 기억했으며 문제가있었습니다.
Guilherme 2014 년

이것은 실제로 좋은 방법이 아닙니다. 사이트 사용 가능 파일은 사이트 사용 가능 파일의 해당 파일에 대한 심볼릭 링크이며 사이트를 사용하지 않도록 제거하기 만하면됩니다. 즉, a2dissite가 a2ensite가 해당 사이트를 사용할 수있게하는 기능입니다.
Dokbua

8

방금 같은 문제가있었습니다. 나는 그것이 apache.conf와 관련이 없다고 말하고 싶습니다.

a2ensite는 변경되어야합니다. 532 행은 .conf 접미사를 적용하는 행입니다.

else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}

당신이 그것을 변경하면 :

else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}

... 접미사없이 작동합니다.

물론 a2ensite 스크립트를 변경하고 싶지는 않지만 conf 파일의 접미사를 변경하는 것이 올바른 방법입니다.

아마도 ".conf"접미사를 적용하는 방법 일 것입니다.


이 질문도 참조하십시오 : askubuntu.com/questions/362682/…
cslotty

7

가장 빠른 방법은 ".conf"로 끝나는 사이트 구성 이름을 바꾸는 것입니다.

mv /etc/apache2/sites-available/mysite /etc/apache2/sites-available/mysite.conf

a2ensite mysite.conf

이전 의견에 대한 기타 참고 사항 :

  • IncludeOptional은 아파치 2.36까지 소개되지 않았다. 위에서 변경 한 다음 2.2에서 재시작하면 서버가 다운된다!

  • 또한 버전 2.2 a2ensite는 설명한대로 해킹 할 수 없습니다

또한 사용 가능한 사이트 파일은 실제로 구성 파일이기 때문에 어쨌든 그 이름을 지정해야합니다.


일반적으로 서비스를 다시 시작 하지 마십시오 (웹 서버는 한 가지 유형의 서비스 임).

  • 사람들이 달리지 않으면 찾을 수 없습니다! MS Windows가 아닌 리눅스를 생각하십시오.

서버는 수년간 라이브 업데이트, 구성 다시로드 등을 실행할 수 있습니다.

클라우드가 구성 파일을로드하기 위해 다시 시작해야한다는 의미는 아닙니다.

  • 서비스 구성을 변경할 때 "다시 시작"이 아닌 "다시로드"를 사용하십시오.

  • restart는 서비스를 중지 한 다음 서비스를 시작합니다. 구성 변경에 문제가 있으면 서비스 다시 시작 되지 않습니다 .

  • 다시로드하면 오류가 발생하지만 서비스가 종료되지 않아 구문 오류 만 발생할 수있는 구성 오류를 해결할 수 있습니다.

debian 또는 ubunto [이 스레드의 서비스 이름은 apache2입니다.]

service {service-name} {start} {stop} {reload} ..

다른 OS는 독자를위한 발췌로 남았습니다.


5

.conf구성 파일에 추가 한 후 작업


2

방금 Ubuntu Server 버전을 12.04 LTS에서 14.04 LTS로 업그레이드했습니다.

실제로 위에서 말한 것처럼 Apache 2.4.x의 .conf 확장자는 사이트에서 사용 가능한 디렉토리에있는 웹 사이트 vhost 파일에 필요합니다.

이 질문을 읽기 전에 서버에서 무슨 일이 있었는지 전혀 알지 못했습니다.

꽤 좋은 해결책입니다.

요약하면 터미널에서 다음 단계를 수행했습니다.

1) 사이트 활성화 폴더에 액세스

$ cd /etc/apache2/sites-enabled

2) a2dissite 명령은 더 이상 사용되지 않는 파일 (.conf없이)에서 작동하지 않으므로 게시 된 이전 웹 사이트 파일을 제거하십시오.

$ sudo rm <my-old-website-without-.conf>

3) 확장명을 변경하여 웹 사이트 vhost 파일의 이름을 바꾸고 끝에 .conf를 추가하십시오.

$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf

4) 새롭고 정확한 vhost 파일을 다시 게시하십시오.

$ sudo a2ensite mywebsite.conf

5) 브라우저에서 웹 사이트를 확인하고 재미있게 보내십시오! :)


1

Ubuntu 14.04.3 및 Apache 2.4.7의 경우 문제는 site1.conf를 복사하여 site2.conf를 사용 가능하게 만들고 복사하여 무언가가 발생하여 스레드에 설명 된 오류로 site2.conf를 a2ensite 할 수 없다는 것입니다 .

나를위한 해결책은 site2.conf의 이름을 site2로 바꾸고 다시 site2의 이름을 site2.conf로 바꾸는 것이 었습니다. 그 후 site2.conf를 a2ensite 할 수있었습니다.


1

나는 그것이 사실이 아니라는 것을 알고 있지만 누군가를 도울 수 있습니다.

실수로 / etc / apache2 / sites-enabled에서 conf 파일을 만들지 않았 음을 다시 확인하십시오. 같은 오류가 발생합니다.


-2

이렇게 해봐 ..

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin master@server.com
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

/ etc / hosts에 항목을 추가하십시오.

127.0.0.1 www.cmsplus.dev

아파치를 다시 시작하십시오.


이제 It works설정 대신 기본 페이지를 제공합니다.
devo

여러 개의 가상 호스트 구성이 있습니까? 전체 파일 내용을 게시 할 수 있습니까?
Balaji Perumal

3
감사 .conf합니다. 이러한 사이트 구성 파일에 확장명을 추가하여이 문제를 해결했습니다 .
devo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.