запуск сценария оболочки из php - PullRequest
1 голос
/ 12 марта 2012

У меня есть сценарий оболочки, который отлично работает, если я запускаю его в терминале (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.

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

Команда babel, вероятно, отсутствует в переменной среды PATH для пользователя, работающего с PHP, и, следовательно, сценария через PHP.Самое простое решение - отредактировать ваш скрипт оболочки так, чтобы он ссылался на babel по его полному пути.

1 голос
/ 12 марта 2012

Попробуйте позвонить babel с его абсолютным именем. Используйте which babel, чтобы определить это, и замените 'babel' на него в вашем скрипте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...