Eu tenho um servidor CentOS a correr com WHM e precisei alterar um VirtualHost no Apache para correr um site em Django. Há um aspeto neste processo com o WHM que não é nada óbvio.
Uma vez que o ficheiro de configuração é auto-gerado, há um conjunto de instruções Include que permitem colocar o nosso código em sítio seguro.
No CentOS o ficheiro principal está em /etc/httpd/conf/httpd.conf, onde temos algo do tipo:
# DO NOT EDIT. AUTOMATICALLY GENERATED. IF YOU NEED TO MAKE A CHANGE PLEASE USE THE INCLUDE FILES.
<VirtualHost *:80>
ServerName <dominio>
...
# To customize this VirtualHost use an include file at the following location
# Include "/usr/local/apache/conf/userdata/std/2/<user>/<dominio>/*.conf"
</VirtualHost>
Porém, se eu inserir um ficheiro .conf na pasta referenciada no Include, como é ele incluído se a linha está comentada? Se eu alterar o httpd.conf não irei perder as alterações?
A solução então é executar:
$ /scripts/ensure_vhost_includes --all-users
Built /usr/local/apache/conf/httpd.conf OK
Esse script vai detetar todos os VirtualHosts que tiverem ficheiros .conf e descomentar a linha do Include correspondente.
Já agora, vamos verificar se a configuração não tem problemas:
$ service httpd configtest
Syntax OK
E reiniciar:
$ /scripts/restartsrv_httpd
Teria sido útil se este comando estivesse documentado junto ao comentário que diz onde criar o ficheiro com as alterações. Assim fica este artigo para me lembrar disso.