PHP-код не выполняется, вместо этого код отображается на странице

Я пытаюсь выполнить некоторый код PHP в проекте (используя Dreamweaver), но код не запускается.

Когда я проверяю исходный код, PHP-код отображается как HTML-теги (я вижу его в исходном коде). Apache работает правильно (я работаю с XAMPP), страницы PHP открываются должным образом, но код PHP не выполняется.

Есть ли у кого-то предложение о том, что происходит?

Примечание . Файл уже назван filename.php

Изменить: Код ..:

 <? include_once("/code/configs.php"); ?> 

Печать

Похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:

  1. Убедитесь, что PHP установлен и работает правильно. Это может показаться глупым, но вы никогда не знаете. Простой способ проверить – запустить php -v из командной строки и посмотреть, возвращает ли информация о версии или какие-либо ошибки.

  2. Убедитесь, что модуль PHP указан и раскомментирован внутри вашего httpd.conf Apache. Это должно быть что-то вроде LoadModule php5_module "c:/php/php5apache2_2.dll" в файле. Найдите LoadModule php и убедитесь, что перед ним нет комментария ( ; ).

  3. Убедитесь, что файл httpd.conf Apache имеет в нем тип MIME PHP. Это должно быть что-то вроде AddType application/x-httpd-php .php . Это говорит Apache запускать .php файлы как PHP. Найдите AddType, а затем убедитесь, что есть запись для PHP, и что она не имеет комментариев .

  4. Убедитесь, что ваш файл имеет расширение .php на нем или любое расширение, указанное в определении MIME в пункте №3, иначе оно не будет выполняться как PHP.

  5. Убедитесь, что вы не используете короткие теги в файле PHP ( <? ), Они не включены на всех серверах по умолчанию, и их использование не рекомендуется. Вместо этого используйте <?php (или включите короткие тэги в php.ini с short_open_tag=On если у вас есть код, который опирается на них).

  6. Убедитесь, что вы просматриваете файл через ваш веб-сервер, используя 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-битной кодировке по умолчанию.

Я отправляю этот ответ, потому что мой интерфейс администратора Virtualmin / Webmin решил, что было бы неплохо отключить мой PHP-движок. У меня ушло время найти решение, поэтому я решил поделиться с вами ребятами:

Кроме того, не забудьте проверить, что ни один из ваших конфигурационных файлов вашего веб-сайта, связанных с этим конкретным хостом или виртуальным хостом, не имеет в них php_admin_value, которые отключают PHP, например:

 php_admin_value engine Off 

Когда вы сомневаетесь, прокомментируйте это …

 # php_admin_value engine Off 

И перезагрузите свой веб-сервер.

note для пользователей 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> 

О Боже! Я только что видел ваше опубликованное изображение снова, вы просто открываете свой php-файл в браузере. у вас есть open, использующий 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.

php7:

 sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.0-fpm sudo service apache2 restart 

Я знаю, это должно звучать глупо … но редко бывает.

Убедитесь, что вы пытаетесь выполнить php из

 **http://localhost/info.php** 

а не

 file:///var/www/info.php 

ps> вы можете заметить, что если вы пишете из оболочки

 php info.php 

он отвечает кодом (это означает php-функции) ..

Я решил это, удалив XAMPP и установив WAMP. Спасибо за помощь.

У меня была аналогичная проблема, но в моем случае решение было другим. мой файл, который содержал 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. Ну что ж.

Проверьте все пакеты, которые вы установили для php, используя: установленный список yum | grep remi

Установите все соответствующие пакеты php, особенно php-devel на вашем компьютере.

на моем ubuntu 14.04, apache 2.4, php 5.5.9 install, я попробовал с sample.php on / var / www / html (root по умолчанию), и он работал нормально. Таким образом, проблема была в моей конфигурации виртуальных серверов. Решение заключалось в том, чтобы включить в директорию def, содержащую .php, следующую строку:

  php_admin_flag engine on 

Я думаю, проблема в том, что он показывает код вместо результата, так это то, что он не будет локальным хостом. перепроверьте, к какому адресу ур идет. Собираетесь ли вы в локальный каталог файлов или на локальный хост.

из скриншота u отправил его на компьютер ур, а не на 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 на root.

Это было в моем .htaccess

 DirectoryIndex index.html index.htm 

index.html содержит PHP-код. По умолчанию PHP не будет обрабатывать файлы с расширениями, такими как htm *, как PHP-код.

Вы можете переопределить это, добавив следующее в .htaccess:

 <FilesMatch ".+\.html$"> SetHandler application/x-httpd-php </FilesMatch> 

Для новой настройки LAMP, запускающей php 7, отредактируйте файл /etc/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