Как открыть php файл в браузере через apache
вы должны включить php! Проверьте папку mods-enabled в каталоге Apache (по умолчанию: / etc/ apache2/), чтобы узнать, есть ли файл с именем php . Я не помню расширение, но я думаю, что это .so .
зарегистрироваться var/log/apache2/error.log чтобы узнать, есть ли у вас какие-либо ошибки.
Вау, здесь много решений! Вот что я сделал Ubuntu 16.04:
для PHP 7 (может применяться и к предыдущим версиям), но мне пришлось это сделать:
добавьте это в нижнюю часть /etc/apache2 / apache2.conf
запустить из терминала:
тогда не забудьте перезапустить Apache, чтобы он знал, что вы изменили материал:
другой ответ, который работал для меня. Это, чтобы установить [sudo] apt-get install libapache2-mod-php5.X
хорошо, если вы пробовали то, что вам сказали выше или раньше(что является возможными причинами), и он по-прежнему отображает код вместо его выполнения, то есть одна вещь, которую вы делаете неправильно, которая не была решена. Url, который вы использовали для доступа к вашему php-коду; некоторые люди пытаются выполнить свой php-код, просто перетащив его .php-файл в веб-браузере. это неправильная практика и может привести к такого рода проблемы. если вы сохранили файл как "тест.php " в C://wamp/www папка, то вы должны получить доступ к этому файлу таким образом: значение localhost://тест.РНР. такая ошибка возникнет, когда вы получите доступ к нему таким образом: localhost://wamp / www / test.в PHP
надеюсь, я помог кому-то там. о/
публикация того, что сработало для меня, в случае, если помогает кому-то по дороге, хотя это необычный случай.
Я установил обработчик, чтобы заставить мой веб-хост использовать более высокую версию php, чем по умолчанию. Был 5.1, но я хотел 5.6, поэтому у меня было это:
в моем .файл htaccess.
при попытке запустить мой сайт локально, что там вызвало вывод php-кода в браузер. Удаление его решило проблему.
вы можете удалить свою .htaceess file и пусть система создает новый (пустой или базовый). Возможно, некоторые строки, которые вы добавили, являются неправильными утверждениями или что-то еще внутри вызывает проблему. Затем вы можете добавить строку за строкой из своего старого .реврайт чтобы увидеть, что вызвало проблему.
Это сработало для меня. Строки, говорящие машине не отображать расширения php, были проблемой в моем случае (RewriteCond и RewriteRule). Мой старый .реврайт файл работал просто отлично на общем сервере, но эта проблема появилась, когда я переключился на VPS.
если модуль userdir включен и ваш сайт находится в userdir (
/public_html), вы должны проверить /etc/apache2/mods-enabled/php5.conf. Следующая часть заставляет его работать (на Ubuntu 14.10 utopic):
Если вы являетесь пользователем ubuntu, после установки apache необходимо выполнить следующую команду в новой установке
в моем случае работает отлично.
что сработало для меня:
не хватало следующего
после перезапуска apache,.php файлы правильно проанализированы.
спасибо другим в этой теме за их предложения. После упомянутых шагов я обнаружил, что сервер apache не смог начать сообщать о синтаксической ошибке в на /etc/apache2/mods-enabled . Оказывается, что оба php7.0 и php7.1 были включены.
и php снова отображается правильно.
это был ярлык, который я сделал для запуска html-документов, просто щелкнув html-файл в моем каталоге и запустив в моем веб-браузере, когда в реальность чтобы проверить, обрабатывается ли php в вашей форме, вы должны запустить 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-файл, такие как: "файл" / " //с:/wamp64/ВСП/бла/бла.."в адресной строке моего браузера. Это была моя проблема. Я внес изменения в соответствии с page настройка Notepad++ для запуска php на localhost?. Моя проблема была решена. Но через 2 дня..
запустите Xampp (apache) как администратор. В google chrome введите:
localhost/<insert folder name here>/<insert file name>
т. е. если созданная вами папка "LearnPhp", файл " chapter1.РНР" введите
Я создал эту папку в папке xampp в папке htdocs, которая создается при загрузке xampp.
Выбирайте самую последнюю версию, с той битностью, какая у вашего сервера. Т.е. если у вас Apache 64-битный, то PHP также должен быть 64-битным. Всегда выбирайте Thread Safe версию.
Для каждого файла имеется две ссылки:
Выбирайте Zip, поскольку отладочный пакет только для тех, кто действительно знает, зачем он им нужен. Здесь имеется ввиду не отладка PHP-скриптов, а отладка самого интерпретатора PHP.
Настройка PHP в Windows
Настройка выполняется в два этапа:
- подключение PHP к Apache
- изменение настроек самого PHP (какие расширения включены, сколько выделено памяти PHP скриптам и т.д.)
Подключение PHP к Apache
В этот файл добавьте три строки, две из которых нужно откорректировать:
В первой строке вместо C:/путь/до/PHP напишите точный путь до папки, куда вы распаковали файлы PHP. В третьей строке C:/путь/до/PHP/php8apache2_4.dll также откорректируйте путь, указав расположение PHP папки.
К примеру, я распаковал PHP в папку C:/Server/bin/PHP, тогда мои настройки следующие:
Если папка PHP находится в корне диска C, тогда эти строки должны быть такими:
Чтобы изменения вступили в силу, перезапустите веб-сервер или компьютер.
Настройка PHP
В папке PHP найдите файл php.ini-development и переименуйте его в php.ini – это нужно сделать обязательно, иначе PHP не будет видеть сделанные настройки.
Открываем файл php.ini любым текстовым редактором, ищем строчку
и заменяем её на
Обратите внимание, что вам нужно скорректировать строку C:\путь\до\PHP\ext\, указав конкретный путь до папки, где размещены файлы PHP.
У PHP (как и у Apache) имеется много расширений. Если вы не знаете, какое расширение для чего нужно, то как минимум два варианта:
- начать изучить предназначение каждого расширения и подключить только те, которые вам действительно нужны;
- подключить самые важные расширения, чтобы любые сайты и движки работали без ошибок.
Чтобы подключить большую часть расширений, найдите группу строк:
и замените её на:
теперь раскомментируйте эту группу строк:
Мы подключили самые востребованные расширения, чтобы работало как можно больше функций PHP.
Этапы настройки PHP 5
1. Загрузите PHP 5
Примечание : обратите внимание, что я не тестировал описанную ниже процедуру с версиями PHP 5.3 , только с 5.2.5 , которая была последней версией на момент написания статьи. Теоретически, те же действия должны выполняться и для установки PHP 7 .
2. Установите PHP 5
Создайте на жестком диске папку для PHP . Я предлагаю c:php , хотя вы можете использовать другое название и расположение папки. Лично я предпочитаю не использовать имена с пробелами.
Извлеките все файлы из загруженного архива в эту папку. Для этого просто дважды кликните по zip-файлу . А затем перетащите все файлы в папку c:php .
3. Тем, кто обновляет пакет: Удалите старый файл PHP.INI из каталога Windows
Если вы переходите на PHP 5 с более старой версии, перейдите в каталог Windows , ( обычно это c:windows ), и удалите все файлы php.ini , которые вы ранее там размещали.
4. Настройка PHP
Перейдите в папку c:php и создайте копию файла php.ini-recommended . Назовите новый файл php.ini . Теперь у вас должен быть файл c:phpphp.in с содержимым, идентичным файлу c:phpphp.ini-recommended .
Примечание . Если вы используете Apache 1 нужно либо перенести файл php.ini в каталог Windows ( c:windows ), либо настроить переменную среды PATH , чтобы включить в нее c:php . Если вы не знаете, как это сделать, просто переместите файл php.ini в папку c:windows . Не нужно этого делать, если используете Apache 2 , так как позже мы укажем в файле конфигурации Apache 2 директиву с расположением файла php.ini .
Для установки PHP на Windows 7 c помощью текстового редактора ( например, такого как «Блокнот», который можно найти в разделе «Служебные» меню «Пуск» )? откройте файл php.ini . Возможно, придется внести следующие изменения в файл:
а) Включение коротких открывающих тегов
Найдите следующую строку:
Если для short_open_tag задано значение off , теги типа «<?» не будут считаться открывающими тегами для PHP-кода . В таком случае, чтобы начать PHP-скрипт , нужно будет скомпоновать скрипт с открывающим тегом типа "<?php".
Поскольку многие сторонние PHP-скрипты используют формат «<?», установка для этого параметра значения off создаст больше проблем, чем принесет пользы. Особенно, если учесть тот факт, что большинство, коммерческих хостингов, поддерживающих PHP , без проблем обрабатывают скрипты, использующие «< ?», в качестве открывающего тега. Чтобы изменить эту установку, отредактируйте данную строку следующим образом:
b) Волшебные кавычки
При установке Apache PHP по умолчанию входящие данные автоматически не экранируются с помощью слэша. Если вы хотите, чтобы входные данные имели префикс обратной косой черты («»), например, чтобы воспроизводить настройки хостинга, найдите следующую строку:
и замените ее на:
Не рекомендуется делать это, если на хостинге не задан данный параметр. Даже при установленном значении Off вы все равно можете использовать в PHP функцию addslashes() , чтобы добавлять слэши для конкретных частей данных,.
c) Использование глобальных переменных
Если вы используете такие скрипты, нужно найти следующую строку:
и изменить ее на:
d) Отображение ошибок
и измените ее на:
Для этого параметра на работающем сайте всегда должно быть установлено значение Off .
Если скрипт использует сессии, найдите следующую строку:
Также можно использовать текущую папку TEMP на своем компьютере. Или создайте папку tmp в каталоге PHP , например c:phptmp и соответствующим образом настройте файл конфигурации. Возможных вариантов может быть много. Если вы не можете решить, какой из них выбрать, просто создайте c:php и сделайте, как я сказал выше.
При установке PHP 5 5 если скрипт использует функцию mail() , и нужно, чтобы функция успешно отправляла почту на локальном компьютере, найдите следующий раздел:
Как настроить Apache для PHP 5
Существует два способа установки Apache PHP . Первый: настроить его на загрузку PHP-интерпретатора в качестве модуля Apache . Второй: настроить его для запуска интерпретатора как бинарного CGI . Нужно применять только один из них. Выберите метод модуля, если на хостинге PHP также установлен, как модуль Apache , или используйте метод CGI , если он реализован на хостинге.
a) Запуск PHP 5 в качестве модуля Apache
Если используете Apache 1.x , добавьте следующую строку после всех операторов LoadModule :
Если вы используете Apache 2.0.x , добавьте следующую строку после всех операторов LoadModule :
Если вы используете Apache 2.2.x , добавьте следующую строку:
Обратите внимание, что в этом примере установки PHP используется символ прямой косой черты ( «/» ) вместо традиционной обратной косой черты Windows («») . Это не опечатка.
Если вы используете Apache 1.x , найдите серию операторов « AddModule » и добавьте после всех строк следующую.
Затем найдите в файле блок AddType и добавьте приведенную ниже строку после последнего оператора AddType . Это нужно сделать независимо от того, какую версию Apache вы используете. Для Apache 2.2.x нужно найти строки AddType в разделе <IfModule mime_module>. Добавьте строку непосредственно перед закрытием </ IfModule> для этого раздела.
Если необходима поддержка других типов файлов, например « .phtml », добавьте их в список, например, так:
Если вы использовали другой каталог, нужно будет изменить c:/php на правильный путь. Не забудьте применить косую черту ( «/» ).
Если используете Apache 1 , вы уже разместили файл php.ini в папке Windows или где-нибудь в PATH . Поэтому PHP должен будет найти его самостоятельно.
Запуск PHP 5 в качестве бинарного файла CGI
Если вы настроили для PHP 5 загрузку в качестве модуля Apache , можете пропустить данный раздел. Он предназначен для тех, кто хочет настроить для PHP запуск в качестве бинарного CGI .
Процедура для этого при установке PHP 7 одинаковая как для Apache 1.x , так и для всех версий серии 2.x .
Найдите часть конфигурационного файла Apache , в которой находится раздел ScriptAlias . Добавьте приведенную ниже строку сразу после строки ScriptAlias для « cgi-bin ». Если используете Apache 2.2.x , убедитесь, что строка расположена до закрытия </ IfModule> для раздела <IfModule alias_module>.
Обратите внимание : если вы установили PHP в другом месте, например c:Program Filesphp , нужно указать соответствующий путь вместо c:/php/ (например, c:Program Filesphp) . Не забудьте, что здесь мы используем простую косую черту ( «/» ) вместо обратной косой черты Windows ( «» ).
Apache нужно настроить MIME тип PHP . Найдите блок комментариев AddType , поясняющий его использование, и добавьте следующую строку ниже него. Для Apache 2.2.x найдите строки AddType в разделе <IfModule mime_module>. Добавьте приведенную ниже строку непосредственно перед закрытием </IfModule> для этого раздела.
Как и в случае установки PHP в качестве модуля Apache , можно добавить любые расширения, чтобы Apache распознавал их как скрипты PHP , например:
Примечание : часть «/php/» будет распознана как ScriptAlias , своего рода макрос, который будет расширен Apache до «c:/php/» ( или «c:/Program Files/php/» , если вы установили PHP там ). Другими словами, не помещайте в эту директиву путь «c:/php/php.exe» или «c:/Program Files/php/php.exe» , а используйте «/php/php-cgi.exe» .
Добавьте приведенные ниже строки сразу после раздела, который только что нашли.
c) Настройка индексной страницы по умолчанию
Этот раздел относится к варианту установки PHP на Windows в качестве модуля Apache , так и двоичного CGI .
измените его на:
При следующем входе на веб-сервер через имя каталога, например « localhost » или « localhost/directory/ », Apache отправит все скрипты из index.php или содержимое файла index.html , если index.php недоступен.
Перезапустите веб-сервер Apache
Тестирование установки PHP
После установки PHP 5 5 или другой версии языка создайте php-файл со следующей строкой:
Сохраните в каталог Apache htdocs файл с именем test.php . Если используете « Блокнот », не забудьте сохранить имя « test.php » с кавычками. Иначе программа самостоятельно добавит расширение .txt .
Если это не сработает, проверьте, не выдает ли установка PHP или установка Apache ошибок. Для этого откройте окно командной строки и запустите php-cgi.exe для файла test.php , например, c:phpphp-cgi test.php .
Если вы вызвали PHP из командной строки и увидели большой HTML-файл со всей информацией о конфигурации PHP , значит, PHP настроен правильно. Вероятно, проблема связана с конфигурацией Apache . Убедитесь, что вы перезапустили Apache после внесения изменений в конфигурацию и что вы правильно настроили веб-сервер.
Изучение PHP
Полное справочное руководство по установке PHP можно найти на официальном сайте технологии. Его можно посмотреть онлайн или загрузить для изучения в автономном режиме.
Хорошего всем дня!
Пожалуйста, оставьте свои мнения по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, дизлайки, лайки, отклики, подписки!
Пожалуйста, оставьте ваши комментарии по текущей теме статьи. За комментарии, подписки, дизлайки, отклики, лайки низкий вам поклон!
Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях
Основной особенностью веб-сервера Apache является расширяемость его функциональных возможностей, по средствам подключения различных дополнительных модулей. Каждый из них выполняет определенные задачи. Часть модулей разрабатывается командой Apache Software Foundation, другая часть, отдельными open source разработчиками.
Используя данный функционал, к веб-серверу Apache, возможно подключить, к примеру, поддержку различных языков программирования, таких как: PHP, PERL, Python, Ruby, ASP и др.
В одном из предыдущих материалов Установка Apache 2.4, был описан процесс установки и запуска локального веб-сервера Apache на ОС Microsoft Windows 7. Теперь подключим к нему язык программирования PHP. Какую версию PHP выбрать и где ее скачать описано в материале Что необходимо для установки веб-сервера?
Подключение PHP к Apache
Итак, имея в наличии, ранее скаченный архив с необходимой версией PHP, создадим в корне локального диска "C:\" директорию "php", и распакуем в нее содержимое архива.
Перейдем в директорию "C:\php\" и найдем 2 файла: "php.ini-development" и "php.ini-production". Эти файлы — примеры конфигурационных файлов PHP. Сделайте копию файла "php.ini-development" с именем "php.ini", в дальнейшем это будет основным конфигурационным файлом настройки PHP. Текущих настроек файла ""php.ini"" будет достаточно, для того, что бы подключить модуль PHP к веб-серверу Apache и проверить его корректную работу.
Теперь необходимо сообщить нашему веб-сервер Apache, что необходимо подключить модуль PHP.
Открываем конфигурационный файл веб-сервера "C:\Apache24\conf\httpd.conf" и раскомментируем следующие строки (данные строки отвечают за подключение необходимый модулей):
Сразу после блока с подключением модулей, добавляем в конф. файл следующие строки:
В первой строке указываем путь до директории с конфигурационным файлом PHP — "C:\php\php.ini".
Во второй строке говорим веб-серверу, что необходимо загружать модуль PHP, который отвечает за обработку php файлов, указывая при этом полный путь до библиотеки dll. Необходимо помнить, что имя библиотеки может отличаться от указанного.
В третей строке указываем расширение файлов, которые будут обрабатываться интерпретатором PHP.
Ниже в конфигурационном файле ищем блок:
и добавляем в конце второй строки "index.php"
Перезагружает веб-сервер любым удобным для Вас способом (используя ApacheMonitor, сервис Службы или командную строку). Если при перезагризки веб-сервера возникли ошибки и он не запустился, проверьте все измененые Вами данные, возможно была допущена опечатка в указании путей.
Проверяем работает ли PHP
После успешного запуска веб-сервера, необходимо проверить, что PHP работает. Для этого создаем в корневой директории управления сайтами "C:\Apache24\htdocs\" файл c именем "phpinfo.php", открываем его в текстовом редакторе и добавляем следующие строки:
phpinfo — это системная PHP-функция, выводящая различную информацию об интерпретаторе: настройки, текущие значения системных переменных и т.д.
Работа с конфигурационным файлом php.ini
Открываем конфигурационный файл php "C:\php\php.ini" в текстовом редакторе.
это значение указывает на директорию (каталог), в котором хранятся динамически загружаемые расширения.
раскомментируем и изменим значение директивы
Предлагаю разобраться, что нам дало выполнение данного действия и что такое динамически загружаемые расширения.
Если Вы откройте директорию "C:\php\ext", то увидите множество файлов с расширением .dll. Каждый из этих файлов и есть то самое динамически загружаемое расширение. Подключение данных расширений позволяют увеличивать функциональные возможности PHP.
Итак, путь до динамически загружаемых расширений мы указали, теперь давайте подключим наиболее важные и необходимые из них. Для это построчно раскомментируем необходимые расширения, удалив в начале каждой строки знак комментирования ";" (точка с запятой).
найдем блок Dynamic Extensions (Динамические Расширения)
раскомментируем необходимые расширения
По итогам изучения данного материала мы расширили функциональные возможности веб-сервера Apache подключив к нему модуль языка программирования PHP.
Ранее у меня был установлен php 5.3.x, но я решил обновить его. Сначала я удалил php 5.3.x, а затем установил php 5.5.1, но после завершения установки apache не проанализировал файлы php, которые он только что загрузил. Я проверял похожие вопросы здесь, в stackoverflow, но пока ни один из них мне не помог.
Буду очень признателен за любую помощь. Спасибо.
У меня есть эти строки в php.conf
apache больше не скачивает файл. Теперь apache показывает исходный код, но не всю его часть. я добавил
Я редактировал вопросы. Модули выходят, и они явно загружаютсяТакже убедитесь, что ваш модуль php загружен
Когда вы настраиваете апач попытайтесь просмотреть страницу из другого браузера - У меня были дни, когда хром упорно кэширует результат и сохраняет загрузку исходного кода в то время как в другом браузере, это просто прекрасно.
Не могли бы вы добавить информацию, куда поместить эти строки? В моем случае на Apache-2.4.6 + PHP-7.3.13> LoadModule php7_module modules / libphp7.soСегодня я столкнулся с этой проблемой, и ни одно из описанных решений не помогло мне. Итак, вот еще одна возможная причина:
Если у вас есть что-то вроде
в .htaccess файле папки веб-содержимого это может привести к тому, что ваши сценарии PHP перестанут работать. В моем случае сервер не знал x-mapp-php6 тип, поскольку этот .htaccess файл был импортирован с другого веб-хоста при переносе содержимого веб-сайта.
Просто удаление AddHandler строки из .htaccess файла решило это для меня.
У меня была некоторая проблема, но я обнаружил виновный файл .htaccess в домашнем каталоге (один каталог над веб-каталогом «public_html»). Если у кого-то еще есть такая же проблема, поищите .htaccess и в родительских каталогах (каскад настроек). У меня был файл .htaccess, подобный этому, который я вытащил с сервера веб-хостинга. Это заставляло версию PHP, которая не была установлена на моем локальном компьютере. Таким образом, виртуальный хост неправильно выполнял файл PHP. Это почти наверняка проблема, если одни сайты работают, а другие - нет. Joomla .htaccess содержал AddHandler, а WordPress - нет. Это сработало для меня, просто удалил эту строку из моего файла public / .htaccess, и индекс был загружен.После долгих усилий я наконец решил проблему.
Если вам будет предложено загрузить .php файл вместо его выполнения, то вот идеальное решение: я предполагаю, что вы уже установили PHP5 и по-прежнему получаете эту ошибку.
затем сделайте следующее:
Оказывается, файлы не должны храниться mods-enabled , а должны храниться в mods-available . Затем в моделях с включенными модами должна быть создана символическая ссылка, указывающая на файл, хранящийся в доступных модах.
Сначала удалите оригинал:
Затем создайте символическую ссылку:
Надеюсь, твоя проблема решена.
Обратите внимание, что это работает только под Linux (и особенно под Debian Linux).Взгляните на свои директивы addtype.
Мне кажется, что Apache сообщает браузеру, что он отправляет тип документа application / php для сценариев с расширениями, такими как .php5. Фактически, Apache должен сообщить браузеру, что сценарий выводит текст / html.
Пожалуйста, попробуйте это:
Что касается приведенного выше предложения о том, что вы должны сообщить браузеру, что вы выводите PHP-скрипт: мне это показалось необычной идеей. Я погуглил и обнаружил, что в сети довольно много дискуссий по этому поводу. По-видимому, есть случаи, когда вы можете сказать, что отправляете PHP-скрипт (даже если Apache должен выполнять скрипт и выдавать текст / html), а также есть случаи, когда браузер просто не распознает этот конкретный Mime Тип.
Очистка кеша браузера - всегда хорошая идея.
Это интересно, но в моем случае он просто выводит весь скрипт PHP, на этот раз в формате HTML (а не только в формате ASCII) - бесполезно! Проблема здесь в том, что PHP каким-то образом не запускается правильно или отправляются неправильные заголовки . Обратите внимание, что последняя директива AddType (закомментированная в приведенном выше примере) заставляет файл .phps хорошо печататься в HTML. Возможно ли, что ваша конфигурация Apache хорошо печатает файлы .php?Это могло произойти из-за отсутствия модулей, необходимых для вашего php. Предполагая, что у вас установлен php7, выполните поиск доступных модулей php7, используя
Вышеупомянутая команда перечислит все доступные модули PHP7 для установки. Вы можете начать установку таких модулей, как,
У меня такая же проблема. Apache не загружает файлы php с определенного веб-сайта, а просто загружает их. Я прочитал этот пост и ответы, и я увидел, что эта строка находится на последнем месте файла .htaccess:
Я прокомментировал это, и все работает нормально.
У меня раньше была аналогичная проблема после обновления с 5.3 до 5.4. Но моя установка выглядит немного иначе, поскольку я запускаю Debian и использую fcgid для сервера страниц PHP, а не модуль PHP5 apache / cgi. Поэтому после того, как я обновился, он также установил php5_cgi, который столкнулся с моей настройкой fcgid и больше не выполнял файлы PHP.
Мне пришлось отключить модуль Apache и перезапустить Apache
Как только модуль php5_cgi был отключен, fcgid снова смог обслуживать страницы PHP.
Ах да, этот хитрый ублюдок cgi ^^ Моя проблема была решена после обновления php с 5.3 до 5.4 с dotdeb.У меня были похожие симптомы, еще одно решение: в /etc/apache2/mods-enabled/php5.conf в комментарии был полезный совет, которому я следовал:
Если кто-то использует php7 в среде Linux
Убедитесь, что вы включили php7
Перезапустите службу mysql и Apache
После обновления PHP до версии 7.3 скрипты PHP запускаются с www-данными вместо $ USER, как раньше.
Мне нужно было переустановить и активировать PHP-FPM:
Чтобы убедиться, что с Virtualmin все в порядке , я использовал мастер повторной проверки конфигурации в /virtual-server/check.cgi разделе Vitualmin / System Settings .
После перезапуска Apache моя проблема была решена, надеюсь, это поможет.
Позаботьтесь и о кеше браузера.
Я потратил два дня, отслеживая это, и обнаружил, что помещаю свои PHP-скрипты не в тот каталог.
В моей стандартной установке Ubuntu я помещал скрипты в /var/www . Они должны были быть внутри /var/www/html .
Я только начал работу с PHP, поэтому не знаю, связано ли мое решение с изменением версии, через которое вы прошли.
это решило проблему для меня (у меня установлен php7):
sudo apt-get установить libapache2-mod-php7.0
sudo service apache2 перезапуск
Также возможно, что у вас запущен nginx, но ваш php настроен для работы с apache. Чтобы проверить, запустите service nginx status и service apache2 status посмотрите, какой из них работает. В случае, если nginx запущен, а apache нет, просто запустите, sudo service nginx stop; sudo service apache2 start и ваш сервер теперь будет обслуживать файлы php, как ожидалось.
Вывод
Если бы я закомментировал эти две строки в своих .conf-файлах в /etc/apache2/[[SERVER-NAME].conf -file:
Я понятия не имею, что они делают и как они туда попали, но это есть в каждом из моих .conf файлов. И если я удалю эти строки и обеспечу наличие символической ссылки в /etc/apache2/sites-enabled/ папке , тогда он не загрузит index.php - и все будет работать так, как должно.
Вся история
Я перепробовал все:
- Удален PHP7.2 и установлен PHP5.6 (теперь я знаю, что версия PHP не имеет к этому никакого отношения; нужно доработать конфигурацию apache).
- Пробовал включать и отключать модули apache в существующей установке, но безуспешно.
- Затем я полностью удалил apache и снова установил его, после чего проблема все еще оставалась существовала!
- Пытался поиграть с настройкой Virutal Server в VirtualMin (Webmin >> Servers >> Apache Webserver).
- Проверил конфигурацию на одном виртуальном сервере (Virtualmin >> System Settings >> Re-Check Configuration) . Этот шаг был довольно приятным, так как он сказал, какой модуль в Apache отсутствует; где-после я мог бы включить его с помощью a2enmod [MODULE_NAME] . И я нашел имя модуля в Google. Мне пришлось активировать около 6-8 модулей, прежде чем я прошел этот этап проверки - а потребовалось несколько минут до того, как закончился кеш, - так что это было утомительным шагом.
- И, наконец, я придумал вышеизложенный вывод - вместе с символическими ссылками - и затем заставил его работать. Однако мне пришлось пройти через это для каждого сайта на моем VPS.
У меня была эта проблема, и если вы на самом деле никогда не играли с настройками конфигурации вашего сервера, то ваша проблема на 90% в вашем файле .htaccess
Вы либо изменяете файл .htaccess ЛОКАЛЬНО, либо удаляете его (ЛОКАЛЬНО)
У меня была проблема, аналогичная OP, при обновлении php5 со старой версии до 5.5.9, которая является версией, установленной с Mint 17.
Я запускаю установку LAMP на машине в моей локальной сети, которую я использую для предварительного просмотра изменений на веб-сайтах, прежде чем загружать эти изменения на реальный действующий сервер. Так что я поддерживаю идеальное локальное зеркало фактического сайта.
После обновления файлы, которые отлично работают и отображаются на реальном сайте, не будут отображаться или будут отображать только html на локальном компьютере. PHP не разбирался. Команда phpinfo () работала, поэтому я знал, что в остальном php работает. Журнал не выдал ошибок. Просмотр исходного кода страницы показал мне актуальный php-код.
Я создал страницу test.php, содержащую следующий код:
Это сработало. Потом я обнаружил , когда я изменил <?php в <? команде больше не работал. Все мои сайты php используют <? вместо этого, <?php возможно, это не идеально, но это реальность. Я исправил проблему, перейдя в / etc / php5 / apache2, выполнив поиск «short_open_tag» и изменив значение с Off на On.
Читайте также: