Файлы PHP отображаются в виде текста

Когда я хочу запустить файл php, он отображается в моем браузере в виде текста.

У меня есть VPS на Hostinger. Я установил Ubuntu 18.04 с Webmin и LAMP (устанавливается автоматически).

Я проверил установку, см. Ниже.

apache2 - v и php -v дает мне: Apache / 2.4.29 и PHP 7.2.24- 0ubuntu0.18.04.6

Кажется, все установлено правильно.

Моя папка по умолчанию - / var / www / html / Я не использую короткие теги в своем коде.

Я пытаюсь запустить файл с именем phpinfo.php с содержимым:

<?php
phpinfo();
?>

И на странице появляется простой текст.

Если файл начинается с html-кода, он отображается правильно, даже с файлом .php. Но часть php не выполняется. например:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>Hello</h1>
  </body>
</html>

<?php
phpinfo();
?>

Визуализация: Здравствуйте

Но

<?php
phpinfo();
?>

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>Hello</h1>
  </body>
</html>

Визуализируйте код как простой текст.

0
задан 2 June 2020 в 05:28
3 ответа

Существует несколько причин, по которым ваш PHP может не интерпретироваться.

  1. У вас может не быть установлен или запущен модуль PHP для Apache.

Чтобы проверьте установленные пакеты PHP, введите: dpkg -l | grep php

Чтобы проверить, какие модули apache установлены, введите: a2query -m . В списке должен быть модуль PHP, и он должен быть включен.

Вы должны увидеть libapache2-mod-php в списке среди пакетов. Его можно назвать libapache2-mod-php7.2 или что-то подобное, чтобы соответствовать вашей версии PHP.

Если его нет,вам необходимо установить его.

  1. Возможно, потребуется настроить Apache для выполнения файлов .php. Чтобы быстро проверить конфигурацию Apache, наберите: grep -r php /etc/apache2/*[1176250 provided.[12196 sizes Вы должны увидеть где-нибудь SetHandler application / x-httpd-php конечно, это не комментируется.

0
ответ дан 4 January 2021 в 09:55

Я запускаю команду grep -r php / etc / apache2 / * , и это весь результат (извините, я новичок в unix, я Я не уверен в том, что вижу):

/etc/apache2/conf-available/php7.2-cgi.conf:# application/x-httpd-php                        phtml php
/etc/apache2/conf-available/php7.2-cgi.conf:    SetHandler application/x-httpd-php
/etc/apache2/conf-available/php7.2-cgi.conf:# application/x-httpd-php-source                 phps
/etc/apache2/conf-available/php7.2-cgi.conf:<FilesMatch ".+\.phps$">
/etc/apache2/conf-available/php7.2-cgi.conf:    SetHandler application/x-httpd-php-source
/etc/apache2/conf-available/php7.2-cgi.conf:    # Deny access to raw php sources by default
/etc/apache2/conf-available/php7.2-cgi.conf:# Deny access to files without filename (e.g. '.php')
/etc/apache2/conf-available/php7.2-cgi.conf:#Action application/x-httpd-php /cgi-bin/php7.2
/etc/apache2/conf-available/php7.2-fpm.conf:# Redirect to local php-fpm if mod_php is not available
/etc/apache2/conf-available/php7.2-fpm.conf:<IfModule !mod_php7.c>
/etc/apache2/conf-available/php7.2-fpm.conf:        SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
/etc/apache2/conf-available/php7.2-fpm.conf:    <FilesMatch ".+\.phps$">
/etc/apache2/conf-available/php7.2-fpm.conf:        # Deny access to raw php sources by default
/etc/apache2/conf-available/php7.2-fpm.conf:    # Deny access to files without filename (e.g. '.php')
/etc/apache2/mods-available/php7.2.load:# Conflicts: php5
/etc/apache2/mods-available/php7.2.load:LoadModule php7_module /usr/lib/apache2/modules/libphp7.2.so
/etc/apache2/mods-available/php7.2.conf:#    SetHandler application/x-httpd-php
/etc/apache2/mods-available/php7.2.conf:<FilesMatch ".+\.phps$">
/etc/apache2/mods-available/php7.2.conf:#    SetHandler application/x-httpd-php-source
/etc/apache2/mods-available/php7.2.conf:    # Deny access to raw php sources by default
/etc/apache2/mods-available/php7.2.conf:# Deny access to files without filename (e.g. '.php')
/etc/apache2/mods-available/php7.2.conf:        php_admin_flag engine Off
/etc/apache2/mods-available/dir.conf:   DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
/etc/apache2/sites-available/default-ssl.conf:      <FilesMatch "\.(cgi|shtml|phtml|php)$">

Упомянутая вами строка присутствует 2 раза, без комментариев.

0
ответ дан 4 January 2021 в 09:55

Обычно, когда я устанавливаю apache и PHP на ubuntu, у меня это работает плавно, но на этот раз мне пришлось использовать это, прежде чем мои файлы PHP перестали отображаться как обычный текст.

sudo apt install libapache2-mod-php7.4 
1
ответ дан 23 February 2021 в 17:04

Теги

Похожие вопросы