7

У меня странная проблема с версией PHP при использовании CLI. Когда я захожу как root и использую:php -v я получаю информацию о том, что php работает в режиме CLI, что нормально, но как только я использую sudo php -v я получаю версию php-fcgi, которая тормозит часть моего кода. Дело в том, что Supervisor настроен для вызова некоторого процесса php (очереди Laravel), и, к сожалению, он вызывается в режиме fcgi, поэтому некоторые переменные недоступны, поэтому мой код прерывается. Есть ли обходной путь для этого? Я использую CentOS 6.5.

3 ответа3

1

@blackhatblade выше, скорее всего, правильно. Чтобы проверить это, войдите в систему как пользователь root и не пользователь root и попробуйте эту команду

# which php

$ which php

"который" должен сказать вам путь. Если они отличаются, неквалифицированный "php" выполнит первый найденный в каждом списке каталогов.

Также возможно, что ваш пользователь root может иметь псевдоним оболочки, отображающий php. чтобы проверить это, попробуйте команду "псевдоним"

Наконец, вполне возможно, что ваш исполняемый файл php - это какая-то оболочка, которая проверяет среду выполнения root и шунтирует вас в версию fcgi. Проверьте это, проверив полный путь, который вы нашли в первом шаге из «которого», и посмотрите, не является ли это сценарием оболочки, который делает что-то хитрое в зависимости от того, кто его запускает.

0

Содержимое $ PATH, вероятно, отличается при sudoing. Найдите правильный двоичный файл и укажите полный путь.

Если ваша php-программа вызывается напрямую, отредактируйте ее shebang по полному пути двоичного файла cli.

0

Вы должны установить переменную пути в /etc/environment . & убедитесь, что оба пользователя root и обычный пользователь имеют одинаковую переменную PATH.

Попробуйте sudo nano /etc/environment

Сделайте резервную копию перед редактированием файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .