GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie konfiguriere ich PHP CLI unter Linux Ubuntu so, dass es als www-data läuft?

Führen Sie einen Befehl einmal als ein anderer Benutzer aus:

sudo -u www-data php script.php

Dies sollte funktionieren, wenn Sie root sind .

Was PHP immer als www-data angeht , gibt es mehrere Möglichkeiten. Sie könnten ein einfaches Wrapper-Shellscript erstellen. Wenn /usr/bin/php ist nur ein Soft-Link zu /usr/bin/php5 oder ähnliches, das macht es einfacher. Ersetzen Sie einfach den Softlink (NICHT die Datei php5 ) mit einem Skript wie diesem:

#!/bin/sh

sudo -u www-data php5 $*

return $?

Das ist aber nicht getestet. Beachten Sie auch, dass dies IMMER versuchen wird, php5 auszuführen als Benutzer www-data , auch wenn der Benutzer nicht root ist und möglicherweise keine Berechtigung dazu haben. Und es ist vielleicht auch nicht das, was Sie wirklich wollen. Einige installierte Dienste können beim Versuch, php auszuführen, auf Probleme stoßen.

Eine (möglicherweise bessere) Lösung, um dies nur auf root anzuwenden, könnte darin bestehen, den Softlink /usr/bin/php zu belassen allein und platzieren Sie das Skript in /root/bin stattdessen. Fügen Sie diesen Ordner dann über .bashrc zu PATH hinzu , .profile oder ähnliches. Wenn Sie /etc/skel/.profile haben , die möglicherweise darauf hinweisen, wie das gemacht wird:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Sobald dies in Ihrem .bashrc ist , .profile oder ähnlich, jede neue Shell, die Sie öffnen, erlaubt Ihnen, alle ausführbaren Dateien (+x) in $HOME/bin direkt auszuführen (/root/bin für root).

Hinweis:Vielleicht möchten Sie das Wrapper-Skript so benennen wie phpwww Sie geben also ausdrücklich php script.php an oder phpwww script.php um zu entscheiden, ob Sie reguläres oder Sudo-php möchten.

Eine andere Lösung ist ein einfacher Alias. Legen Sie dies in Ihren .bashrc , .profile oder ähnlich:

alias phpwww='sudo -u www-data php'

Linux
  1. Wie führe ich Linux-Bash-Befehle in einem PERL-Skript aus?

  2. Linux – Wie führt man ein Skript zum Sperren/Entsperren des Bildschirms aus?

  3. Kompilieren Sie ein PHP-Skript unter Linux

  4. Wie führe ich ein Python-Skript auf dem Terminal (Ubuntu) aus?

  5. So fügen Sie Shebang # hinzu! mit PHP-Skript unter Linux?

So installieren und konfigurieren Sie KVM unter Ubuntu Linux

So installieren und konfigurieren Sie XAMPP unter Ubuntu Linux

So installieren und konfigurieren Sie Nagios unter Ubuntu Linux

So installieren und konfigurieren Sie PHP OPcache unter Ubuntu 18.04

So erstellen und führen Sie ein Shell-Skript in Ubuntu 22.04 aus

So installieren und konfigurieren Sie Angular CLI auf Linux-Distributionen