Warum wird php cgi in path geladen, wenn ein 'sudo su <user> "ausgeführt wird, anstatt nur eingeloggt zu sein, wenn php cli verwendet wird?

0

Wenn Sie als root angemeldet sind, lädt PHP die richtige Version, nämlich PHP CLI.

Bildbeschreibung hier eingeben

Aber wenn ich ein sudo su <user> mache , lädt PHP die CGI-Version, was einige meiner Anwendungen zum Absturz bringt, die eine PHP-CLI-Version erfordern.

Bildbeschreibung hier eingeben

Ich habe versucht, php-cgi auf php-cli zu ändern, aber das hat alle meine Websites total kaputt gemacht, da ich glaube, dass meine CMS-Websites php-cgi benötigen, um richtig zu funktionieren.

Wie mache ich php-cli als Standardprogramm, wenn ich einen sudo su-Benutzer oder sudo -i mache ?

Patoshi パ ト ト
quelle

Antworten:

0

SUDO SU userLässt SU nur als root ausführen, nicht als Befehle, die Sie im Kontext des Benutzers ausführen. Um zu erzwingen, dass PHP als root ausgeführt wird, müssen Sie verwenden SUDO phpund der Benutzer muss auch zu sudoers hinzugefügt werden. Aus Sicherheitsgründen würde ich den letzten Teil nicht empfehlen, wenn der Benutzer mit dem identisch ist, auf dem Ihr CMS ausgeführt wird.

Damit der Benutzer pat verwenden kann SUDO php, fügen Sie dies am Ende von sudoers hinzu mit SUDO visudo:

# Allow the user pat to (sudo) execute /usr/local/bin/php
# as root without requiring user authentication.
pat ALL = NOPASSWD: /usr/local/bin/php

Wenn der Benutzer pat nicht derselbe Benutzer ist, der Ihr CMS ausführt , können Sie pat zu einer Gruppe hinzufügen , für die Ausführungsrechte bestehen /usr/local/bin/php.

Wenn pat Rechte hat ausführen und es immer noch nicht funktioniert, dann stellen Sie sicher , dass pat hat , /usr/local/binbevor /usr/binin PATH.

Bob
quelle