1

ターミナル(MAC OSX)で実行すると完全に機能するシェルスクリプトがあります

#!/bin/bash
cd /Applications/XAMPP/xamppfiles/htdocs/chemedit/

babel -imol  'a.mol' -oinchi 'outputfile.inchi'
babel -imol  'a.mol' -osmi 'a.smsi'
babel a.smi -O out.svg  -xC -xe
exit

これはa.shというファイルにあります

以下を使用してPHPからこれを実行したい:

$output = shell_exec("bash a.sh 2>&1");

これは機能せず、次を返します。

  Cannot write to outputfile.inchi
0 molecules converted
1 errors 

すべてのファイル

  • 両方のファイルに chmod 777 を指定しました。

  • PHPのセーフモードがオフになっていると確信しています。

4

2 に答える 2

2

このbabelコマンドは、PATHPHP を実行しているユーザーの環境変数にない可能性が高いため、PHP を介したスクリプトです。最も簡単な解決策は、シェル スクリプトを編集して、babel をフル パスで参照することです。

于 2012-03-12T00:28:47.003 に答える
1

絶対名でbabelを呼び出してみてください。を使用which babelしてこれを判断し、スクリプト内の「babel」をそれに置き換えます。

于 2012-03-12T00:27:34.327 に答える