1

Когда я запускаю базовый php-скрипт «hello world» из командной строки и запускаю команду php test.php , он возвращает действительную HTML-страницу. Однако, когда я пытаюсь получить к нему доступ через браузер, я получаю текст php-скрипта, а не действительный html.

PHP-скрипт "test.php" выглядит следующим образом:

<html>
<head>
  <title>PHP Test</title>
</head>
<body>
  <?php

     echo '<p>Hello World</p>';

   ?>
</body>
</html>

Я использую Apache на Raspbian.

2 ответа2

1

PHP может работать в разных режимах работы.

Это может быть консольный интерпретатор, когда вы запускаете его из командной строки, или он может работать как CGI, также может работать как служба - php-fpm , он может работать как модуль apache или может быть веб-сервером.

Самый простой способ запустить ваши php-скрипты в браузере - использовать встроенный веб-сервер.
Просто запустите php -S ip.ip.ip.ip:port -t /path/to/directory/where/php/files/lives Life заменяет ip.ip.ip.ip с IP-адресом, назначенным Raspberry Pi (получите его из ifconfig) и замените port на порт, который вы хотите, чтобы встроенный сервер прослушивал соединение (пусть это будет 8000). Если вы укажете свой браузер на http://ip.ip.ip.ip:port/your-script.php вы получите то, что вы хотите, без необходимости запускать apache.

Если вы все еще хотите запустить php через apache, вам нужно выяснить, как вы его установили.

Шаги, чтобы проверить, должен ли php работать как модуль apache:
Запустите apache2ctl -M и посмотрите, загружен ли модуль php. Если его там нет, вам нужно включить его sudo a2enmod phpX (где X - версия php) и перезагрузить apache с помощью команды:
sudo service apache2 reload .

Шаги, чтобы проверить, должен ли php работать как сервис php-fpm:
Если вы устанавливаете php как службу php-fpm вам нужно проверить, работает ли она:
ps aux | grep 'php-fpm'
Если он запущен, вам нужно настроить экземпляр apache для работы в качестве прокси. Используйте официальную документацию Apache, чтобы настроить его. Это более сложная настройка по сравнению со случаем, когда php запускается как модуль apache, но у него есть много преимуществ, которые обычно нужны в производственной среде.

Шаги, чтобы проверить, должен ли php работать как php-cgi (в этом режиме php вызывается apache каждый раз, когда кто-то запрашивает php-файл):
Проверьте конфигурационные файлы apache на наличие следующих настроек:

ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi
0

Чтобы добавить пользователю ответ Алекса, также убедитесь, что установлен пакет libapache2-mod-php5 . Apache не будет работать без установленного пакета. Чтобы установить, запустите

sudo apt install libapache2-mod-php5

Установив этот пакет, он также автоматически добавит php в модули, загружаемые Apache.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .