PHP код не выполняется, вместо этого код отображается на странице
Я пытаюсь выполнить некоторый PHP-код в проекте (используя Dreamweaver), но код не запускается.
когда я проверяю исходный код, PHP-код отображается в виде html-тегов (я вижу его в исходном коде). Apache работает правильно (я работаю с XAMPP), страницы PHP открываются правильно, но PHP-код не выполняется.
есть ли у кого-то предложение о том, что происходит?
Примечание: файл уже назван как 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, и убедитесь, что нет комментариев (;) перед ним.убедитесь, что httpd Apache.файл 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-файл в браузере. у вас есть открыть с помощью localhost url. если вы откроете файл непосредственно из вашего каталога, он не будет выполнять 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.phpps> вы можете заметить, что если вы пишете из оболочки
php info.phpэто ответ с кодом (это означает функции php)..
У меня была аналогичная проблема, но в моем случае решение было другим. мой файл, который содержал php-код, назывался " somename.html" изменил его на " somename.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 на /var/www / html (корень документа по умолчанию), и он работал нормально. Так что проблема была в моей конфигурации виртуальных серверов. Решение состояло в том, чтобы включить в каталог def, содержащий .на PHP эта строка:
php_admin_flag engine on
проверить все пакеты, которые вы установили для php использование:
yum list installed | grep remiустановить все соответствующие php пакетов, особенно php-devel на своей машине.
Это было в моей .htaccess
.HTML-код содержится PHP-код. По умолчанию PHP не будет обрабатывать файлы с расширениями, такими как htm*, как PHP-код.DirectoryIndex index.html index.htmВы можете изменить это, добавив следующее .htaccess:
<FilesMatch ".+\.html$"> SetHandler application/x-httpd-php </FilesMatch>
для свежей настройки лампы под управлением php 7 отредактировать файл /и т. д./httpd/conf файл/файл httpd.конф Примечание: убедитесь, что сделать резервную копию, прежде чем что-то менять.
"вставить" это в самом низу файла:
<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
У меня был случай, когда я случайно начал распаковывать каталог файлов в корне. Он добавил .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 имел
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. so"
с
" /etc/apache2 / httpd.conf"
моя проблема исчезла.
Comments