Apache показывает php код вместо выполнения
Я недавно пытался установить php и apache на моем компьютере. Через много часов они установлены. Я внес изменения в файл httpd.conf и php.ini файлы, как все говорят. Затем я создал простой PHP-скрипт:
<?php phpinfo(); ?>
но когда я пытаюсь запустить его с http://127.0.0.1/phpinfo.php
он просто показывает исходный код вместо выполнения. Я использую apache2, php5 и windows vista. Я искал по всему интернету без успеха и почти бьюсь головой о стену. Мочь кто-нибудь спасет меня от сотрясения мозга?
ОТРЕДАКТИРОВАННЫЕ СТРОКИ:
PHP.INI:
short_open_tag = On
HTTPD.CONF
LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHPIniDir "C:/php"
20 ответов:
вы должны включить php! Проверьте папку
mods-enabled
в каталоге Apache (по умолчанию: /etc/ apache2/), чтобы увидеть, если вы найдете файл с именемphp
. Я не помню расширение, но я думаю, что это.so
.зарегистрироваться
var/log/apache2/error.log
чтобы увидеть, если у вас есть какие-либо ошибки.
Вау, много решений здесь! Вот что я сделал Ubuntu 16.04:
sudo apt-get install php libapache2-mod-php sudo a2enmod mpm_prefork && sudo a2enmod php7.0 sudo service apache2 restart
для PHP 7 (может применяться и к предыдущим версиям), но мне пришлось это сделать:
добавьте это в нижнюю часть /etc/apache2 / apache2.conf
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
запустить из терминала:
sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && sudo a2enmod php7
тогда не забудьте перезапустить Apache, чтобы он знал, что вы изменили материал:
sudo service apache2 restart
Это резюме от:https://www.atlantic.net/community/howto/try-php7-lamp-ubuntu-14-04/
открыть файл
/etc/apache2/httpd.conf
, и
#LoadModule php5_module libexec/apache2/libphp5.so
на
LoadModule php5_module libexec/apache2/libphp5.so
так что просто раскомментируйте загрузку модуля PHP в
httpd.conf
Я нашел это, чтобы решить мою проблему, связанную. Я добавил его к соответствующему :
<IfModule mod_php5.c> php_admin_flag engine on </IfModule>
другой ответ, который работал для меня. Разве что, установить
[sudo] apt-get install libapache2-mod-php5.X
хорошо, если вы пробовали то, что вам сказали выше или раньше(которые являются возможными причинами), и он по-прежнему отображает код вместо его выполнения, то есть одна вещь, которую вы делаете неправильно, которая не была решена. Url, который вы использовали для доступа к вашему PHP-коду; некоторые люди пытаются выполнить свой php-код, просто перетащив его .php-файл в веб-браузере. это неправильная практика и может привести к такого рода проблемы. если вы сохранили файл как "тест.php " в the C://wamp/www папка, то вы должны получить доступ к этому файлу таким образом: значение localhost://тест.РНР. такая ошибка возникнет, когда вы получите доступ к нему таким образом: localhost://wamp/www/test.php
надеюсь, что я помог кому-то там. о/ -Дэниел
публикация того, что сработало для меня в случае, если кто-то поможет в будущем, хотя это необычный случай.
Я установил обработчик, чтобы заставить мой веб-хост использовать более высокую версию php, чем по умолчанию. Там был 5.1, но я хотел 5.6, поэтому у меня было это:
<FilesMatch \.php$> SetHandler php56-cgi </FilesMatch>
в моем .файл htaccess.
при попытке запустить мой сайт локально, что там вызвало php-код для вывода в браузер. Удаление его решило проблему.
вы можете удалить свою .htaceess файл и пусть система создает новый (пустой или основной). Возможно, некоторые строки, которые вы добавили, являются неверными утверждениями, или что-то еще внутри вызывает проблему. Затем вы можете добавить строку за строкой из вашего старого .htaccess чтобы увидеть, что вызвало проблему.
Это сработало для меня. Строки, говорящие машине не отображать расширения php, были проблемой в моем случае (RewriteCond и RewriteRule). Мой старый .htaccess файл работал просто отлично на общем сервере, но эта проблема появилась, когда я переключился на VPS.
если модуль userdir включен и ваш сайт находится в userdir (~/public_html), вы должны проверить /etc/apache2/mods-enabled/php5.конф. Следующая часть заставляет его работать (на Ubuntu 14.10 utopic):
# Running PHP scripts in user directories is disabled by default # # To re-enable PHP in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. # <IfModule mod_userdir.c> # <Directory /home/*/public_html> # php_admin_flag engine Off # </Directory> # </IfModule>
Если вы являетесь пользователем ubuntu, после установки apache необходимо выполнить следующую команду в fresh installation
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
в моем случае работает отлично.
что сработало для меня:
в активном httpd.конф, найди
<IfModule mime_module> ... </IfModule>
не хватало следующего
AddType application/x-httpd-php .php AddHandler application/x-httpd-php .php
после перезагрузки apache, .PHP файлов теперь корректно обрабатываются.
спасибо другим в этой теме за их предложения. После выполнения упомянутых шагов я обнаружил, что сервер apache не смог начать сообщать о синтаксической ошибке в на
/etc/apache2/mods-enabled
. Оказывается, что оба php7.0 и php7.1 были включены.a2dismod php7.0 systemctl restart apache2
и php снова отображается правильно.
ни один из вышеперечисленных не применялся и не работал для меня... PHP7, Apache Httpd 2.2 на CentOS 6
факт в том, что я установил (все с yum) php перед Apache... вы должны сделать обратное: всегда устанавливайте сначала Apache, затем PHP, а затем он работает... Действительно, Вы, вероятно, отсутствует
libphp7.so
иlibphp7-zts.so
in/etc/httpd/modules/
Я был в состоянии восстановить в любом случае без удаления PHP. Я добавил волшебную строку в
/etc/httpd/conf/httpd.conf
:AddType application/x-httpd-php .php
А потом бегом:yum install php php-mysql
это происходило со мной также при запуске $_POST в MAMP. Все мои .файлы ini и httpd были настроены правильно. Если вы выполняете обработку форм и у вас есть html-документ и публикуете информацию в php formhandler под управлением $POST, убедитесь, что вы запускаете html-файл из localhost через свой сервер, а не только локально.
это был ярлык, который я сделал для запуска html-документов, просто щелкнув html-файл в моем каталоге и запустив его в моем веб-браузере, когда в реальность чтобы проверить, обрабатывается ли php в вашей форме, вы должны запустить свой html через свои серверы. Очень простой протокол, который я пропустил.
пример:
неправильно:
file:///Applications/MAMP/htdocs/form/form.html
правильно:
http://localhost:your port number/form/form.html
теперь php должен быть обработан, как только вы нажмете кнопку отправки
у меня была та же проблема, вызванная конфигурацией Debian/ Ubuntu по умолчанию модуля
suphp
. Он содержалsuPHP_Engine off
для целого /usr / share, что привело к отображению источников php в браузере. Деактивация с помощьюa2dismod suphp
был промежуточным решением.
У меня была та же проблема. Когда я запускаю php-файл, веб-браузер показал мне php-код вместо его выполнения. Я пробовал много раз: удаление/переустановка wampserver64, работа с настройками/модулями PHP/Apache и т. д. Через 2 дня: я понял, что когда я попытался запустить php-файл в notepad++, нажав комбинацию по умолчанию "ctrl + alt + shift + R" для chrome. Он пытался выполнить мой php-файл, например: "file///C:/wamp64/www/bla/bla.."в адресной строке моего браузера. Это была моя проблема. Я внес изменения в соответствии со страницей настройка Notepad++ для запуска php на локальном хосте?. Моя проблема была решена. Но уже через 2 дня..
запустите Xampp (apache) от имени администратора. В google chrome тип:
localhost/<insert folder name here>/<insert file name>
т. е. если папка, которую вы создали "LearnPhp", файл "chapter1.РНР" введите
localhost/LearnPhp/chapter1.php
Я создал эту папку в папке xampp в папке htdocs, которая создается при загрузке xampp.
решение Debian 9:
touch /etc/apache2/conf-available/php.conf
добавить в файл следующие строки:
выполнить:<IfModule mod_php5.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> </IfModule> <IfModule mod_php.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> </IfModule>
a2enconf php && service apache2 restart
несколько раз, если у вас есть PHP версии конфликтов это происходит Чтобы преодолеть это, пожалуйста, выполните следующие действия
Шаг 1: Список Yum установлен | grep 'php'
Если у вас есть несколько версий php, таких как php 5.6 и php 7.0, этот конфиликт произойдет
Шаг 2: yum удалить * * ваша версия php**
Шаг 3: затем перезапустите apapche
/etc/init.d/httpd restart
илиservice apache2 restart