我想这可能是个愚蠢的问题,但我花了好几个小时。
在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/