Gdzie jest plik wykonywalny PHP na Ubuntu?

13

Zainstalowałem Apache i PHP. Wiem, że PHP działa, ponieważ przetestowałem prosty plik PHP na serwerze Apache.

Piszę prosty serwer WWW, który powinien być w stanie przetwarzać pliki PHP. Więc kiedy otrzymam prośbę o plik PHP, chcę zrobić coś takiego jak „exec php test.php”, pobrać dane wyjściowe i przekazać je klientowi.

Ponieważ nie przepadam za Ubuntu, nie wiem, gdzie jest plik wykonywalny PHP (powinien być w \ bin, prawda?), Aby to zrobić. Ale nie ma pliku PHP wewnątrz \ bin lub \ usr \ bin.

Kiedy uruchamiam „which php”, nic nie pokazuje. Jak mam to zrobic?

samsamara
źródło
1
To, co się stało, najprawdopodobniej ma php w apache jako moduł php (technicznie - biblioteka nie jest wykonywalnym plikiem binarnym, który jest wywoływany zewnętrznie), dlatego nie można znaleźć pliku binarnego. Ten komentarz ma na celu uzupełnienie odpowiedzi, która mówi ci, co należy zrobić, aby uzyskać plik binarny php w twoim systemie, ale nie podaje żadnych powodów, dla których go brakowało.
AnonymousLurker
Jeśli naprawdę używasz Ubuntu 8.10, jak sugerują tagi, powinieneś zrozumieć, że Ubuntu 8.10 jest bardzo nieaktualny. Naprawdę powinieneś zaktualizować jak najszybciej. Nie ma wsparcia bezpieczeństwa dla tej wersji.
Zoredache
@Zoredache tak, wiem, że jest bardzo stary. Ale nie jestem użytkownikiem Ubuntu. Miałem CD i zainstalowałem go, tylko na moje zadanie! : D
samsamara,

Odpowiedzi:

11

Musisz zainstalować pakiet php5-clilub php5-cgi.

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

Jak zauważył Zoredache w komentarzu. Wersja cli nie przetwarza nagłówków ani nie wypisuje ich - to rodzaj czystego interpretera PHP całkowicie nieświadomego HTTP.

Jeśli chcesz wersję zdolną do wyżej wymienionych, użyj wersji CGI.

Kamil Šrot
źródło
1
tak, właśnie się dowiedziałem, że potrzebuję php-cli .. :)
samsamara,
1
Ponieważ pisze serwer WWW, prawdopodobnie nie chce wersji CLI, ponieważ nie będzie w stanie uzyskać danych GET / POST.
Zoredache
1
ok, zainstalowane, wciąż pytanie: gdzie jest plik wykonywalny?
Andrew
14

Wpisz następujące dane w swoim terminalu

whereis php

Robert Sinclair
źródło
Mam tophp: /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

Znalazłem pliki wykonywalne w / usr / bin /

na przykład:

  • / usr / bin / php
  • /usr/bin/php7.0
  • /usr/bin/php7.1
Andrzej
źródło
1

Jeśli piszesz własny serwer sieciowy, prawie na pewno chcesz zainstalować lub zbudować wersję binarną PHP binarnego CGI i zaimplementować protokół CGI na swoim serwerze internetowym. Wersja CGI ma wymagane funkcje do przechwytywania danych GET / POST.

Widzieć:

Zoredache
źródło
Piszę prosty serwer WWW z obsługą PHP i CGI. Aby parsować pliki php, zamierzam zrobić to „exec / usr / bin / php file.php”. Możesz uruchamiać skrypty CGI, parsując je do perla. Czy mam rację? wykonalny?
samsamara,
1
Uhm, żadne CGI nie ma nic wspólnego z perlem. Naprawdę powinieneś przeczytać przynajmniej artykuł w Wikipedii.
Zoredache,