Подтвердить что ты не робот

Apache показывает php-код вместо выполнения

Недавно я пытался установить php и apache на свой компьютер. Через много часов они установлены. Я изменил файлы httpd.conf и php.ini, как все говорят. Затем я создал простой php script:

<?php phpinfo(); ?>

Но когда я пытаюсь запустить его с помощью http://127.0.0.1/phpinfo.php, он просто показывает исходный код вместо выполнения. Я использую apache2, php5 и windows vista. Я безуспешно искал по всему Интернету и почти ударяю головой о стену. Может ли кто-нибудь спасти меня от сотрясения?

EDITED LINES:

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"
4b9b3361

Ответ 1

Вы должны включить php! Проверьте папку mods-enabled в каталоге Apache (по умолчанию:/etc/apache2/), чтобы узнать, найден ли файл с именем php. Я не помню расширение, но я думаю, что он .so.

Также проверьте var/log/apache2/error.log, чтобы увидеть, есть ли у вас какие-либо ошибки.

Ответ 2

Ничего себе, здесь много решений! Вот что я сделал на Ubuntu 16.04:

sudo apt-get install php libapache2-mod-php
sudo a2enmod mpm_prefork && sudo a2enmod php7.0
sudo service apache2 restart

Ответ 3

Для PHP 7 (может применяться и к предыдущим версиям), но я должен был сделать это:

Добавьте это к нижней части /etc/apache 2/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/

Ответ 4

откройте файл

/etc/apache2/httpd.conf

и измените

#LoadModule php5_module libexec/apache2/libphp5.so

в

LoadModule php5_module libexec/apache2/libphp5.so

Итак, просто не выполняйте загрузку модуля PHP в httpd.conf

Ответ 6

Другой ответ, который работал у меня. Это значит, что для установки [sudo] apt-get install libapache2-mod-php5.X

Ответ 7

Хорошо, если вы пробовали то, что вам сказали выше или ранее (это возможные причины), и он все еще отображает код вместо его выполнения, тогда есть одна вещь, которую вы делаете неправильно, которая не была устранена, URL-адрес, который вы использовали для доступа к вашему php-коду; некоторые люди пытаются выполнить свой php-код, просто перетащив файл .php в веб-браузер. это неправильная практика и может привести к этой проблеме. если вы сохранили файл как "test.php" в папке C://wamp/www, вы должны получить доступ к этому файлу следующим образом: локальный://test.php. такая ошибка возникает при доступе к ней следующим образом: localhost://wamp/www/test.php

Надеюсь, я помог кому-то там. о / ~ Daniel

Ответ 8

Публикация того, что сработало для меня в случае, помогает кому-то по дороге, хотя это необычный случай.

Я установил обработчик, чтобы заставить мой веб-хост использовать более высокую версию php, чем их значение по умолчанию. Было 5.1, но я хотел 5.6, поэтому у меня было это:

<FilesMatch \.php$>
    SetHandler php56-cgi
</FilesMatch>

в моем файле .htaccess.

При попытке запустить мой сайт локально, при наличии этого в php-коде будет выведено в браузер. Удаление этого решения проблемы.

Ответ 9

Вы можете удалить свой файл .htaceess и позволить системе создать новый (пустой или базовый). Возможно, некоторые строки, которые вы добавили, являются неправильными инструкциями или что-то еще внутри, вызывает проблему. Затем вы можете добавить строку за строкой из старого файла .htaccess, чтобы узнать, что вызвало проблему.

Это сработало для меня. Линии, указывающие на то, что машина не отображает расширения php, были проблемой в моем случае (RewriteCond и RewriteRule). Мой старый файл .htaccess работал нормально на общем сервере, но эта проблема возникла, когда я переключился на VPS.

Ответ 10

Спасибо другим в этой теме за их предложения. Следуя упомянутым шагам, я обнаружил, что сервер apache не смог начать сообщать о синтаксической ошибке в файле load в /etc/apache2/mods-enabled. Оказывается, что оба php7.0 и php7.1 были включены.

a2dismod php7.0
systemctl restart apache2

и PHP отображается правильно снова.

Ответ 11

если модуль userdir включен и ваш сайт находится в userdir (~/public_html), вы должны проверить /etc/apache 2/mods-enabled/php5.conf. Следующая часть заставляет его работать (на Ubuntu 14.10 utopic):

# Running PHP скриптs 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>

Ответ 12

Если вы пользователь ubuntu, после установки apache необходимо запустить следующую команду в новой установке

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

