从 Apache 调用 Wine

发布于 2024-07-13 08:40:15 字数 342 浏览 11 评论 0原文

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

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

in /var/log/apache/error_log. 我的 apache 安装没有以 root 用户/组身份运行。 知道为什么要调查 /root/.wine 吗?

I have Apache/2.2.11 using mod_python 3.3.1/Python 2.5 running under Gentoo linux. In my python script I invoke a win32 exe using wine (os.popen2 call). This works fine outside of Apache but under mod_python I get:

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

in /var/log/apache/error_log. My apache install is not running as the root user/group. Any ideas why it's looking into /root/.wine?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枕花眠 2024-07-20 08:40:16

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

顺便说一句。 您真的确定从 mod_python 调用 wine 是个好主意吗?

如果你确定的话,类似的东西可以工作......

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)

It's probably because $HOME isn't set correctly...

Btw. Are you really sure invoking wine from mod_python is a good idea?

If you are sure, something like that could work...

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)
烛影斜 2024-07-20 08:40:16

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

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

: /root/.wine 更改为 /srv/www/.wine 并将所有者更改为 apache(从 root 开始)。 希望这能解决问题。

I was also having very hard time and did lots of researched but failed. Finally found the simplest way by adding 'WINEPREFIX="/srv/www/.wine"' in /etc/init.d/httpd file as:

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

Copy /root/.wine to /srv/www/.wine and change the owner to apache (from root). Hope this will solve the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文