Où est l'exécutable PHP sur Ubuntu?

13

J'ai installé Apache et PHP. Je sais que PHP fonctionne car j'ai testé un simple fichier PHP sur un serveur Apache.

J'écris un simple serveur Web qui devrait pouvoir traiter les fichiers PHP. Donc, une fois que je reçois une demande pour un fichier PHP, je veux faire quelque chose comme 'exec php test.php' et obtenir la sortie et la transmettre au client.

Comme je ne suis pas beaucoup dans Ubuntu, je ne sais pas où l'exécutable PHP est (devrait être dans \ bin à droite?) Pour le faire. Mais il n'y a pas de fichier PHP dans \ bin ou \ usr \ bin.

Quand je lance 'quel php' cela ne montre rien. Comment puis-je faire cela?

samsamara
la source
1
Ce qui s'est passé est très probablement que vous avez obtenu php dans apache en tant que module php (techniquement - une bibliothèque pas un binaire exécutable qui est appelé en externe), c'est pourquoi vous n'avez pas pu trouver le binaire. Ce commentaire est destiné à compléter la réponse, qui vous indique ce qui doit être fait pour obtenir le binaire php dans votre système, mais ne fournit aucune raison pour laquelle il était manquant.
AnonymousLurker
Si vous utilisez vraiment Ubuntu 8.10 comme le suggèrent vos balises, vous devez comprendre qu'Ubuntu 8.10 est extrêmement obsolète. Vous devriez vraiment mettre à niveau dès que possible. Il n'y a pas de support de sécurité pour cette version.
Zoredache
@Zoredache ouais je sais que c'est très vieux. Mais je ne suis pas un utilisateur d'Ubuntu. J'avais le CD et je l'ai installé, juste pour ma mission! : D
samsamara

Réponses:

11

Vous devez installer le php5-cliou le php5-cgipackage.

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

Comme l'a noté Zoredache dans le commentaire. La version cli ne traite pas les en-têtes ni ne les affiche - c'est une sorte d'interprète PHP propre qui ignore complètement HTTP.

Si vous voulez une version compatible avec ce qui précède, utilisez la version CGI.

Kamil Šrot
la source
1
ouais je viens d'apprendre que j'ai besoin de php-cli .. :)
samsamara
1
Puisqu'il écrit un serveur Web, il ne veut probablement pas la version CLI car cela ne pourra pas obtenir les données GET / POST.
Zoredache
1
ok, installé, toujours question: où est l'exécutable?
Andrew
14

Tapez ce qui suit dans votre terminal

où est php

Robert Sinclair
la source
J'ai eu çaphp: /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

J'ai trouvé les exécutables dans / usr / bin /

par exemple:

  • / usr / bin / php
  • /usr/bin/php7.0
  • /usr/bin/php7.1
Andrew
la source
1

Si vous écrivez votre propre serveur Web, vous voudrez certainement installer ou construire la version CGI du binaire PHP, et vous voudrez implémenter le protocole CGI dans votre serveur Web. La version CGI dispose des fonctionnalités requises pour capturer les données GET / POST.

Voir:

Zoredache
la source
J'écris un simple serveur web avec support PHP et CGI. Pour analyser les fichiers php, ce que je vais faire est «exec / usr / bin / php file.php». Et vous pouvez exécuter des scripts CGI en les analysant en perl. Ai-je raison? réalisable?
samsamara
1
Uhm, aucun CGI n'a rien à voir avec perl. Vous devriez vraiment lire au moins l'article wikipedia.
Zoredache