从Apache调用Wine

时间:2009-02-04 20:01:09

标签: python apache mod-python wine

我使用在Gentoo linux下运行的mod_python 3.3.1 / Python 2.5的Apache / 2.2.11。在我的python脚本中,我使用wine调用win32 exe(os.popen2调用)。这在Apache之外工作正常但在mod_python下我得到:

wine: cannot open /root/.wine : Permission denied
log / apache / error_log中的

。我的apache安装没有以root用户/组身份运行。任何想法,为什么它正在研究/root/.wine?

2 个答案:

答案 0 :(得分:3)

可能是因为$HOME未正确设置...

顺便说一下。你真的确定从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)

答案 1 :(得分:1)

我也很困难,做了很多研究但失败了。最后通过在'WINEPREFIX="/srv/www/.wine"'文件中添加/etc/init.d/httpd作为最简单的方法:

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

复制/root/.wine to /srv/www/.wine并将所有者更改为apache(从root用户)。希望这能解决问题。