antiword在托管服务器上不起作用

时间:2012-06-24 23:50:11

标签: linux directory redhat

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

在redhat Linux服务器上,我写了一个网页,试图调用位于同一服务器上的软件“antiword”。

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

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

所以它说找不到目录。

如何解决问题?

澄清一件事

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

btw我没有root帐号,所以“ln”不起作用。

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题。希望这对其他人有用,因为antiword是非常有用的软件。

由于某些原因,

antiword不喜欢托管网络服务器(此处概述:http://foswiki.org/Support/Question638)。在将本地QA计算机上运行良好的node服务器部署到云中的生产服务器时,我遇到了这种情况。因此,我的解决方案涉及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

或其他相似之处。所提供的link阐明了原因。为了解决这个问题,我设置了$ANTIWORDHOME环境变量(根据documentation):

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产生的结果,而不是那些一直困扰我的错误。