При вызове команды git из сценария PHP возвращается «dyld: ленивая привязка символов завершилась неудачно»

Я на Mac OSx, используя MAMP. Когда я запускаю команды git прямо в терминале, они работают как положено, без ошибок. Но я пишу скрипт на php, предназначенный для запуска некоторых команд git, и получаю следующую ошибку:

exec('cd /my/path/here/ 2>&1 && git init 2>&1', $out, $return);

возвращает:

Array
(
[0] => dyld: lazy symbol binding failed: Symbol not found: _iconv_open
[1] => Referenced from: /Applications/Xcode.app/Contents/Developer/usr/bin/git
[2] => Expected in: /Applications/MAMP/Library/lib/libiconv.2.dylib
[3] =>
[4] => dyld: Symbol not found: _iconv_open
[5] => Referenced from: /Applications/Xcode.app/Contents/Developer/usr/bin/git
[6] => Expected in: /Applications/MAMP/Library/lib/libiconv.2.dylib
[7] =>
)

Поиск дает кучу результатов (Вот например) объяснение, как это является проблемой OSx / MAMP, с исправлением, чтобы добавить export DYLD_LIBRARY_PATH=/usr/lib/ на ваш .bash_profile, Но, как я уже сказал, у меня нет проблем с терминалом, я получаю ошибку только при вызове git из php exec(), Я добавил DYLD_LIBRARY_PATH=... к моему bash_profileи это не имело никакого значения.

Звонит exec() не ссылаться на мой bash_profile, даже если Apache настроен на работу от моего обычного пользователя?

0

Решение

Если это работает, то я бы предположил, что exec не вызывает ваш bash_profile.

exec('export DYLD_LIBRARY_PATH=/usr/lib cd /my/path/here/ 2>&1 && git init 2>&1', $out, $return);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector