我想这可能是一个愚蠢的问题,但我花了几个小时。
在 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 provided 阐明了原因。为了解决这个问题,我设置了 $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 - antiword 在托管服务器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11182095/