2009-02-04 6 views
0

저는 mod_python 3.3.1/Python 2.5를 사용하는 Apache/2.2.11을 Gentoo Linux에서 실행합니다. 내 파이썬 스크립트에서 나는 win32 exe를 와인 (os.popen2 호출)을 사용하여 호출한다. 이것은 아파치의 미세한 외부에서 작동하지만 mod_python을 아래에서 내가 얻을 :Apache에서 Wine 호출하기

와인 : 열 수 없습니다 /root/.wine : 권한이의/var/로그인/아파치/error_log 상에

을 부인했다. 내 아파치 설치가 루트 사용자/그룹으로 실행되지 않습니다. /root/.wine을 조사하는 이유는 무엇입니까?

감사합니다,

LarsenMTL

$HOME가 올바르게 설정되어 있기 때문에 그것은 아마

답변

3

... Btw는

. mod_python에서 와인을 불러내는 것이 좋은 생각입니까?

확신하는 경우, 그런 일이 일할 수있는 ...

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) 
+0

감사합니다. Johannes. 당신의 답은 저에게 이것을 안내합니다 : http://stackoverflow.com/questions/133860/running-subversion-under-apache-and-modpython. 나는 $ HOME을 올바르게 설정하기 위해 /etc/init.d/apache 파일을 해킹했다. – Mark

+0

아, mod_python의 와인을 사용하는 것은 끔찍하고 끔찍한 생각입니다. 레거시 코드가 너무 많습니다. 그것은 다시 쓰여지는 일정에 달렸지 만, 나는 어떻게 일정이 미끄러지고 움직이는 지 알 것이다. – Mark

+0

:-) 나는 배포판을 업그레이드 한 후에 재설정 될 수 있기 때문에 /etc/init.d/apache를 해킹하지 않을 것입니다. Popen을 사용할 때 설정하는 것이 더 좋습니다. 그래서 생성 된 또 다른 프로세스는 그것을 오버라이드 할 수 없습니다 ... –

1

나는 매우 힘든 시간을 보내고하고 연구를 많이했지만 실패했습니다.

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

복사 /root/.wine to /srv/www/.wine 및 (루트)에서 아파치에 소유자를 변경 : 마지막으로 /etc/init.d/httpd 파일에 'WINEPREFIX="/srv/www/.wine"'을 추가하여 간단한 방법을 발견했다. 희망이 문제를 해결할 것입니다.