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



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



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



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



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



Edit:
код..:



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


The print

1334   24  

24 ответов:

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

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

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

  3. убедитесь, что httpd Apache.файл conf имеет тип PHP MIME в нем. Это должно быть что-то вроде 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-файлы.

php7 :

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

Я нашел еще одну проблему, вызывающую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в 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.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. О что ж.

на моем 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

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

Вы можете изменить это, добавив следующее .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 со следующими изменениями помогли:

  1. раскомментировать эту строку

    LoadModule php7_module libexec/apache2/libphp7.so
    
  2. вставить следующие в конце

    <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.confLoadModule. Обратил внимание на написание и точный путь модуля через последний ответ в этом 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

    Ничего не найдено.