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 72

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