O Apache roda no console, mas não como um serviço?

O Apache roda no console, mas não como um serviço?

Eu tenho um servidor Apache 2.2 rodando Django. Temos uma unidade de rede T: à qual precisamos de acesso constante em nosso aplicativo Django. Ao executar o Apache como um serviço, não podemos acessar esta unidade, no que diz respeito a qualquer código Django, a unidade não existe.

Se eu adicionar...

<Directory "t:/">
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
</Directory>

para o arquivo httpd.conf o serviço não roda mais, mas posso iniciar o apache como um console e funciona bem, o Django pode encontrar a unidade de rede e está tudo bem.

Por que existe uma diferença entre o console e o serviço? Deveria haver alguma diferença? Eu tenho o serviço usando meu próprio logon, então, em teoria, ele deveria ter o mesmo acesso que eu.

Estou interessado em mantê-lo funcionando como um serviço, pois é muito menos intrusivo quando estou trabalhando no servidor (a menos que haja uma maneira de ocultar o console?). Qualquer ajuda seria muito apreciada.

Responder1

Vejo que você está usando o Windows. As unidades mapeadas são baseadas no usuário do Windows: elas precisam de um usuário interativo. Funciona "a partir do console" porque você está logado. A unidade não está disponível para o serviço ao iniciar. Não sei se isso vai funcionar, mas tente alterar as configurações do serviço para rodar no seu usuário. Veja se isso ajuda.

Você também pode tentar usarAutoExNTserviço para executar um arquivo em lote antes do login, algo parecido com

net use T: \\host\share_name /PERSISTENT:YES

A unidade mapeada pode estar no contexto da conta do sistema, portanto, ao fazer login, talvez você não consiga ver a unidade mapeada ao fazer login em uma sessão normal.

Eu trabalho principalmente em Linux. Acho que alguns administradores de Windows mais avançados podem sugerir algo para melhorar isso ou fornecer uma receita completa.

informação relacionada