Pergunta

Eu tenho Apache / 2.2.11 usando mod_python 3.3.1 / Python 2.5 em execução no Gentoo Linux. Na minha python script que eu chamar um exe win32 usando vinho (chamada os.popen2). Isso funciona bem fora do Apache mas sob mod_python eu recebo:

wine: cannot open /root/.wine : Permission denied

em / var / log / apache / error_log. Meu apache instalar não está em execução como o usuário root / grupo. Alguma idéia por que ele está olhando para /root/.wine?

Foi útil?

Solução

É provavelmente porque $HOME não está definido corretamente ...

Btw. Você está realmente certo invocando vinho mod_python é uma boa idéia?

Se você tem certeza, algo assim poderia trabalhar ...

from subprocess import Popen        

HOME = '/the/home/of/www-data' #PLEASE edit
proc = Popen(cmd, shell=False, stdin=PIPE,
             stdout=PIPE, stderr=PIPE, close_fds=True,
             cwd=HOME, env={"HOME":HOME)

Outras dicas

Eu também estava tendo tempo muito duro e fez muita pesquisado mas não conseguiu. Finalmente encontrou a maneira mais simples, adicionando 'WINEPREFIX="/srv/www/.wine"' no arquivo /etc/init.d/httpd como:

case $ARGV in
start|stop|restart|graceful|graceful-stop)
    WINEPREFIX="/srv/www/.wine" $HTTPD -k $ARGV
    ERROR=$?
    ;;

/root/.wine to /srv/www/.wine Copiar e alterar o proprietário para apache (da raiz). Espero que este irá resolver o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top