Erro no site não existe para a2ensite


275

Eu tenho cmsplus.devsob /etc/apache2/sites-availablecom o seguinte código,

<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>

Agora, quando eu uso sudo /usr/sbin/a2ensite cmsplus.dev, estou recebendo o erro,

ERROR: Site cmsplus.dev does not exist!

Meu servidor web Apache/2.4.6 (Ubuntu)

Como resolver este problema?

Respostas:


577

Resolvido o problema adicionando .confextensão aos arquivos de configuração do site.

O Apache a2ensiteresulta em:

Erro! O site não existe

Problema; Se você encontrou o erro ao tentar ativar um site usando:

sudo a2ensite example.com

mas retorna:

Erro: example.com não existe

a2ensite é simplesmente um script Perl que funciona apenas com nomes de arquivos que terminam .conf

Portanto, eu tenho que mudar o nome de meu arquivo de configuração para example.coma example.com.confcomo pode ser conseguido da seguinte forma:

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

Sucesso


25
Esquisito! Isso costumava funcionar bem sem uma extensão no Ubuntu 12.04 e 12.10.
FloatingRock

O mesmo para mim. Como diz Guilherme, o apache2.conf mudou entre as versões ubuntu ou Apache.
Nicolas Zozol

7
Como alternativa, acredito que você possa editar o arquivo apache.conf. A linha relevante é "IncludeOptional sites-enabled / *. Conf" Remova o .conf no final e você voltará ao que funcionou no 12.04. Eu acho que isso pode ser uma mudança que o Debian fez que entrou no Ubuntu, mas não tenho certeza.
Josiah

2
Por que essas respostas são 3ª? Esta é a maneira correta de fazê-lo.
nish

Eu já tinha desistido depois de mudar praticamente tudo ... Eu vou lembrar de adicionar a extensão .conf a partir de agora ...
wtf8_decode

91

Você provavelmente atualizou sua instalação do Ubuntu e uma das atualizações incluiu a atualização do Apache para a versão 2.4.x

No Apache 2.4.x, os arquivos de configuração do vhost, localizados no diretório / etc / apache2 / sites-available, devem ter a extensão .conf.

Usando o terminal (comando mv), renomeie todos os seus arquivos de configuração existentes e adicione a extensão .conf a todos eles.

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

Se você receber um erro "Permissão negada", adicione "sudo" na frente dos comandos do terminal.

Você não precisa fazer outras alterações nos arquivos de configuração.

Habilite o (s) vhost (s):

a2ensite cmsplus.dev.conf

E depois recarregue o Apache:

service apache2 reload

Seus sites devem estar em funcionamento agora.


ATUALIZAÇÃO: Conforme mencionado aqui , uma distribuição Linux que você instalou alterou a configuração para Incluir * .conf apenas. Portanto, não tem nada a ver com o Apache 2.2 ou 2.4


28

Há outra boa maneira, basta editar o arquivo, apache2.confhá uma linha no final

IncludeOptional sites habilitados / *. Conf

basta remover o .confno final, assim

IncludeOptional sites ativados / *

e reinicie o servidor.

(Eu tentei isso apenas no Ubuntu 13.10, quando o atualizei.)


1
Hmm ... Eu tentei isso no Ubuntu 14.04 e não funcionou. Adicionando .confaos arquivos de configuração, no entanto.
Clifton Labrum

estranho, eu tive esse erro quando atualizei o ubuntu 12.04 para 13.10 (porque substitui involuntariamente os arquivos de configuração do apache). Na atualização 14.04, lembrei-me de não substituir, e tive algum problema.
Guilherme

Este não é realmente um bom caminho. Os arquivos em sites ativados são links simbólicos para os arquivos correspondentes em sites disponíveis e devem ser removidos apenas para desativar o site - isto é, de fato, o que a2dissite faz a2ensite permite que o site corresponda de forma correspondente.
Dokbua

8

Eu apenas tive o mesmo problema. Eu diria que não tem nada a ver com o apache.conf.

