Я пытаюсь выполнить некоторый код PHP в проекте (используя Dreamweaver), но код не запускается.
Когда я проверяю исходный код, код PHP появляется в виде HTML-тегов (я вижу его в исходном коде). Apache работает правильно (я работаю с XAMPP), страницы PHP открываются правильно, но код PHP не выполняется.
Есть ли у кого-то предложение о том, что происходит?
Примечание: файл уже назван какfilename.php
Изменить: код ..:
<?
include_once("/code/configs.php");
?>
<?
вместо<?php
?<?
). Они устарели, на самом деле не работают во многих местах, и в остальном совершенно не нужны. Сохранение трех нажатий клавиш не является веской причиной возможного сбоя вашего кода, вероятно, на половине серверов, на которых он может работать.short_open_tag
настроек.<?=
), которые должны нормально работать на php 5.4+ независимо от настроек сервера.Ответы:
Похоже, что с вашей конфигурацией что-то не так, вот несколько вещей, которые вы можете проверить:
Убедитесь, что PHP установлен и работает правильно. Это может звучать глупо, но вы никогда не знаете. Простой способ проверить это запустить
php -v
из командной строки и посмотреть, возвращает ли информацию о версии или какие-либо ошибки.Убедитесь, что модуль PHP указан и не прокомментирован внутри httpd.conf вашего Apache. Это должно быть что-то вроде
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 для дальнейших советов по настройке .
источник
AddType application/x-httpd-php .php
. Большое спасибо!!apt-get purge apache2; apt-get install apache2 libapache-mod-php5
.php
расширением с содержимым<?php echo("Success"); ?>
и посмотреть, если при доступе к файлу через веб-браузер отображается «Успех» без соответствующего PHP-кода.php7:
источник
sudo a2enmod proxy_fcgi setenvif
создает три новых мода/mods-available/proxy.conf proxy_fcgi.load proxy.load
,sudo a2enconf php7.0-fpm
создает файл конфигурации./conf-available/php7.0-fpm.conf
После этого Apache2 может запустить модуль PHP7 как сервис быстрой CGI.Я использую Apache в Ubuntu, и моя проблема заключалась в том, что в
/etc/apache2/mods-available/php5.conf
файле не было этого:Я добавил его обратно и php правильно разбирал php файлы.
источник
Примечание для пользователей php 7, добавьте это в ваш файл httpd.conf:
источник
httpd.conf
Файл находится в/etc/apache2/httpd.conf
случае , если вы используете Ubuntu, это было быapache2.conf
в том же каталоге , что нужно изменить , для PHP7.Я нашел другую проблему, вызывающую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в
UTF-16
кодировке. Похоже, что PHP5 не может распознать<?php
тег в 16-битной кодировке по умолчанию.источник
Я публикую этот ответ, потому что мой интерфейс администратора Virtualmin / Webmin решил, что было бы неплохо отключить мой PHP-движок. Мне потребовалось некоторое время, чтобы найти решение, поэтому я решил поделиться им с вами, ребята:
Также убедитесь, что ни в одном из файлов конфигурации вашего сайта, относящихся к этому конкретному хосту или виртуальному хосту, нет php_admin_value, которые отключают PHP, например так:
Если вы сомневаетесь, прокомментируйте это ...
И перезапустите свой веб-сервер.
источник
/etc/apache2/mods-enabled/php7.conf
илиphp5.conf
sudo grep php_admin_value /etc/* -R
Вы просто открываете свой php файл в браузер. Вы должны открыть его, используя локальный 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 из
а не из
ps> вы можете заметить, что если вы пишете из оболочки
это ответ с кодом (это означает, что функции PHP) ..
источник
Это снова случилось со мной, когда сервер загружал HTML-файлы, а не обрабатывал их. Некоторое время я не пользовался веб-сервером apache на компьютере, а Ubuntu обновлялся, как две новые версии с изначально установленной LTS. Теперь это
Так что PHP работал после так:
Веб-сервер теперь разбирает php. Возможно, теперь нужно обновить некоторые веб-сайты, так как php7.0 теперь работает там, где он был до запуска php5. Ну что ж.
источник
Я решил это, удалив XAMPP и установив WAMP. Спасибо за помощь.
источник
Я столкнулся с этой проблемой на php 7.1, который поставляется с High Sierra (OS X 10.13.5),
/etc/apache2/httpd.conf
помогло редактирование со следующими изменениями:Раскомментируйте эту строку
Вставить следующее в конце
источник
на моем Ubuntu 14.04, apache 2.4, php 5.5.9 установить, я попытался с sample.php в / var / www / html (корень документа по умолчанию), и он работал нормально. Так что проблема была в моей конфигурации виртуальных серверов. Решением было включить в директорию def, содержащую .php, следующую строку:
источник
Убедитесь, что скрипт содержит
перед кодом, который должен быть выполнен. Там не должно быть места между
<?
иphp
в этом.источник
У меня была похожая проблема, но в моем случае решение было другим. мой файл, державший код PHP был назван «somename.html» изменил его на «somename.php» работали штраф
источник
Для новой настройки LAMP, работающего с php 7, отредактируйте файл /etc/httpd/conf/httpd.conf Примечание: обязательно сделайте резервную копию для него, прежде чем что-либо менять.
Вставьте это в самом низу файла:
Затем найдите LoadModule и вставьте следующую строку:
Эта строка просто попросит httpd загрузить модуль php 7
Затем перезапустите httpd
источник
Проверьте все пакеты, которые вы установили для php, используя:
Установите все соответствующие пакеты php , особенно php-devel на вашем компьютере.
источник
Это было в моем .htaccess
index.html содержит код PHP. По умолчанию PHP не обрабатывает файлы с такими расширениями, как htm *, как код PHP.
Вы можете переопределить это, добавив следующее в .htaccess:
источник
Я думаю, что проблема в том, что он показывает код вместо результата в том, что он не собирается на локальный хост. перепроверьте, по какому адресу вы идете. Собираетесь ли вы в локальный файловый каталог или на локальный хост.
от скриншота, который вы послали, он собирается на ваш компьютер, а не на localhost.
"file: ///" это должно быть "localhost /"
источник
Переустановка
mcrypt
модуля у меня сработала.источник
У меня был случай, когда я случайно начал распаковывать каталог с файлами в корне. Он добавил файл .htaccess из моей папки с файлами, который будет блокировать все php
В итоге проверьте файл .htaccess в корневом каталоге.
источник
Если у вас есть такая конфигурация:
Раскомментируйте следующие строки в вашем httpd.conf
Меня устраивает
источник
Добавьте
AddType application/x-httpd-php .php
в ваш файл httpd.conf, если вы используете Apache 2.4источник
Просто потратил часы, пытаясь заставить PHP 5 работать с Apache 2.4 на Windows 10 . Наконец для меня это была опечатка в httpd.conf
LoadModule
. Обратите внимание на написание и точный путь модуля через последний ответ в этой ветке apachelounge от denny2018 . Спасибо!Я имел,
LoadModule php5_module "c:/php/php5apache2.dll"
но правильно для Apache 2.4 является:Так что я тоже пропустил
_4
раньше (для apache 2.4 ). Полный фрагмент, который работал для меня:Только что попробовал PHP 7 . Там читается
LoadModule
строка в httpd.conf для Apache 2.4В настоящее время руководство php показывает,
c:/php/php5apache2.dll
что, конечно, нужно настроить.источник
в моем случае (Apache / 2.4.34),
после раскомментирования конкретного модуля
из
моя проблема исчезла
источник
Если мы находимся на той же странице, сделайте следующее
sudo apt-get install php -y
sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y
Чтобы включить PHP 7.2 FPM в Apache2, сделайте:
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
обновление 2: Apache загружает .php файл вместо рендеринга
После этого я столкнулся с вышеуказанным вопросом. Есть похожие вопросы, как это .
Я не знаю почему, но это произошло только для моих файлов .php в
/var/www/html/
корневой папке. все было хорошо для подкаталогов. (например WordPress и phpmyadmin работал нормально)Так вот мое решение. Я решил включить модуль php. поэтому я запустил эту команду:
a2enmod php7.2
но я получил эти ошибки:
поэтому я решил отключить mpm, выполнив следующие команды:
затем перезапустите apache:
systemctl restart apache2
затем включите php7.2 (моя установленная версия):
sudo a2enmod php7.2
и сейчас все отлично работает.
источник
Другой возможной причиной этой проблемы может быть то, что вы пытаетесь запустить скрипт в «пользовательском каталоге» из
UserDir
модуля. Запуск PHP-скриптов в пользовательских каталогах по умолчанию отключен. Вы столкнетесь с этой проблемой, если скрипт находится вpublic_html
каталоге в вашей домашней папке, и вы пытаетесь получить к нему доступ изhttp://localhost/~your_username
.Чтобы это исправить, откройте
/etc/apache2/mods-enabled/php7.2.conf
. Вы должны прокомментировать или удалить блок тегов внизу, который читаетисточник
файл, который вы помещаете в / var / www / html /, должен иметь .php forexample example.php, если это пример, он не работает, но если вы измените его на example.php, он будет работать.
источник