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?

Samsamara
quelle
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.

Kamil Šrot
quelle
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

Robert Sinclair
quelle
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
Andrew
quelle
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:

Zoredache
quelle
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