Wo ist die PHP-Datei unter Ubuntu ausführbar?


13

Ich habe Apache und PHP installiert. Ich weiß, dass PHP funktioniert, da ich eine einfache PHP-Datei auf einem Apache-Server getestet habe.

Ich schreibe einen einfachen Webserver, der PHP-Dateien verarbeiten kann. Sobald ich eine Anfrage für eine PHP-Datei erhalte, möchte ich etwas wie 'exec php test.php' ausführen und die Ausgabe abrufen und an den Client übergeben.

Da ich Ubuntu nicht besonders mag, weiß ich nicht, wo sich die ausführbare PHP-Datei befindet (sollte sich in \ bin befinden, oder?), Um dies zu tun. Es gibt jedoch keine PHP-Datei in \ bin oder \ usr \ bin.

Wenn ich 'which php' starte, wird nichts angezeigt. Wie mache ich das?


1
Was passiert ist, ist höchstwahrscheinlich, dass Sie PHP in Apache als PHP-Modul haben (technisch gesehen - eine Bibliothek, keine ausführbare Binärdatei, die extern aufgerufen wird). Deshalb konnten Sie die Binärdatei nicht finden. Dieser Kommentar soll die Antwort vervollständigen, die Ihnen sagt, was zu tun ist, um die PHP-Binärdatei in Ihrem System zu erhalten, aber keine Gründe angibt, warum sie fehlte.
AnonymousLurker

Wenn Sie Ubuntu 8.10 wirklich ausführen, wie es Ihre Tags vermuten lassen, sollten Sie verstehen, dass Ubuntu 8.10 extrem veraltet ist. Sie sollten wirklich so schnell wie möglich aktualisieren. Für diese Version gibt es keine Sicherheitsunterstützung.
Zoredache

@ Zoredache ja ich weiß es ist sehr alt. Aber ich bin kein Ubuntu-Benutzer. Ich hatte die CD und habe sie installiert, nur für meine Aufgabe! : D
Samsamara

Antworten:


11

Sie müssen das Paket php5-clioder installieren php5-cgi.

sudo apt-get install php5-cli
# OR
sudo apt-get install php5-cgi

Wie Zoredache im Kommentar feststellte. Die CLI-Version verarbeitet keine Header und gibt sie auch nicht aus - es ist eine Art sauberer PHP-Interpreter, der HTTP überhaupt nicht kennt.

Wenn Sie eine Version wünschen, die die oben genannten Funktionen unterstützt, verwenden Sie die CGI-Version.


1
Ja, ich habe gerade gelernt, dass ich PHP-
Cli

1
Da er einen Webserver schreibt, möchte er wahrscheinlich nicht die CLI-Version, da diese die GET / POST-Daten nicht abrufen kann.
Zoredache

1
ok, installiert, noch frage: wo ist die ausführbare datei?
Andrew

14

Geben Sie Folgendes in Ihr Terminal ein

wo ist php


Ich habe das bekommenphp: /usr/bin/php7.1 /usr/bin/php7.0 /usr/bin/php /usr/bin/php7.2 /usr/lib/php /etc/php /usr/include/php /usr/share/php7.1-opcache /usr/share/php7.2-zip /usr/share/php7.0-intl /usr/share/php7.1-common /usr/share/php7.0-gd /usr/share/php7.2-common /usr/share/php7.1-gd /usr/share/php7.1-xmlrpc /usr/share/php7.2-intl /usr/share/php7.2-mysql
abu abu

11

Ich habe die ausführbaren Dateien in / usr / bin / gefunden

z.B:

  • / usr / bin / php
  • /usr/bin/php7.0
  • /usr/bin/php7.1

1

Wenn Sie Ihren eigenen Webserver schreiben, möchten Sie mit ziemlicher Sicherheit die CGI-Version der PHP-Binärdatei installieren oder erstellen und das CGI-Protokoll auf Ihrem Webserver implementieren. Die CGI-Version verfügt über die erforderlichen Funktionen zum Erfassen der GET / POST-Daten.

Sehen:


Ich schreibe einen einfachen Webserver mit PHP- und CGI-Unterstützung. Zum Parsen von PHP-Dateien werde ich 'exec / usr / bin / php file.php' ausführen. Und Sie können CGI-Skripte ausführen, indem Sie sie in Perl analysieren. Habe ich recht? möglich?
Samsamara

1
Ähm, kein CGI hat nichts mit Perl zu tun. Sie sollten wirklich mindestens den Wikipedia-Artikel lesen.
Zoredache
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.