ubuntu registros de armazenamento do apache na pasta inicial

1

Estou tentando configurar um servidor com o apache, onde cada usuário tem uma pasta de logs em sua pasta pessoal e todos os registros de erro / acesso são armazenados nessa pasta.

Minha configuração atual:

<VirtualHost *:80>
  DocumentRoot /home/user/public_html

  ErrorLog /home/user/logs/error.log
  CustomLog /home/user/logs/access.log combined
  LogLevel info

</VirtualHost> 


<VirtualHost *:80>
 DocumentRoot /home/user1/public_html

 ErrorLog /home/user1/logs/error.log
 CustomLog /home/user1/logs/access.log combined
 LogLevel info

</VirtualHost> 

O problema com esta configuração é que se eu acessar o site do usuário1

  http://localhost/~user1/

todos os registros são armazenados em / home / user / logs / em vez de / home / user1 / logs /. Como posso consertar isso para que os logs sejam armazenados no lugar certo?

    
por blejzz 19.05.2012 / 13:36

2 respostas

2

O CustomLog para o apache 2.2 é uma configuração por servidor ou por host virtual e o esquema de URI http://localhost/~user1/ e http://localhost/~user2/ type são todos os aliases dentro do mesmo host virtual padrão.

Algo como o seguinte funciona para o CustomLog (ErrorLog parece não suportar o modificador env)

<VirtualHost *:80>
  DocumentRoot /var/www/html
  ErrorLog logs/error_log

  SetEnvIf Request_URI ^~user1 user1
  SetEnvIf Request_URI ^~user2 user2

  CustomLog /home/user1/logs/access.log combined env=user1
  CustomLog /home/user2/logs/access.log combined env=user2

 ...
</VirtualHost>
    
por 19.05.2012 / 13:56
0

Você precisa considerar que, com uma quantidade não trivial de usuários, atribuir a cada um os seus próprios registros colocará requisitos extras de recursos no apache.

Existe um limite simples no número de arquivos de log que ele pode manipular - o limite do descritor de arquivos do sistema.

Além disso, não é possível dividir o log de erros em um único vhost.

    
por 19.05.2012 / 14:43