Почему php отображается в браузере как текст

Обновлено: 04.07.2024

У меня есть следующий код на интерфейс (браузер на моем ноутбуке):

И этот простой PHP-код на сервере (сервер Apache на моем ноутбуке):

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

Я искал около трех часов и сделал следующее:

  1. (Пере) установил MAMP.
  2. Убедитесь, что сервер Apache действительно работает
  3. Убедитесь, что я захожу на сайт через Apache, а не открываю его как файл в браузере. Я делаю /localhost/

LoadModule php5_module modules / libphp5.so

Затем я начал читать документацию по PHP и нашел это, в котором описана проблема, которую я имею, и решение. Проблема в том, что, в отличие от libphp5.so, у меня нет файла mod_php.so или lib_perl.so в папке модулей. Я также искал их в Центре внимания, и он ничего не возвращал.

Итак. что еще мне нужно сделать / проверить? Заранее спасибо.

1 ответ

Хорошо, я понял это. Я полагаю, что проблема возникла из-за моего непонимания OS X в целом и Apache/MAMP в частности (я новичок в обоих!). В частности, я не осознавал, что OS X запускает свой собственный сервер Apache и что, когда вы устанавливаете MAMP, это, по сути, дает вам альтернативную установку (я думаю?). Я понял это, когда попытался запустить Apache из терминала, используя команду sudo apachectl -k start, и он сказал, что процесс уже запущен. Затем я немного погуглил и понял почему.

Затем я реализовал решение. Раньше у меня все было под User\Sites, и я возвращал скрипт PHP в виде обычного текста. Я переместил мои файлы в Applications/MAMP/htdocs. Затем я запустил MAMP PRO, который показал, что Apache работает на порту 8888. Поэтому я перешел на localhost:8888/

username/ и отправил форму, и скрипт PHP был обработан правильно, и я получил эхо-запрос.

Кто-то поправит меня, если мое понимание неверно. Но, по крайней мере, мой маленький проект работает сейчас.:)

Делаю для личного пользования небольшую программку, работающую в браузере, через HTML. Я немного знаком с HTML, но для нужных мне функций в программе хватает всяческих обучающих статей.
В одной папке лежат файлы: share.html, do_upload.php и папка image.


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

В чем причина того, что PHP скрипт не выполняется, а просто открывается, как в текстовом редакторе?

1c8e43012ba244fab1cf79ba5f76b061.jpg

Оценить 2 комментария

не слушайте советы установки Denwer или встроенного PHP. Поставьте по совету Роман Краббз OpenServer и используйте по инструкции. На русском языке. Вам будет и проще и удобнее.
Еще где-то читал, что формат php файла должен быть назван верхним регистром - *.PHP

Проверил . Ничего не поменялось .

IvanCher

Вам нужно понимать, что происходит, когда запрос доходит до веб-сервера.

Сперва веб-сервер (обычно Apache или Nginx) получают запрос и принимают решение, что делать с ним дальше. Если нет правила для такого запроса, то они просто попытаются найти файл и отдать его, как статический. В вашем случае так и происходит. Часто веб-серверу пишут правило типа "если запрос заканчивается на .php, то передай его на исполнение php (mod-php, php-fpm, php-fastcgi и т.п.), а полученный от php ответ верни клиенту (браузеру, как правило)".

Я использую во время разработки встроенный php-веб-сервер, но не вздумайте его использовать на живом проекте. На реальном сервере с проектом лучше использовать nginx+php-fpm.
В unix-подобных системах встроенный пхп-веб-сервер запускается очень просто:
- Через консоль(терминал) заходите в папку с проектом и пишете "php -S localhost:8000".
- После этого в браузере заходите на урл localhost:8000 и Ваш проект работает.
Если Вы работаете на windows, то быстрее осваивайте линукс\mac и разрабатывайте сразу на нормальных системах. Или, как я раньше делал, на виртуалке поднимайте сервер и на нем разрабатывайте.

Я написал HTML-страницу с помощью XAMPP на моем компьютере под управлением Windows, и все работает отлично на месте. Тем не менее, я хочу разместить контент на веб-сайте, и я не знаю, как это сделать. Здесь это как есть, с отображаемым кодом PHP, а не фактическим запуском.

Поддерживает ли github.io запуск PHP? Я читал, что это не так. Если да, где я могу разместить мой код, чтобы мои PHP и JavaScript могли работать, учитывая, что я указываю свой браузер на URL-адрес веб-страницы? Кроме того, XAMPP связал его с базой данных MySql, но я не уверен, как установить это на сервере.

Это похоже на простые вопросы для начинающего веб-разработчика, но я просмотрел Google и не нашел ответа. Спасибо.

