我使用在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?
答案 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用户)。希望这能解决问题。