PHP код не выполняется, вместо этого код отображается на странице
Я пытаюсь выполнить некоторый PHP-код в проекте (используя Dreamweaver), но код не запускается.
когда я проверяю исходный код, PHP-код отображается как HTML-теги (я вижу его в исходном коде). Apache работает правильно (я работаю с XAMPP), страницы PHP открываются правильно, но PHP-код не выполняется.
есть ли у кого-то предложение о том, что происходит?
Примечание: файл уже назван as filename.php
Edit: код..:
<?
include_once("/code/configs.php");
?>
24 ответов
похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:
убедитесь, что PHP установлен и работает правильно. Это может показаться глупым, но никогда не знаешь наверняка. Простой способ проверить-запустить
php -v
из командной строки и посмотреть, если возвращает информацию о версии или любые ошибки.убедитесь, что модуль PHP указан и без комментариев внутри вашего Apache файл httpd.конф это должно быть что-то вроде
LoadModule php5_module "c:/php/php5apache2_2.dll"
в файле. ПоискLoadModule php
, и убедитесь, что нет комментариев (;
) перед ним.убедитесь,что Apache httpd.в файле conf есть тип PHP MIME. Это должно быть что-то вроде
AddType application/x-httpd-php .php
. Это говорит Apache для запуска.php
файлы как PHP. Поиск AddType, а затем убедитесь, что есть запись для PHP и что это не имеет отношения.сделать уверен, что в вашем файле есть
.php
расширение на нем или любое расширение, указанное в определении MIME в пункте #3, иначе оно не будет выполняться как PHP.убедитесь, что вы не используете короткие теги в файле PHP (
<?
), это не включено на всех серверах по умолчанию, и использовать их не рекомендуется. Использовать<?php
вместо (или включить короткие теги в PHP.ini Сshort_open_tag=On
если у вас есть код, который полагается на них.)убедитесь, что вы получаете доступ к файлу через веб-сервер с помощью URL, как
http://localhost/file.php
не через локальный доступ к файламfile://localhost/www/file.php
и, наконец, проверить руководство PHP для дальнейших советов по настройке.
Я запускаю Apache на Ubuntu и моя проблема заключалась в том, что /etc/apache2/mods-available/php5.conf
файл отсутствовал это:
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
я добавил его обратно, и php правильно разбирал файлы php.
Я нашел еще одну проблему, вызывающую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в UTF-16
кодировка. Кажется, что PHP5 не может распознать <?php
тег в 16 битной кодировке по умолчанию.
примечание для пользователей php 7 Добавьте это в свой httpd.файл conf:
# PHP 7 specific configuration
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
я публикую этот ответ, потому что мой интерфейс администратора Virtualmin/Webmin решил, что это хорошая идея отключить мой PHP-движок.. мне потребовалось некоторое время, чтобы найти решение, поэтому я решил поделиться им с вами, ребята:
кроме того, убедитесь, что ни один из ваших файлов конфигурации веб-сайта, связанных с этим конкретным хостом или virtualhost, не имеет в них php_admin_value, которые отключают PHP, например:
php_admin_value engine Off
Если вы сомневаетесь, комментарий он...
# php_admin_value engine Off
и перезапустите веб-сервер.
О Боже! Я только что видел ваше опубликованное изображение снова, вы просто открываете свой php-файл в браузере. у вас открыт url-адрес localhost. если вы откроете файл непосредственно из своего Каталога, он ни в коем случае не будет выполнять php-код.
использование: http://locahost/index.php
или http:127.0.0.1/index.php
включить PHP короткий код в вашем случае, вы используете <?
который является php короткий код для <?php
по умолчанию PHP короткие коды нетрудоспособный.
использовать: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
если вы являетесь пользователем ubuntu.
Я знаю, это должно звучать глупо... но такое случается редко.
Проверьте, пытаетесь ли вы выполнить php из
**http://localhost/info.php**
а не
file:///var/www/info.php
ps> вы можете заметить, что если вы пишете из оболочки
php info.php
Он отвечает кодом (это означает функции php)..
У меня была аналогичная проблема, но в моем случае решение было другим. мой файл, содержащий php-код, назывался "содержаться.HTML-код" изменил его на "содержаться.на PHP" работало
Это случилось со мной снова, вместе с сервером, загружающим html-файлы, а не обрабатывающим. Я не использовал веб-сервер apache в течение некоторого времени на компьютере, а тем временем Ubuntu обновился как еще две версии из первоначально установленных LTS. Теперь это
$ cat /etc/issue
Ubuntu 16.04 LTS
таким образом, php работал после того, как так:
$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart
веб-сервер теперь разбирал php. Возможно, теперь нужно обновить некоторые сети с php7.0 теперь работает там, где это было до запуска php5. О что ж.
на моем ubuntu 14.04, apache 2.4, php 5.5.9 установить, я попытался с образцом.php on/var/www / html (корень документа по умолчанию), и он работал нормально. Итак, проблема была в конфигурации моих виртуальных серверов. Решение состояло в том, чтобы включить в каталог def, содержащий .на PHP эта строка:
php_admin_flag engine on
проверить все пакеты, которые вы установили для php использование:
yum list installed | grep remi
установить все соответствующие php пакетов, особенно php-devel на своей машине.
Это было в моей .реврайт
DirectoryIndex index.html index.htm
.HTML-код содержится PHP-код. По умолчанию PHP не будет обрабатывать файлы с расширениями, такими как htm*, как PHP-код.
Вы можете изменить это, добавив следующее .реврайт:
<FilesMatch ".+\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
для новой настройки лампы под управлением php 7 отредактировать файл /и т. д./httpd/conf файл/файл httpd.conf Примечание: убедитесь, что сделать резервную копию, прежде чем что-то менять.
"вставить" это в самом низу файла:
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
затем найдите LoadModule и вставьте следующую строку:
LoadModule php7_module modules/libphp7.so
эта строка просто попросит httpd загрузить модуль php 7
затем перезапустите httpd
я столкнулся с этой проблемой на php 7.1, который поставляется с High Sierra (OS X 10.13.5), редактирование /etc/apache2/httpd.conf
со следующими изменениями помогли:
-
раскомментировать эту строку
LoadModule php7_module libexec/apache2/libphp7.so
-
вставить следующий в конце
<IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> </IfModule>
Я думаю, что проблема в том, что он показывает код вместо результата, заключается в том, что он не собирается на локальный хост . перепроверьте, по какому адресу вы входите. вы собираетесь в локальный каталог файлов или на локальный хост.
на скриншоте у него собирается УР компьютер не с localhost.
"file:///" это должно быть "localhost/"
переустановить mcrypt
модуль работал для меня.
$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
У меня был случай, что я случайно начал untaring каталога мои файлы в корень. Она добавила .htaccess файл из папки Мои файлы, который будет блокировать все php
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
итог проверки .файл htaccess в корневом каталоге.
Если у вас есть такая конфигурация:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example.com"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
раскомментируйте следующие строки в httpd.conf
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
это работает для меня
добавить AddType application/x-httpd-php .php
в файле httpd.conf-файл, если вы используете Apache 2.4
убедитесь, что скрипт содержит
<?php
перед кодом, который должен быть выполнен. Не должно быть пространства между <?
и php
в этом.
просто потратил часы, пытаясь получить PHP 5 для работы с Apache 2.4 В Windows 10. Наконец, для меня это была опечатка в httpd.conf LoadModule
. Обратил внимание на написание и точный путь модуля через последний ответ в этом apachelounge поток denny2018. Спасибо!
после двух ночей я обнаружил... Мой справочник был написан
c:
(нижний регистр)
I had LoadModule php5_module "c:/php/php5apache2.dll"
но правильно для apache 2.4 - это:
LoadModule php5_module "C:/php/php5apache2_4.dll"
поэтому я также пропустил _4
(например,apache 2.4). Полный фрагмент, который работал для меня:
# PHP
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
только что попробовал PHP 7. Там LoadModule
в строке httpd.conf для Apache 2.4 читает
LoadModule php7_module "C:/php/php7apache2_4.dll"
в настоящее время появляется руководство php c:/php/php5apache2.dll
который, конечно, необходимо отрегулировать.
в моем случае (Apache / 2.4.34),
после раскомментирования конкретного модуля
" LoadModule php7_module libexec/apache2 / libphp7.так что"
с
" / etc/apache2 / httpd.conf"
моя проблема исчезла.