Wersja PHP dla superużytkownika to fcgi zamiast cli

7

Mam dziwny problem z wersją PHP podczas korzystania z CLI. Kiedy loguję się jako root i używam: php -votrzymuję informację, że php działa w trybie CLI, co jest w porządku, ale jak tylko sudo php -vużyję, dostaję wersję php-fcgi, która hamuje część mojego kodu. Chodzi o to, że mam Supervisora ​​skonfigurowanego do wywoływania procesu php (kolejka Laravela) i niestety jest on wywoływany w trybie fcgi, więc niektóre zmienne są niedostępne, więc mój kod się psuje. Czy istnieje jakieś obejście tego problemu? Używam CentOS 6.5.

użytkownik328611
źródło

Odpowiedzi:

1

@blackhatblade powyżej jest najbardziej prawdopodobne. Aby to przetestować, zaloguj się jako użytkownik root i użytkownik inny niż root, a następnie wypróbuj to polecenie

# który php

$ które php

„które” powinno ci wskazać ścieżkę. Jeśli są różne, niekwalifikowany „php” wykona pierwszy znaleziony na każdej liście katalogów.

Możliwe jest również, że użytkownik root może mieć „alias” powłoki, który zmienia mapowanie php. aby to sprawdzić, wypróbuj polecenie „alias”

Wreszcie, możliwe jest, że twój plik wykonywalny php jest pewnego rodzaju opakowaniem, które sprawdza środowisko wykonawcze root i przenosi cię do wersji fcgi. Sprawdź to, sprawdzając w pełni kwalifikowaną ścieżkę, którą znalazłeś w pierwszym kroku od „która”, i sprawdź, czy skrypt powłoki robi coś podstępnego w zależności od tego, kto go uruchamia.

JesseM
źródło
0

Zawartość $ PATH jest prawdopodobnie inna podczas sudo. Znajdź poprawny plik binarny i podaj pełną ścieżkę.

Jeśli twój program php jest wywoływany bezpośrednio, edytuj go shebang do pełnej ścieżki pliku binarnego cli.

blackhat.blade
źródło
0

Powinieneś ustawić zmienną ścieżki w /etc/environment. i upewnij się, że zarówno użytkownik root, jak i zwykły użytkownik mają tę samą zmienną PATH.

Próbować sudo nano /etc/environment

Wykonaj kopię zapasową przed edycją pliku.

Madhurendra Sachan
źródło