У меня странная проблема с версией PHP при использовании CLI. Когда я захожу как root и использую:php -v
я получаю информацию о том, что php работает в режиме CLI, что нормально, но как только я использую sudo php -v
я получаю версию php-fcgi, которая тормозит часть моего кода. Дело в том, что Supervisor настроен для вызова некоторого процесса php (очереди Laravel), и, к сожалению, он вызывается в режиме fcgi, поэтому некоторые переменные недоступны, поэтому мой код прерывается. Есть ли обходной путь для этого? Я использую CentOS 6.5.
3 ответа
@blackhatblade выше, скорее всего, правильно. Чтобы проверить это, войдите в систему как пользователь root и не пользователь root и попробуйте эту команду
# which php $ which php
"который" должен сказать вам путь. Если они отличаются, неквалифицированный "php" выполнит первый найденный в каждом списке каталогов.
Также возможно, что ваш пользователь root может иметь псевдоним оболочки, отображающий php. чтобы проверить это, попробуйте команду "псевдоним"
Наконец, вполне возможно, что ваш исполняемый файл php - это какая-то оболочка, которая проверяет среду выполнения root и шунтирует вас в версию fcgi. Проверьте это, проверив полный путь, который вы нашли в первом шаге из «которого», и посмотрите, не является ли это сценарием оболочки, который делает что-то хитрое в зависимости от того, кто его запускает.
Содержимое $ PATH, вероятно, отличается при sudoing. Найдите правильный двоичный файл и укажите полный путь.
Если ваша php-программа вызывается напрямую, отредактируйте ее shebang по полному пути двоичного файла cli.
Вы должны установить переменную пути в /etc/environment
. & убедитесь, что оба пользователя root и обычный пользователь имеют одинаковую переменную PATH.
Попробуйте sudo nano /etc/environment
Сделайте резервную копию перед редактированием файла.