Configuração Apache sob Git

A configuração do servidor HTTP Apache da VM www.cefala.org está agora sob controle Git. Para obter os arquivos, rode o seguinte neste servidor:

$ git clone cefala-admin@git.cefala.org:cefala-apache-config
$ cd cefala-apache-config
$ ls -p
Makefile  www/

O diretório www corresponde ao valor retornado pelo comando hostname. Este projeto poderá ser usado para configurar o Apache de outros servidores do CEFALA mas, pelo momento, somente a VM www responde ao protocolo HTTP. Este design também assegura que os arquivos não seram instalados por erro em outras VMs.

Pelo momento, somente o diretório sites-available está no repositório, mas isto pode mudar no futuro:

$ ls -lR www
www:
total 4
drwxr-xr-x 2 rlaboiss rlaboiss 4096 Sep 15 20:50 sites-available

www/sites-available:
total 52
-rw-r--r-- 1 rlaboiss rlaboiss 1444 Sep 15 20:50 000-default.conf
-rw-r--r-- 1 rlaboiss rlaboiss  315 Sep 15 20:50 admin-blog.conf
-rw-r--r-- 1 rlaboiss rlaboiss  205 Sep 15 20:50 audio.conf
-rw-r--r-- 1 rlaboiss rlaboiss  166 Sep 15 20:50 blog.conf
-rw-r--r-- 1 rlaboiss rlaboiss  163 Sep 15 20:50 cefalaorg.conf
-rw-r--r-- 1 rlaboiss rlaboiss  102 Sep 15 20:50 cefalaorgRedirect.conf
-rw-r--r-- 1 rlaboiss rlaboiss  339 Sep 15 20:50 cefalaorg-tls.conf
-rw-r--r-- 1 rlaboiss rlaboiss  159 Sep 15 20:50 fonologia.conf
-rw-r--r-- 1 rlaboiss rlaboiss  155 Sep 15 20:50 issp2006.conf
-rw-r--r-- 1 rlaboiss rlaboiss  159 Sep 15 20:50 morphala.conf
-rw-r--r-- 1 rlaboiss rlaboiss  304 Sep 15 20:50 netscan.conf
-rw-r--r-- 1 rlaboiss rlaboiss  175 Sep 15 20:50 praat.conf
-rw-r--r-- 1 rlaboiss rlaboiss  282 Sep 15 20:50 sii.conf

Eu considerei todos os sites que estão atualmente (2017-09-15) ativados através dos links existentes em /etc/apache2/sites-enabled. Para adicionar um novo site, basta adicionar um novo arquivo .conf e rodar:

$ sudo make install

Em seguida, não se esqueça de adicionar o arquivo ao repositório e fazer o git push.

Existe também um comando para verificar, a cores e em 2D, as diferenças entre os arquivos que estão no diretório de trabalho e aqueles que estão no diretório de configuração do Apache:

$ make diff

Isto permitirá de detetar arquivos que foram introduzidos manualmente na configuração sem passar pelo Git.

Update (2022-07-20):

A estrutura de diretórios do projeto Git foi modificada e corresponde agora à estrutura no diretório /etc:

$ ls -lR www
www:
total 8
drwxr-xr-x 3 rlaboiss rlaboiss 4096 Jul 19 03:28 apache2
drwxr-xr-x 2 rlaboiss rlaboiss 4096 Jul 19 03:22 letsencrypt

www/apache2:
total 4
drwxr-xr-x 2 rlaboiss rlaboiss 4096 Jul 19 12:02 sites-available

www/apache2/sites-available:
total 56
-rw-r--r-- 1 rlaboiss rlaboiss 1444 Sep 15  2017 000-default.conf
-rw-r--r-- 1 rlaboiss rlaboiss  461 Jul 19 12:02 admin-blog.conf
-rw-r--r-- 1 rlaboiss rlaboiss  555 Jul 19 03:21 admin-blog-le-ssl.conf
-rw-r--r-- 1 rlaboiss rlaboiss  205 Sep 15  2017 audio.conf
-rw-r--r-- 1 rlaboiss rlaboiss  166 Sep 15  2017 blog.conf
-rw-r--r-- 1 rlaboiss rlaboiss  174 Oct 16  2017 cefalaorg.conf
-rw-r--r-- 1 rlaboiss rlaboiss  102 Sep 15  2017 cefalaorgRedirect.conf
-rw-r--r-- 1 rlaboiss rlaboiss  425 Oct 16  2017 cefalaorg-tls.conf
-rw-r--r-- 1 rlaboiss rlaboiss  159 Sep 15  2017 fonologia.conf
-rw-r--r-- 1 rlaboiss rlaboiss  155 Sep 15  2017 issp2006.conf
-rw-r--r-- 1 rlaboiss rlaboiss  159 Sep 15  2017 morphala.conf
-rw-r--r-- 1 rlaboiss rlaboiss  304 Sep 15  2017 netscan.conf
-rw-r--r-- 1 rlaboiss rlaboiss  175 Sep 15  2017 praat.conf
-rw-r--r-- 1 rlaboiss rlaboiss  282 Sep 15  2017 sii.conf

www/letsencrypt:
total 4
-rw-r--r-- 1 rlaboiss rlaboiss 953 Jul 19 03:22 options-ssl-apache.conf

Note também, que o arquivo www/letsencrypt/options-ssl-apache.conf foi adicionado ao projeto. Este arquivo é automaticamente gerado pelo certbot (veja o artigo deste Blog sobre isto). Neste arquivo, a opção SSLSessionTickets off foi comentada, o que não é caso do arquivo original.

A mensagem mostrada pelo comando make diff também foi modificada. Na versão atual, os arquivos que estão no sistema (em /etc/apache2/sites-available) e que não estão sob controle Git são listados separadamente.

social