2

我想这可能是一个愚蠢的问题,但它花了我几个小时。

在 Redhat Linux 服务器上,我编写了一个网页,试图将同一台服务器上的软件称为“antiword”。

antiword 位于 /home/myusername/bin,需要目录 /home/myusername/.antiword 才能运行。

当我在浏览器中运行我的网页时,它搜索 /.antiword 而不是 /home/myusername/.antiword

所以它说找不到目录。

我该如何解决这个问题?

一件事要澄清

antiword 是程序名称。无论您在哪里调用它,它都会在同一位置“/home/myusername/.antiword”搜索目录“.antiword”

顺便说一句,我没有 root 帐户,所以“ln”不起作用。

4

1 回答 1

2

我有同样的问题。希望这对其他人有用,因为antiword它是非常有用的软件。

antiword出于某种原因不喜欢托管 Web 服务器(此处概述:http: //foswiki.org/Support/Question638)。node我在将在本地 QA 机器上运行良好的服务器部署到云中的生产服务器时遇到了这种情况。因此,我的解决方案涉及node.

这在生产中不起作用:

var exec = require('child_process').exec;

exec('antiword /some/word.doc', function(err, stdout, stderr) {
    console.log(stderr);
  });

你应该看到

I can't find the name of your HOME directory

或类似的东西。提供的链接揭示了原因。为了解决这个问题,我设置了$ANTIWORDHOME环境变量(根据文档):

var exec = require('child_process').exec;

var environment = process.env;
environment.ANTIWORDHOME = '/usr/share/antiword';

exec(command, {env:environment}, function(err, stdout, stderr) {
    console.log(stdout);
  });

现在,如果一切都是正确的,您将看到由antiword错误产生的结果,而不是让我陷入困境的错误。

于 2014-07-14T17:53:59.837 回答