2017-03-23 14 views
0

からLinuxのプログラムを実行します、ソフトウェアのLinux x86_64バージョンを使用して、私はそれを動作させることはできません。 (はい、私のマシンがあまりにもx86_64である)は、以下のソフトウェアを使用してPHP

私が試した:

<?php 

$file = '/home/***/public_html/downloads/test_doc.docx'; 

$content = shell_exec('/home/***/public_html/doctotext/doctotext.sh \c '. $file , $output); 

しかし、何も出力を。実行中のCentOSの場合と同等の実行形式は何ですか?

すべてshell_exec()

+0

Linuxボックスにphpがインストールされていることを確認しましたか?これは端末から 'php -v'を実行することで可能です。 – Cyclonecode

+0

私は昨日、Windowsのdoctotextがlinuxのバージョンと異なることを知りました。 Windows上で.exeを実行すると、それはすべての補助ファイルを組み込みますが、それはLinuxパッケージでは当てはまりません。したがって、実際にコマンドラインで実行しようとしたときに、ファイルが見つからないということが続いていたので、実際にそのプログラムをインストールする方法を知る必要があります。私の質問は次のとおりです。これを私のLinuxマシンにインストールするにはどうしたらいいですか?正常に実行されたら、それを実行するために必要なすべてのファイルが含まれています:https://github.com/karlproject/doctotext – stylusss

+0

その後、文脈は完全に異なっている。 – Cyclonecode

答えて

0

まず二番目の引数を取りません教えてください。 shell_exec()のドキュメントから

exec('/home/***/public_html/doctotext/doctotext.sh \c '. $file, $output, $return); 

この関数をNULLを返すことができますエラーが発生した場合、またはプログラムが生成し、両方のとき、私はあなたが複数の引数を取るんexec()と機能を混乱していると思います出力なし。この関数を使用して実行失敗を検出することはできません。プログラムの終了コードへのアクセスが必要な場合は、exec()を使用する必要があります。

第2に、まずシェルスクリプトに実行権限があることを確認する必要があります。

chmod +x /home/***/public_html/doctotext/doctotext.sh 

は、スクリプトが何をしているかに応じて、あなたはまた、root権限でそれを実行する必要があります:あなたは使用して適切な権限を設定することができ、あなたのブラウザでスクリプトを実行している場合

sudo php -f myscript.php 

ますまた、シェルスクリプトへのパスがウェブサーバによって読めるようにする必要があります。

エラー報告を有効にしてスクリプトを実行しているときにエラーメッセージが表示されるかどうかを確認するといいでしょう。

+0

私は次のように試しても出力は得られません: $ content = exec( '/ home/***/public_html/doctotext/doctotext.sh \ c')$ file、$ output、$リターン); – stylusss

+0

PHPファイルでエラー報告を有効にしましたか?変数 '$ content'、' $ output'、 '$ return'をダンプしましたか?ファイルが実際に指定された場所に存在することを確認して、正しいアクセス許可を持っているか確認しましたか? – Cyclonecode

+0

は、ここに私がやったことだ: のvar_dump($コンテンツ):私は(0) "" のvar_dump($出力)文字列をGOT:私は配列をGOT(0){} のvar_dump($リターン):私はint型をGOT(126) var_dump($ string):I GOT string(0) "" – stylusss

関連する問題