PHP: get_current_user() vs. exec('whoami')

Kurze version der Frage:

Was ist der Unterschied zwischen
get_current_user(); und exec('whoami'); ?

Lange version der Frage:

  1. Ich bin auf einem XAMPP "Localhost" auf einem Mac.
  2. Bin ich mit Apache, Aufbau einer PHP
    basierte website in einem Ordner (nennen wir es folderxyz) innerhalb der
    htdocs-Ordner (var/www in einigen Varianten von Linux+Apache).
  3. Ich war Herumspielen mit Datenbank-Anbindung,
    testen, PDO::ERRMODE_EXCEPTION hier beschrieben: Link

Und ich habe diesen Fehler:

file_put_contents(PDOErrors.txt): failed to open stream: Permission
verweigert...

So, ich habe einige Detektivarbeit und es scheint, dass, um dies zu beheben muss ich ändern das CHMOD Einstellungen der Datei PDOErrors.txt auf 777.

Aber meine Fragen sind etwas anderes. Während dieses Prozesses, erkannte ich, dass ich nicht deutlich verstehen, das Konzept der user in Apache, PHP und MySQL.

  • Das PHP-Handbuch sagt, dass get_current_user() "Ruft den Namen des Besitzers des aktuellen PHP-Skript" Link
  • Das PHP-Handbuch sagt, dass exec('whoami') gibt "der Benutzername besitzt, der mit php/httpd-Prozess" Link
  • Wenn ich get_current_user() bekomme ich meine firstnamelastname, das ist mein account-name auf meinem Mac.
  • Wenn ich exec('whoami') bekomme ich daemon.

So...

  1. Was ist die Beziehung zwischen firstnamelastname und daemon ?
  2. Was ist die Beziehung zwischen den "der Besitzer des aktuellen PHP-Skript" und "username besitzt, der mit php/httpd-Prozess" ?
  3. Wer braucht die Berechtigung zum schreiben PDOErrors.txt? Ist es firstnamelastname oder daemon ?
  4. Wer braucht die Berechtigung zum schreiben PDOErrors.txt? Ist es Apache oder PHP (oder beides) ?
  5. Hat das Konzept von unix-ähnlichen root Konto-Faktor-irgendwo hier ?

Edit: ich aktualisiert, diese zu reflektieren, dass es nicht das folderxyz, dass ich mich ändern musste CHMOD Einstellungen. Ich hatte zum ändern der Einstellungen für die Datei PDOErrors.txt


OP hier: für die Zukunft, habe ich eine parallele Frage für die Linux-Plattform hier (mit einer begleitenden intuitive Erklärung, was Los ist): https://stackoverflow.com/questions/31389892/why-is-the-output-www-data-in-one-case-and-root-in-another

  • Ich hinzufügen möchten für die Zukunft, die folgenden Stackoverflow-Antwort erklärt, warum der Apache-user zeigt sich als daemon auf einem lokalen Rechner, in der Erwägung, dass www-data auf einem öffentlich zugänglichen Rechner (D. H., nutzbar von jedermann über das internet). Ich schaute auf die Einstellungen in der Apache - httpd.conf Datei in meinem lokalen Maschine und der user und group Einstellungen waren zwar gesetzt, um daemon: stackoverflow.com/questions/26063556/...
Schreibe einen Kommentar