我想这可能是个愚蠢的问题,但我花了好几个小时。
在redhat linux服务器上,我写了一个网页,试图调用同一台服务器上的软件“antiword”。
antiword位于/home/myusername/bin,需要/home/myusername/.antiword目录才能运行。
当我在浏览器中运行我的网页时,它会搜索/.antiword而不是/home/myusername/.antiword
所以它说找不到目录。
我该如何解决这个问题?
有件事要澄清
antiword是程序名。无论您在哪里调用它,它都会在同一个位置/home/myusername/.antiword搜索一个目录“.antiword”
顺便说一句,我没有根帐户,所以“ln”不起作用。

最佳答案

我也有同样的问题。希望这对其他人有用,因为antiword是非常有用的软件。
antiword由于某些原因不喜欢托管的web服务器(此处概述: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产生的结果,而不是将我推到墙上的错误。

关于linux - 反词在托管服务器上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11182095/

10-13 04:11