質問

私は端末(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の安全モードがオフになっています。

役に立ちましたか?

解決

絶対名でBableを呼び出してみてください。これを決定するためにwhich babelを使用し、それをスクリプトに置き換えます。

他のヒント

babelコマンドは、PHPを実行しているユーザーのPATH環境変数ではなく、したがってPHPを介したスクリプトではありません。最も簡単な解決策は、フルパスでBabelを参照するためにシェルスクリプトを編集することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top