Apache2 выводит php код в браузере а не выполняет

Обновлено: 06.07.2024

В phpinfo.php вы добавили несколько заголовков, которые делают файл .php читабельным? попробуйте простой скрипт: <?php echo "Hello world"; ?> это показывает Привет мир? если он отображает код, то как @RabNawaz сказал, что ваш сервер настроен неправильно!

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

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

@imulus в моем случае это было включено с модами в / etc / apache2 / Для пользователей Ubuntu, которые сталкиваются с такой же проблемой: не забудьте установить режим php с помощью sudo apt-get intsall libapache2-mod-php если вы забыли это сделать ранее. Затем включите его с помощью a2enmod php7.0 (или вашей версии php) и не забудьте перезапустить apache с помощью service apache2 reload @Rafal означает sudo apt-get install libapache2-mod-php конечно. В моем случае для php7 мне пришлось сделать a2enmod php7.0 и это решило мою проблему. Потребовался целый день, чтобы добраться до этого поста как-то! @Rafal sudo apt-get install libapache2-mod-php решил мою проблему, спасибо! В mods-enabled нет файла с именем php , что теперь? Этот ответ не объясняет вещи я вижу только файлы .conf и .load в директории с поддержкой модов. запуск a2enmod php7.0 вызывает у меня следующие ошибки: Considering conflict php5 for php7.0 , Considering conflict mpm_worker for mpm_prefork и т. д., а перезапуск apache2 завершается неудачно

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

Добавьте это к нижней части /etc/apache 2/apache2.conf

Запустите это с терминала:

Тогда не забудьте перезапустить Apache, чтобы он знал, что вы изменили материал:

Я должен был сделать это для PHP 5.6 на OSX El Capitan. (Используя стоковую apache, но доморощенный php56) Это единственное решение, которое сработало для меня. Работает и в Windows (то есть вам не нужно запускать команды терминала в Windows). Спасибо, что спасли меня от бесконечных поисков. В моем случае строка начиналась с php7_module - но в остальном у меня это сработало!

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

--reinstall для меня, добавив --reinstall в apt-get. Возможно установка модуля php / apache была грязной. Это сработало для меня на сервере Ubuntu 16.04 Digital Ocean. Спасибо это приводит меня к следующим ошибкам: Considering conflict php5 for php7.0 , Considering conflict mpm_worker for mpm_prefork и т. д . и перезапуск apache2 завершается неудачно

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

Мой был похож. Я сделал «sudo apt-cache search ^ libapache2 | grep php», который находит соответствующие пакеты, а затем установил «sudo apt-get install libapache2-mod-php». libapache2-mod-php7.0 уже установлен.

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

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

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

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

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

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

Также, если вы столкнулись с глупостью CORS: запустите sudo a2enmod headers sudo a2enmod rewrite (не забудьте перезапустить Apache).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Достаточно часто у начинающих разработчиков встречаются проблемы с запуском PHP-кода. Симптомы и причины могут быть самые разнообразные. Ниже приведены наиболее часто встречающиеся симптомы и их возможные причины.

Вы открыли страницу/файл в браузере и увидели на странице PHP-код. Возможно, вперемешку с другими элементами страницы.
Либо вместо страницы файл "скачался", а в нём Вы увидели исходный код PHP.

