質問
私は端末(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を参照するためにシェルスクリプトを編集することです。
所属していません StackOverflow