Проблема на самом деле в PHP-скрипте php-fpm
5.6, который установлен с MacPorts
,
Код PHP system('echo $PATH')
когда управляется php-fpm
это возвращается
/ USR / гну / бен: / USR / местные / бен: / бен: / USR / бен :.
когда работает php cli
в bash
это возвращается
/ Опт / местные / бен: / OPT / местные / SBIN: / USR / местные / бен: / USR / бен: / бен: / USR / SBIN: / SBIN: / OPT / местные / бен: / OPT / местные / SBIN
system
выполняет команду в sh
не bash
, но MacPorts
добавляет
экспорт PATH = «/ opt / local / bin: / opt / local / sbin: $ PATH»
в ~/.profile
а также php-fpm
управляется nobody
не мой текущий пользователь, так что экспорт не влияет php-fpm
,
Я знаю, что могу добавить этот путь из экспорта в /etc/profile
или /etc/paths
,
Но какой путь безопаснее в случае MacPorts
, Я не хочу ломать родную OS X
функциональность или вызвать конфликты с MacPorts
,
РЕДАКТИРОВАТЬ:
изменения /etc/profile
или же /etc/paths
на самом деле не помогает, system
до сих пор не видит программы в /opt/local/bin/
:
sh: mysql: команда не найдена
Вы на правильном пути (видите, что я там делал?)
редактирование /etc/paths
это решение, но вы не просто ищете /opt/local/bin/
, mysql
двоичный файл (при условии MySQL 5.5) хранится в /opt/local/lib/mysql55/bin/mysql
, В MacPorts есть несколько таких путей:
/opt/local/bin/
/opt/local/sbin/
/opt/local/apache2/bin/
/opt/local/lib/mysql55/bin/
/opt/local/lib/php/pear/bin/
Единственное, что сработало, это настройка env[PATH]
в /opt/local/etc/php56/php-fpm.conf
к результату echo $PATH