2

ばかげた質問かもしれませんが、何時間もかかりました。

Redhat Linux サーバーで、同じサーバー上にあるソフトウェア「アンチワード」を呼び出そうとする Web ページを書きました。

antiword は /home/myusername/bin にあり、実行するにはディレクトリ /home/myusername/.antiword が必要です。

ブラウザで Web ページを実行すると、/home/myusername/.antiword ではなく /.antiword が検索されました

したがって、ディレクトリが見つからないと言われました。

問題を解決するにはどうすればよいですか?

明確にすることが1つあります

antiword はプログラム名です。どこで呼び出しても、同じ場所「/home/myusername/.antiword」でディレクトリ「.antiword」を検索します。

ところで、私は root アカウントを持っていないので、「ln」は機能しません。

4

1 に答える 1

2

私はまったく同じ問題を抱えていました。antiword非常に便利なソフトウェアであるため、これが他の誰かに役立つことを願っています。

antiword何らかの理由でホストされた Web サーバーが好きではありません (ここで概説: http://foswiki.org/Support/Question638 )。nodeこれは、ローカルの QA マシンで正常に動作していたサーバーをクラウド内の運用サーバーにデプロイするときに発生しました。そのため、私の解決策には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

またはその趣旨の何か。提供されたリンクは、その理由を明らかにしています。この問題を解決するために、環境変数を設定しました(ドキュメント$ANTIWORDHOMEに従って):

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私を壁に押し上げてきたエラーではなく、生成された結果が表示されます。

于 2014-07-14T17:53:59.837 に答える