спросил(а) 2016-02-15T09:07:00+03:00 5 лет, 9 месяцев назад

Чтобы развернуть php на сервере, вы должны проверить:

И не каждый сервер - это apache, и не каждый сервер - это узел, а не каждый. Просто спросите поддержку этого хостинга, потому что в некоторых случаях вам нужно "включить" PHP какой-нибудь причудливой кнопкой.

ответил(а) 2016-02-15T09:15:00+03:00 5 лет, 9 месяцев назад

Нет, Github Pages не имеет PHP, он предназначен только для размещения статических страниц. Он поддерживает Jekyll, статический генератор сайта (в котором он генерирует статические страницы один раз за push, которые затем размещаются как есть), но это все.

PHP/MySQL - это лишь один из множества возможных технологий веб-приложений, поэтому вы не можете ожидать, что он будет везде, где есть веб-хостинг. Он должен быть либо явно указан на веб-сайте хостинга, либо быть доступен для установки, если вы получите полноценный сервер (возможно, виртуальный) для запуска вашего веб-сайта.

Браузер-основанный JavaScript все равно будет выполняться клиентом, так как это не ответственность сервера за его запуск, а только доставку. Таким образом, он может быть размещен на страницах GitHub. Кроме того, могут использоваться и сторонние службы, которые не зависят от вашего собственного исполнения кода сервера: такие вещи, как системы комментариев, поиск (вы даже можете сделать клиентскую часть!) И аналитику.

Я искал решение, позволяющее работать $.bind и $.unbind без проблем в динамически добавленных элементах.

Поскольку on () делает трюк для присоединения событий, чтобы создать фальшивую отвязку на тех, к которым я пришел:

Похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:

@shmeeps: Где вы видели, что короткие теги устарели? Я сделал некоторые поиски и могу только найти рекомендации против них, ничего не сказать об устаревании. Предоставляемые для приложений, которые должны быть распространены, лучше использовать & lt; php в случае, если сервер хостинга не имеет их включен, но для приложений, где у вас есть полный контроль над сервером, на котором они будут работать, не вижу причин не использовать их. – ClarkeyBoy 28 October 2013 в 18:35 точка № 6 работала для меня .. локальный доступ не использует сервер Apache – KawaiKx 6 July 2014 в 16:24 пункт 2 работал для меня безопасным способом - apt-get purge apache2; apt-get install apache2 libapache-mod-php5 – ulkas 16 September 2014 в 21:41 @full_prog_full Попробуйте загрузить файл с расширением .php с содержимым <?php echo("Success"); ?> и посмотреть, приводит ли к нему доступ к файлу через веб-браузер в & quot; Success & quot; отображается без соответствующего кода PHP. – shmeeps 18 April 2016 в 03:29
  1. Раскомментировать эту строку
  2. Вставить пасту в конце

У меня был случай, когда я случайно начал разворачивать каталог файлов в корне. Он добавил файл .htaccess из моей папки с файлами, который блокирует все php

. Нижняя строка проверяет файл .htaccess на root.

Я нашел еще одну проблему, вызвавшую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в кодировке UTF-16 . Похоже, что PHP5 не может распознать тег <?php в 16-битной кодировке по умолчанию.

Для меня работала переустановка модуля mcrypt .

Это честно, может быть, потому, что я не правильно настроил PHP на моей системе. Но поскольку вопрос, который я задал по той же проблеме, был отмечен как дубликат этого вопроса, я мог бы ответить на него здесь. Интересно, почему голос? – b.g 17 October 2016 в 13:06 Этот ответ связан с linux, в котором тема, очевидно, использует окна – Raymond Nijland 24 April 2017 в 11:55

Убедитесь, что сценарий содержит

перед кодом, который должен быть выполнен. Между <? и php в этом не должно быть пробелов.

Я решил это, удалив XAMPP и установив WAMP. Спасибо за помощь.

Вставьте это в самое нижнее файла:

Затем найдите LoadModule и вставьте следующую строку:

Я запускаю Apache на Ubuntu, и моя проблема в том, что файл /etc/apache2/mods-available/php5.conf отсутствовал:

Я добавил его обратно, а php правильно обрабатывал файлы php.

О Боже! Я только что видел ваше опубликованное изображение снова, вы просто открываете свой php-файл в браузере. у вас есть open, использующий localhost url. если вы открываете файл непосредственно из своего каталога, он не будет выполнять php-код в любом случае.

включить php-код в вашем случае , вы используете <? , который является коротким кодом php для <?php

, по умолчанию короткие короткие коды php отключены.

также используют: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt , если вы являетесь пользователем ubuntu .

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