Die PHP-Version für Superuser ist fcgi anstelle von cli

7

Ich habe ein seltsames Problem mit der PHP-Version bei der Verwendung von CLI. Wenn ich mich als root anmelde und benutze: php -vIch erhalte die Information, dass PHP im CLI-Modus läuft, was in Ordnung ist, aber sobald ich es benutze, sudo php -verhalte ich die php-fcgi-Version, die einen Teil meines Codes bremst. Die Sache ist, dass ich Supervisor so eingerichtet habe, dass er einen PHP-Prozess (Laravel-Warteschlange) aufruft. Leider wird er im FCGI-Modus aufgerufen, sodass einige Variablen nicht verfügbar sind, sodass mein Code kaputt geht. Gibt es eine Problemumgehung dafür? Ich benutze CentOS 6.5.

user328611
quelle

Antworten:

1

@blackhatblade oben ist höchstwahrscheinlich coorect. Melden Sie sich zum Testen sowohl als Rootbenutzer als auch als Benutzer ohne Rootberechtigung an und versuchen Sie diesen Befehl

# welche php

$ welche php

"welches" soll dir den weg verraten. Wenn sie unterschiedlich sind, führt ein nicht qualifiziertes "PHP" das erste aus, das in jeder Verzeichnisliste gefunden wurde.

Es ist auch möglich, dass Ihr Root-Benutzer einen Shell-Alias ​​hat, der PHP neu zuordnet. Um dies zu überprüfen, versuchen Sie den Befehl "alias"

Schließlich ist es möglich, dass Ihre PHP-Programmdatei ein Wrapper ist, der nach Root-Ausführungsumgebungen sucht und Sie zur fcgi-Version umleitet. Überprüfen Sie dies, indem Sie den vollständig qualifizierten Pfad untersuchen, den Sie im ersten Schritt unter "which" gefunden haben, und prüfen Sie, ob es sich um ein Shell-Skript handelt, das basierend darauf, wer es ausführt, etwas hinterhält.

JesseM
quelle
0

Der Inhalt von $ PATH unterscheidet sich wahrscheinlich beim Sudoing. Suchen Sie die richtige Binärdatei und geben Sie einen vollständigen Pfad an.

Wenn Ihr PHP-Programm direkt aufgerufen wird, bearbeiten Sie es direkt auf den vollständigen Pfad der Cli-Binärdatei.

blackhat.blade
quelle
0

Sie sollten die Pfadvariable in in setzen /etc/environment. & Stellen Sie sicher, dass sowohl root als auch normaler Benutzer dieselbe PATH-Variable haben.

Versuchen sudo nano /etc/environment

Erstellen Sie eine Sicherungskopie, bevor Sie die Datei bearbeiten.

Madhurendra Sachan
quelle