o a2ensite deve ter sido alterado - a linha 532 é a linha que aplica o sufixo .conf:

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

Se você mudar para:

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

... funcionará sem nenhum sufixo.

É claro que você não gostaria de alterar o script a2ensite, mas alterar o sufixo do arquivo conf é a maneira correta.

Provavelmente é apenas uma maneira de aplicar o sufixo ".conf".


Veja também esta pergunta: askubuntu.com/questions/362682/…
cslotty

7

Então .. maneira mais rápida é renomear os nomes de configuração do site que terminam em ".conf"

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

a2ensite mysite.conf

outras notas sobre comentários anteriores:

  • O IncludeOptional não foi introduzido até o apache 2.36 - fazer as alterações acima e reiniciar o 2.2 deixará o servidor inativo!

  • Além disso, a versão 2.2 a2ensite não pode ser invadida como descrito

além disso, como o arquivo disponível nos sites é na verdade um arquivo de configuração, ele deve ser nomeado dessa maneira mesmo assim.


Em geral , não reinicie os serviços (servidores da web são um tipo de serviço):

  • as pessoas não podem encontrá-los se não estiverem correndo! Pense linux não MS Windows ..

Os servidores podem funcionar por muitos anos - atualização ao vivo, recarregar a configuração etc.

A nuvem não significa que você precisa reiniciar para carregar um arquivo de configuração.

  • Ao alterar a configuração de um serviço, use "reload" e não "restart".

  • A reinicialização interrompe o serviço e inicia o serviço - se houver algum problema em sua alteração na configuração, o serviço não será reiniciado.

  • O recarregamento dará um erro, mas o serviço nunca será encerrado, dando a você a chance de corrigir o erro de configuração, que pode ser apenas uma sintaxe ruim.

debian ou ubunto [nome do serviço para este segmento é apache2]

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

outros SOs são deixados como um tamanho especial para o leitor.


5

Trabalhei depois que adicionei .confao arquivo de configuração


2

Acabei de atualizar a versão do Ubuntu Server de 12.04 LTS para 14.04 LTS.

De fato, como dito acima, a extensão .conf do Apache 2.4.x é necessária para os arquivos vhost dos sites que residem no diretório disponível nos sites.

Antes de ler esta pergunta, eu não fazia ideia do que estava acontecendo com o servidor.

Solução bastante agradável.

Resumindo, eu fiz os seguintes passos no Terminal:

1) Acesse a pasta habilitada para sites

$ cd /etc/apache2/sites-enabled

2) Como o comando a2dissite não funcionará com arquivos obsoletos (sem o .conf) remova os arquivos antigos do site que foram publicados

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

3) Renomeie os arquivos vhost do site alterando sua extensão, adicionando .conf ao final

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

4) Republicar o novo e correto arquivo vhost

$ sudo a2ensite mywebsite.conf

5) Confira o site no navegador e divirta-se! :)


1

No meu caso com o Ubuntu 14.04.3 e Apache 2.4.7, o problema era que copiei o site1.conf para disponibilizar o site2.conf e, ao copiar, algo aconteceu e não consegui a2ensite site2.conf com o erro descrito no thread .

A solução para mim foi renomear site2.conf para site2 e, em seguida, renomear site2 para site2.conf. Depois disso, fui capaz de acessar o site2.conf.


1

Sei que não é o caso aqui, mas pode ajudar alguém.

Verifique novamente se você não criou o arquivo conf em / etc / apache2 / sites-enabled por engano. Você recebe o mesmo erro.


-2

Tente assim ..

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>

e adicione entrada em / etc / hosts

127.0.0.1 www.cmsplus.dev

reinicie o apache ..


Agora está me dando a It workspágina padrão em vez das configurações.
Devo 15/12

Você tem várias configurações de hosts virtuais? Você pode postar todo o conteúdo do arquivo?
Balaji Perumal

3
Obrigado, resolveu esse problema apenas adicionando .confextensão a esses arquivos de configuração do site.
Devo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.