Для начала попробуйте выполнить тестовый скрипт. Сохраните в отдельный файл test.php следующий код (только этот код и ничего больше):

    Возможно, при выполнении Вашего PHP кода произошла критическая ошибка. Если отключена директива display_errors, то белая страница - реакция сервера на критическую ошибку.
    Если так, то для начала Вам необходимо узнать, какая именно произошла ошибка.
      Попробуйте добавить в самое начало кода следующие строки:


    Код не выполняется / не работает / выводится в браузер / пустая белая страница
    php Я установил apache2 и php Написал скрипт он выводился как код, прописал sudo find.

    PHP Код из Бд ( sqlite3) выводится в браузер, а не выполняется
    Собственно, проблема в том, что код при подстановке из бд в файл не выполняется, а только.

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

    в линуксе может быть белый экран когда прав нет , тогда
    дополню предыдущий пост - ошибки могут все равно не отображаться, если там стоит другой владелец, необходимо сначала изменить самого владельца и уже затем изменить права на папку/файл
    Можно рекурсивно обойти всю папку и сразу задать всем владельца/права доступа, чтобы не прописывать для каждого файла

    такие команды применят смену владельца и прав на доступ к папке и всем вложенным файлам

    P.S. пояснения
    -R - рекурсивный обход
    USER - пользователь, на которого вы хотите сменить владельца (к примеру administrator, www-data, root)
    path/to/dir - путь к директории
    755 - права на доступ на чтение и запись

    а "смена прав на доступ ВСЕГО, что в папке".
    во вторых, в цифре 755 перовая цифра - права владельца, вторая цифра - права группы, к которой принадлежит владелец, и третья - права "других". при этом цифра является простой суммой из трех чисел:
    4 - разрешено читать
    2 - разрешено писать
    1 - разрешено выполнять.

    то есть, давая 4, разрешаем читать. хотим разрешить еще и писать - добавляем двоечку и получаем 6, а хотим разрешить исполнять - добавляем еще единичку и получаем 7.

    таким образом - 755 это "владельцу можно все, группе можно читать и исполнять, и ЧУЖИМ (точнее, всем остальным) тоже можно читать и исполнять". В таком случае возни кает резонный вопрос - а на кой вообще всему этому еще и владельца назначать? Если ИТАК можно всем кому ни попадя читать и выполнять!?

    Да и вообще, в свете "во первых" - а на кой самим файлам php бит исполнения? То есть, им права 7 - не нужны! Отнимаем единичку, осталось 6. Да и права на запись - зачем? Чтоб апач мог перезаписывать сам файлы php? Это действительно то, что нужно? Или же права на запись тоже долой? Отнимаем двоечку, осталось 4. В итоге - апач читать файлы сможет, а ни писать в них (в сам php файл), ни исполнять их - не сможет. Но и не надо ему это!

    Посему на файлы (именно на файлы) - с головой достаточно прав 400

    А вот на директории, увы, нужен бит исполнения, иначе в них войти будет невозможно. Но опять же - (как было в кино - "достаточно одной таблэтки!") - только владельцу! А остальным - "накося выкуси"!

    То есть, на директории - права 500

    Ну а теперь, "потанцуем", чтоб не вручную, а одним махом (ну, "двумя махами"):

    в phpinfo.php вы добавили заголовки, которые делают файл .php читаемым? попробуйте простой скрипт: <?php echo "Hello world"; ?> он отображает Hello world? если он отображает код, то как @RabNawaz сказал, что ваш сервер настроен неправильно!

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

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

    @imulsion в моем случае это были моды с поддержкой в ​​/ etc / apache2 / В моем случае с php7 мне пришлось это сделать, a2enmod php7.0 и это решило мою проблему. Чтобы каким-то образом добраться до этого поста, потребовался целый день! Там нет файла называется php в то mods-enabled , что сейчас? Этот ответ не объясняет материал

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

    Сработал для меня, добавив --reinstall в apt-get. Возможно, установка модуля php / apache была грязной. Это работает для меня на Digital океана Ubuntu 16,04 сервер Спасибо это дает мне следующие ошибки:, Considering conflict php5 for php7.0 и Considering conflict mpm_worker for mpm_prefork т.д . и сбой перезапуска apache2 Если получится Considering conflict php5 for php7.2 перейти /etc/apache2/mods-available и удалить php5.*

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

    Добавьте это в конец /etc/apache2/apache2.conf

    Запустите это с терминала:

    Затем не забудьте перезапустить Apache, чтобы он знал, что вы что-то изменили:

    Мне пришлось сделать это для PHP 5.6 на OSX El Capitan. (Используется стандартный apache, но доморощенный php56) Работает и в Windows (это означает, что вам не нужно запускать команды терминала в Windows) Спасибо, что избавили меня от бесконечных поисков. В моем случае строка начиналась с php7_module - но в остальном это сработало для меня!

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

    Мой был похож. Я выполнил "sudo apt-cache search ^ libapache2 | grep php", который нашел соответствующие пакеты, а затем установил "sudo apt-get install libapache2-mod-php". libapache2-mod-php7.0 уже установлен.

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

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

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

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

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

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

    введите описание изображения здесь

    $ sudo service apache2 перезапуск

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

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

    Также, если вы столкнетесь с глупостью CORS: запустите sudo a2enmod headers и sudo a2enmod rewrite (не забудьте перезапустить Apache).

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

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

    если модуль userdir включен и ваш сайт находится в userdir (

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

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

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

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

    Не хватало следующего

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

    Для PHP7 и Apache2.4 это все, что вам нужно сделать:

    Идем в самый низ и вставляем следующее (само собой):

    Apache теперь будет выполнять все с помощью PHP. Если все, что у вас есть, это файлы html и php, то это вам подойдет. Если у вас есть другие типы файлов, вам необходимо адаптировать файл, соответствующий вашей ситуации. Я тестировал это с помощью phpMyAdmin, и, похоже, проблем . пока нет.

    Мне не было нужно ничего из того, о чем здесь говорят все, о чем здесь говорят. Когда я поместил «AddType Application . » в нужное место, Apache просто сказал мне, что этот модуль уже загружен, и пропустил его.

    Моя установка была сделана следующим образом:

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

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

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

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

    Никогда не думал, что я буду просить помощи в этим, но я уже хз что делать.

    На VPS есть apache и PHP5.6 - по умолчанию все работает. После манипуляций по Инструкции перестал работать пых - браузер выводит содержимое php файла.

    • Модуль включил: a2enmod php5;
    • Симлинки есть;
    • .htaccess нет.

    Куда еще смотреть?


    Очевидно же, в конфигурацию апача. Точнее сказать сложно, но смотри на все, что как-то связано с пхп.


    Та я просто не знаю, на что я уже смотрел, а на что еще нет))) Все основные варианты перебрал.

    Все основные варианты перебрал.

    Тогда перебирай неосновные варианты, а также те, о которых ты раньше не думал.

    Вот серьезно, проблема явно в конфигурации апача, и если ты не справишься сам, то за тебя не справится никто.

    Deleted ( 10.09.17 00:43:47 )
    Последнее исправление: Deleted 10.09.17 00:43:54 (всего исправлений: 1)


    проблема в твоем модуле пэхапэ, оно не работает

    libapache2-mod-php установлен, права на исполнение у php файлов есть?


    Установлен. Прав на исполнение не было, но это все равно не помогло.


    Переустанавливать PHP не могу, ispmanager в таком случае улетит.

    Оно включает пхп посайтово, прямо в конфиге виртхоста, за счет чего можно какие-то сайты запускать на mod_php, а какие-то через cgi/fastcgi. Но если включать пхп до этого, т.е. глобально в conf.d или mods-enabled, то могут быть и такие проблемы как у тебя. Так что ищи, где a2enmod тебе напортачил, и исправляй.


    А куда смотреть? :)

    Что в файле /etc/apache2/mods-enabled/php5.conf ?

    PHP не работает глобально или для какого-то одного домена?


    Ладно. Закрыто. Спасибо всем кто откликнулся. Мне нервов не хватило, то я пошел путем наименьшего сопротивления - переустановил linux на VPS-е.

    Я пыхыпе не знаю и знать не хочу, но смотря в туториал, там тащиться архаичный пятый пыхыпе, тогда как у тебя может быть оказаться установлено их несколько вместе с более новым, из-за чего все могло и поломатья.

    Читайте также: