O SELinux está habilitado neste servidor? Gostaria de saber se isso está impedindo o apache de carregar esse link simbólico corretamente?
Eu tenho um arquivo de configuração do apache que funciona bem quando é colocado diretamente no /etc/httpd/conf.d/foo.conf. No entanto, quando eu mover o mesmo arquivo para outro lugar (por exemplo, mova-o para /tmp/foo.conf) e crie um symlink com ln -s /tmp/foo.conf /etc/httpd/conf.d
, então o apache falha na inicialização com:
httpd: could not open document config file /etc/httpd/conf.d/foo.conf
Eu tentei criar o arquivo e o modo de link simbólico 777, e tentei alterá-los para serem de propriedade do usuário do apache.
Parece que o apache não está conseguindo carregar o arquivo puramente na base de ser um link simbólico, mas tenho certeza que usei links simbólicos com sucesso em outras máquinas. Tem algo que estou perdendo? O apache tem uma opção para se recusar a carregar arquivos de configuração se eles são links simbólicos?
O sistema operacional é o CentOS 4.4, apache versão 2.0.52.
As permissões para o usuário do apache não devem importar, já que em geral o apache é executado iniciando como root e, em seguida, inicia o servidor da Web como o usuário do apache (ou qualquer que seja a diretiva user
). Eu acredito que isso teria que ser depois que o arquivo de configuração for carregado.
Você pode catar o link simbólico?
Em vez de criar um symlink de conf.d para onde estiver, você poderia deixar o arquivo no diretório conf.d e criar um symlink para o arquivo em conf.d. Exemplo de sintaxe: ln -s /etc/httpd/conf.d/foo.conf /tmp/foo.conf
Como alternativa, use um link físico, por isso é um arquivo normal em ambos os lugares. Um arquivo com dois locais. Exemplo de sintaxe: ln /tmp/foo.conf /etc/httpd/conf.d
Observe que isso só funcionará se os dois locais estiverem no mesmo sistema de arquivos.