O primeiro pipe é o código do Apache para bifurcar um novo comando, mas provavelmente não é um novo shell, o que permitiria que você usasse um novo pipe, mas executando o comando, então tudo é tratado como um novo comando. argumento de comando, incluindo o novo pipe, etc. Você pode contorná-lo em um shell, usando dois métodos, um é explicitamente:
ErrorLog "|/bin/sh -c 'tee ... | logger ...'"
E o outro é implicitamente, usando o prefixo keyword |$
:
ErrorLog "|$tee ... | logger ..."
A causa raiz é uma mudança no Apache 2.4, cf. link :
Em plataformas Unix, os comandos de log canalizado configurados usando o ErrorLog ou o CustomLog foram chamados usando / bin / sh -c no 2.2 e anteriores. Na versão 2.4 e posteriores, os comandos de log canalizados são executados diretamente. Para restaurar o comportamento antigo, consulte a documentação do registro em pipeline.