我想这可能是一个愚蠢的问题,但它花了我几个小时。
在redhat Linux服务器上,我写了一个网页,试图调用位于同一服务器上的软件“antiword”。
antiword位于/ home / myusername / bin,需要运行目录/home/myusername/.antiword。
当我在浏览器中运行我的网页时,它搜索了/.antiword而不是/home/myusername/.antiword
所以它说找不到目录。
如何解决问题?
antiword是程序名称。无论你在哪里调用它,它都会在同一位置搜索目录“.antiword”“/ home / myusername / .antiword”
btw我没有root帐号,所以“ln”不起作用。
答案 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
产生的结果,而不是那些一直困扰我的错误。