Когда я хочу запустить файл 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>
Визуализируйте код как простой текст.
Существует несколько причин, по которым ваш PHP может не интерпретироваться.
Чтобы проверьте установленные пакеты PHP, введите: dpkg -l | grep php
Чтобы проверить, какие модули apache установлены, введите: a2query -m
. В списке должен быть модуль PHP, и он должен быть включен.
Вы должны увидеть libapache2-mod-php
в списке среди пакетов. Его можно назвать libapache2-mod-php7.2
или что-то подобное, чтобы соответствовать вашей версии PHP.
Если его нет,вам необходимо установить его.
grep -r php /etc/apache2/*[1176250 provided.[12196 sizes Вы должны увидеть где-нибудь SetHandler application / x-httpd-php
конечно, это не комментируется.
Я запускаю команду 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 раза, без комментариев.
Обычно, когда я устанавливаю apache и PHP на ubuntu, у меня это работает плавно, но на этот раз мне пришлось использовать это, прежде чем мои файлы PHP перестали отображаться как обычный текст.
sudo apt install libapache2-mod-php7.4