локальный сайт разработки на моем OS X Mavericks использует команду exec («which php») -. Результатом этого exec () — Command является «/ usr / bin / php», что на самом деле неверно, оно должно возвращать «opt / local / php5 / bin / php».
«opt / local / php5 / bin / php» является результатом команды «what php» в моем терминальном сеансе. Как я могу это исправить?
Если вы зададите неправильный вопрос, вы получите неправильный результат. 😉
which
Команда возвращает вам полный путь к исполняемому файлу. Те места, где which
ищет команду, определены в $PATH
переменная окружения, и это выглядит примерно так:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/android-sdk/sdk/platform-tools:/opt/android-sdk/sdk/tools
Это общие пути команд, разделенные двоеточиями.
Очевидно, у вас есть несколько установок PHP на вашем компьютере. То, что вы получаете, — это путь к первичному, вероятно установленному вашим менеджером пакетов.
Тот в /opt
будет найден только если вы добавите /opt/local/php5/bin
на усмотрение пользователя вашего веб-сервера, и это должно быть раньше /usr/bin
,
Теперь, как вы устанавливаете $PATH
вашего веб-сервера? В зависимости от вашего сервера (Apache, Nginx,…) и вашего дистрибутива, существуют разные возможности. Для Apache в Debian-подобной системе это обычно /etc/apache2/envvars
,
Если нет PATH
еще не определено, просто добавьте следующую строку:
export PATH="/opt/local/php5/bin:$PATH"
(Обратите внимание, что PATH
в начале не имеет $
знак.)
Затем перезапустите ваш веб-сервер.
Других решений пока нет …