Де виконується PHP у Ubuntu?


13

Я встановив Apache та PHP. Я знаю, що PHP працює, коли я протестував простий файл PHP на сервері Apache.

Я пишу простий веб-сервер, який повинен мати можливість обробляти файли PHP. Отже, як тільки я отримую запит на файл PHP, я хочу зробити щось на кшталт 'exec php test.php' і отримати вихід і передати його клієнту.

Оскільки я не дуже в Ubuntu, я не знаю, де виконується виконуваний PHP (має бути в \ bin правильно?), Щоб це зробити. Але всередині файлу \ bin або \ usr \ bin немає файлу PHP.

Коли я запускаю "який php", він нічого не показує. Як це зробити?


1
Що сталося, швидше за все, ви отримали php в apache як модуль php (технічно - бібліотека, а не виконуваний двійковий файл, який викликається зовні), тому ви не змогли знайти бінарний файл. Цей коментар призначений для завершення відповіді, яка говорить вам, що потрібно зробити, щоб отримати бінарний php у вашій системі, але не наводить жодних причин, чому він відсутній.
AnonymousLurker

Якщо ви справді використовуєте Ubuntu 8.10, як підказують ваші теги, вам слід зрозуміти, що Ubuntu 8.10 є надзвичайно застарілим. Вам дійсно слід оновити якнайшвидше. Підтримка безпеки для цього випуску не існує.
Зоредаче

@Zoredache Так, я знаю, що це дуже давно. Але я не користувач Ubuntu. У мене був компакт-диск і я встановив його, тільки для мого завдання! : D
samsamara

Відповіді:


11

Вам потрібно встановити php5-cliабо php5-cgiпакет.

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

Як зазначила у коментарі Зоредаче. версія cli не обробляє заголовки і не виводить їх - це такий собі чистий інтерпретатор PHP, який абсолютно не знає про HTTP.

Якщо ви хочете, щоб версія, згадана вище, використовуйте версію CGI.


1
так, я щойно дізнався, що мені потрібен php-cli .. :)
samsamara

1
Оскільки він пише веб-сервер, він, мабуть , не хоче версії CLI, оскільки не зможе отримати дані GET / POST.
Зоредаче

1
ОК, встановлено, все ще питання: де виконуваний файл?
Андрій

14

Введіть наступне у свій термінал

де php


Я отримав цеphp: /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

Я знайшов виконувані файли в / usr / bin /

наприклад:

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

1

Якщо ви пишете власний веб-сервер, ви майже напевно хочете встановити або створити CGI-версію бінарного PHP, і ви хочете реалізувати протокол CGI у своєму веб-сервері. Версія CGI має необхідні засоби для збору даних GET / POST.

Подивитися:


Я пишу простий веб-сервер із підтримкою PHP та CGI. Для розбору файлів php, що я збираюся зробити, це "exec / usr / bin / php file.php". І ви можете запускати CGI-скрипти, аналізуючи їх на перл. Чи правий я? здійсненний?
samsamara

1
Гм, жоден CGI не має нічого спільного з perl. Ви дійсно повинні прочитати принаймні статтю у Вікіпедії.
Зоредаче
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.