В моем случае отлично работает.

Ответ 13

Что сработало для меня:

В активном httpd.conf найдите

<IfModule mime_module>
...
</IfModule>

В нем отсутствовали следующие

AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php

После перезапуска apache файлы .php правильно разобраны.

Ответ 14

ничего из вышеперечисленного не применимо и не работает для меня... PHP7, Apache Httpd 2.2 на CentOS 6

Дело в том, что я установил (все с yum) php ПЕРЕД Apache... вы должны сделать наоборот: сначала всегда устанавливайте Apache, затем PHP, а затем он работает... Действительно, вам, вероятно, не хватает libphp7.so и libphp7-zts.so в /etc/httpd/modules/

Я смог восстановить в любом случае без удаления PHP. Я добавил волшебную строку в /etc/httpd/conf/httpd.conf: AddType application/x-httpd-php.php и затем запустил: yum install php php-mysql

Ответ 15

Это происходило со мной и при запуске $_POST в MAMP. Все мои файлы .ini и httpd были настроены правильно. Если вы выполняете обработку формы, и у вас есть html-документ и размещаете информацию в обработчике php form, работающем под $POST, убедитесь, что вы запускаете html файл с localhost через ваш сервер, а не только локально.

Это был ярлык, который я сделал для запуска html-документов, просто нажав html файл в моем каталоге и запустив его в своем веб-браузере, когда на самом деле, чтобы проверить, обрабатывается ли php в вашей форме, вы должны запустить html через ваших серверов. Очень простой протокол, который я пропустил.

Пример:

Неверно: file:///Applications/MAMP/htdocs/form/form.html

Вправо: http://localhost:your port number/form/form.html

Теперь php следует обработать, как только вы нажмете кнопку отправки

Ответ 16

У меня была та же проблема, вызванная настройкой по умолчанию модуля Debian/Ubuntu модуля suphp. Он содержал suPHP_Engine off для целых /usr/share, в результате чего источники php отображались в браузере. Временным решением было деактивация с помощью a2dismod suphp.

Ответ 17

У меня была та же проблема. Когда я запускаю php файл, веб-браузер показал мне PHP-код вместо его выполнения. Я много раз пробовал: удалять/переустанавливать wampserver64, работать с настройками/модулями PHP/Apache и т.д. Через 2 дня: я понял, что когда я попытался запустить php файл в блокноте ++, нажав комбинацию по умолчанию "ctrl + alt + shift + R" для хром. Он пытался выполнить мой php файл, например: "file///C:/wamp64/www/bla/bla.." в моей адресной строке Chrome. Это была моя проблема. Я внес изменения в соответствии со страницей Настройка Notepad ++ для запуска php на localhost?. Моя проблема решена. Но через 2 дня..

Ответ 18

Запустите Xampp (apache) в качестве администратора. В google chrome type:

localhost/<insert folder name here>/<insert file name>

то есть. если созданная папка "LearnPhp", файл "chapter1.php", затем введите

localhost/LearnPhp/chapter1.php

Я создал эту папку в папке xampp в папке htdocs, которая создается при загрузке xampp.

Ответ 19

Решение 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

Ответ 20

Иногда, если у вас есть конфликт версий php, случается, чтобы преодолеть это, пожалуйста, выполните следующие действия

Шаг 1: список Yum установлен | grep 'php'

если у вас есть несколько версий php, таких как php 5.6 и php 7.0, этот конфликт произойдет

Шаг 2: ням удалить ** вашу версию PHP **

Шаг 3: Затем перезапустите apapche /etc/init.d/httpd restart или /etc/init.d/httpd restart service apache2 restart

Ответ 21

Apache/phpmyadmin - показывает код php вместо выполнения исправленной проблемы

1. Открыл php5.6 conf или php7.x conf

# следующая команда:

$ sudo vi/etc/apache2/mods-enabled/php5.6.conf

2. Прокомментировал следующие строки

enter image description here

3. Перезапустил сервер

$ sudo service apache2 restart

4 Наслаждайтесь :)

Ответ 22

Apache показывает php-код вместо того, чтобы выполнять заданный вопрос.

1. Открыл php5.6 conf или php7.x conf

# следующая команда:

$ sudo vi/etc/apache2/mods-enabled/php5.6.conf

2. Прокомментировал следующие строки

enter image description here

3. Перезапустил сервер

$ sudo service apache2 restart

4 Наслаждайтесь :)