Eu uso o servidor Ubuntu 16.04.2 com Apache2, no qual armazeno meus sites pessoais.
Para permitir que todos os meus arquivos de conf sob /etc/apache2/sites-available
(além 000-default.conf
e ssl-default.conf
), eu fui para /var/www/html
e executado a2ensite
.
Foi-me dito então:
Your choices are:
000-default default-ssl domain.tld1 domain.tld2 domain.tld3 domain.tld4
Which site(s) do you want to enable (wildcards ok)?
Eu fiz Ctrl+ Ccom o objetivo de executar outra coisa.
Estou procurando uma maneira de habilitar automaticamente todas as confs do site, sem notar uma específica - só quero executar um comando que habilite todas as confs do site que eu mesmo adicionei.
*.conf
extensão. Ou então o a2ensite reclamaria que o site não existe #Você precisa navegar
/etc/apache2/sites-available
e executar o comando:Ele permitirá todos os sites no diretório. (os arquivos devem ter algo como xxx.conf)
E recarregue o apache usando
sudo service apache2 reload
.Portanto, sua sequência de comandos deve ser assim:
fonte
default-ssl.conf
... Isso fica claro na saídaEnabling site default-ssl.
dpkg -S
para ver se o arquivo de configuração é de um pacote.Independentemente da localização atual, o comando
sudo a2ensite "*.conf"
tentará ativar todos os arquivos de configuração inseridos/etc/apache2/sites-available/
.Em seguida, podemos usar
a2dissite 000-default.conf default-ssl.conf
para desativar as configurações padrão do Apache e depois podemossystemctl restart apache2.service
reiniciá-lo.Podemos executar tudo isso como um único comando:
Além disso, podemos criar um comando personalizado através de uma função no bash:
Agora temos o comando , projetado para fazer esse trabalho. Para tornar esse comando permanente, devemos colocar as linhas acima na parte inferior do arquivo e depois nela. O próximo script simples realizará esta tarefa:
a2ensites
~/.bashrc
source
fonte
*
curinga está sendo expandido antes de ser passado para oa2ensite
comando no meu caso. No entanto, isso funcionasudo a2ensite "*.conf"
.a2ensite '*.conf'
obras estão corretas no seu sistema?A execução
a2ensite /var/www/html/*/
fará com que o Apache habilite cada conf de site com o mesmo nome , como o diretório do site.Como efeito colateral, ele também tentará corresponder diretórios de sites que não correspondem aos arquivos conf do site, conforme previsto na saída a seguir, mas acho que isso pode ser ignorado com segurança:
Você provavelmente precisará reiniciar o Apache depois de ativar os arquivos conf:
fonte
/etc/apache2/sites-available
pasta para configurações dos seus sites. Depois de ativá-los via a2ensite, eles são automaticamente vinculados/etc/apache2/sites-enabled
. O que você está fazendo agora é muito estranho e todos os que têm acesso ao seu servidor da web podem analisar suas configurações?/var/www/html
estejam, pois esse é o DocumentRoot dodefault.html
-Site. Então, no seu caso, você parece estar executando as configurações lá ... É como comer com a boca aberta, não faça isso ;-)./var/www/html
como sua pasta de configuração. Nvm então. O que você realmente precisa é apenas umfind ./ -type f -and -not -name "*default*" -exec a2ensite {} \;
copie e cole as seguintes linhas no nome do arquivo
apache_enable.sh
e dê o comando read + execute
apache_enable.sh
e execute o script usando o usuário rootfonte
Mova as configurações padrão para outra pasta e, em seguida, o * deve funcionar para você como você deseja.
Vá para a pasta "sites disponíveis", pois ela funciona apenas nesta pasta.
fonte