Файл с расширением .php
Файл PHP — это веб-страница, содержащая программный код на языке PHP (Hypertext Preprocessor). Данный язык популярен в среде веб-разработчиков и широко используется для создания динамических сайтов и веб-приложений, например, интернет-магазинов, каталогов, различных online-форм и т.д.
При работе пользователя с сайтом содержащийся в файле PHP-код для него не виден и обрабатывается интерпретатором на стороне веб-сервера. Пользователь может просмотреть только результат этого процесса в виде загружаемых браузером веб-страниц.
Содержимое файлов PHP представлено в текстовом формате. Это означает, что их можно открыть в простом текстовом редакторе, таком как Notepad++. Для просмотра и редактирования файлов PHP также используются специализированные программы веб-разработки — HTML-редакторы, например, Adobe Dreamweaver.
ITGuides.ru

Вопросы и ответы в сфере it технологий и настройке ПК
Несколько способов открытия PHP файлов: браузер, редактор кода
Рассмотрим различные ситуации, связанные с расширением php. Вообще такой файл спокойно открывается в блокноте, но не всегда это будет информативно. Если это результат работы программиста на языке PHP, то получим исходный файл со скриптами, командами для исполнения. Если же скачивали вы что-то из интернета – фильм, музыку или веб-страницу – то тоже можете получить PHP файл.
Два способа открыть PHP документ
Попробуем открыть файл с расширением .php в первом случае (файл с кодом). Запустить или просмотреть результат выполнения файла без сервера невозможно. Но и это не является большой проблемой. Установить сервер вызовет затруднений даже у начинающих программистов. Инструкция:
- Устанавливаем на ПК пакет Денвер – локальный сервер и другие инструменты для удобной работы со скриптами на языке PHP в режиме офлайн, вообще без активного доступа к интернету. Его можно скачать c официального сборки.
- Затем берем наш файл, назовем его filename.php, и помещаем в папку веб-сервера.
- Открываем любой браузер и в строке вводим путь до файла.
- Наблюдаем результат выполнения кода.
Подробнее о втором и третьем пункте инструкции. Следуем в каталог “C:\WebServers\home”, здесь по-умолчанию расположена папка под названием “test”. Теперь по вашему усмотрению: можете выбрать эту папку, можете создать свою здесь же (например, 123). Переходим в папку и создаем еще одну под названием «www». Теперь уже в нее помещаем наш файл “filename.php”. Полный путь до файла будет следующим: “C:\WebServers\home\123(или test)\www\filename.php”.
Стоит обратить внимание на то, что обязательно нужно создать папку www, не следует пропускать этот пункт.
Запускаем Денвер при помощи кнопки Run. Должна появиться надпись в черном окне командной строки о том, что хост 123 (test) добавлен. Если в версии локального сервера нет иконок, то ищем их в “C:\WebServers\denwer\utils\”.
Далее переходим в браузер и в строку вбиваем следующую информацию: “http://123(test)/filename.php”. И выполняется четвертый пункт инструкции, все готово.
Не стоит менять настройки по умолчанию после установки Денвер, все и так отлажено и настроено, включены модули Magic, XLS, GD, XML, FDPF и другие.
Если вы не связаны с разработками программ и файл с расширением .php появился у вас после закачивания видеозаписей, музыки, то смело пробуем открыть его в Блокноте. Возможно, вам будет выдана ошибка. В таком случае отключаем менеджер загрузок и пробуем снова. В других случаях с большой вероятностью в браузере откроется сохраненная страница сайта, с которого вы начинали скачивать фильм/музыку и т.д. Т.е. вместо непосредственно загрузки контента вы сохранили на жесткий диск саму страницу.
Программы для работы с PHP файлами в разных ОС
Самым простым способом просмотреть php документ — это открыть его в Блокноте, как говорилось ранее.
В Windows php файл можно открыть в следующих программах:
- Блокнот;
- PHPEdit;
- Notepad++;
- Microsoft Wordpad;
- EditPlus;
- Любой текстовый редактор;

PhpEdit — профессиональная программа, при помощи которой можно не только открыть, но и создавать целые проекты на языке PHP.
Рекомендуем особое внимание уделить программе Notepad++, который весьма удобен в использовании, когда речь идет о редактировании исходных кодов программ и скриптов. Если открыть файл PHP в Notepad++, автоматически будет распознан и подсвечен синтаксис, есть возможность сворачивать и разворачивать блоки кода, удобный поиск и расширенный функционал замены на основе регулярных выражений – далеко не полный функционал полезных опций, которые предоставляет данный редактор.
В Mac открываем в:
- Bare Bones Software BBEdit;
- TextEdit;
- Eclipse PHP Development Tools;
- TextMate;
- Иной другой удобный для вас текстовый редактор.
- Gedit;
- BlueFish;
- Eclipse PHP Development Tools;
- Любой текстовый редактор.
Итак, мы рассмотрели несколько вариантов, как открыть файл с расширением PHP. В первом случае у вас будет возможность ознакомиться с результатом работы такого скрипта, второй подойдет для внесения правок и редактирования самого кода скрипта.
Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:
Выполнение php-файлов в папке upload
Случаются ситуации, когда php-скрипты исполняются в директории хранения загружаемых файлов или другими словами php-файлы выполняются в папке upload, это есть уязвимость, дыра на сайте, и это касается любой CMS, не только 1С Битрикс.
В папке /upload/ ничего не должно запускаться и выполняться, все загруженные изображения, документы, архивы и т.д. все это доступно для скачивания любому пользователю и встраивается в контент, оно безопасно (за исключением .gif изображений), потому что это не исполняемые файлы, а есть исполняемые файлы, которые можно открыть в браузере и они выполнят какой-то код на вашем сайте, вообще любой, пример расширений исполняемых файлов.
.php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .dll .exe .shtm .shtml .fcg .fcgi .fpl .asmx .pht
Если есть хоть одна форма обратной связи с загрузкой файлов на сайт без проверки типа файла на уровне PHP, то с ее помощью можно залить какой-нибудь php-файл и зная папку загрузки напрямую ручками открыть этот файл в строке браузера.
Есть конечно различные защиты на уровне JS, PHP, .htaccess переименование файлов в форме и т.д. но эта ситуация со временем может изменяться, сама форма переделывается, модуль другой устанавливается, меняются разработчики сайтов, изменяется ПО сервера, Apache заменили на Nginx, меняются панели управления сервером и т.д., но это не дает 100% гарантии защиты, за этим должен следить владелец сайта регулярно, хоть всю жизнь, хотите вы этого или нет, все в мире изменяется.
Если все еще не поняли о чем речь, создайте в папке /upload/ любой php-файл, например i.php и вставьте в него данный код
phpinfo();
Теперь пробуйте открыть данный файл напрямую в браузере, вводите в адресной строке браузера путь до файла и открывайте
https://example.com/upload/i.php
Если php-скрипт выполняется, вы увидите информацию о текущей версии php, т.е. дыра на вашем сайте открыта для всех желающих, ее 100% необходимо закрывать.

Я всегда за этим слежу, в этот раз переехал на новую панель ISP и обнаружил данную проблему даже после всех настроек, но почему-то только на своем сайте, вот что удалось выяснить, почему это произошло, а если бы я как владелец сайта за этим не смотрел, сайт бы уже давно взломали и знать бы не знал о наличии данной уязвимости, другая панель, другое ПО, другие настройки, другие проблемы, и все закономерно.
Проблема оказалась в самом файле .htaccess , который в папке /upload/ , почему-то он у меня отличается от других сайтов на Битриксе, не все правила были добавлены, а проявила себя проблема из-за конфигов хоста для Apache2
/etc/apache2/vhosts/user1/example.com
Панель ISP добавляет в этот конфиг такие вот правила для php-фaйлов, принудительно делает их исполняемыми и если в .htaccess сайта это правило не будет переопределено, то все php-скрипты будут по умолчанию исполняемые, например, панель VESTA такого не делает по умолчанию.
SetHandler application/x-httpd-php
SetHandler application/x-httpd-php-source
Пример .htaccess для защиты папки /upload/
Это готовый, рабочий пример файла, его можно смело загружать в папку /upload/ и особо не беспокоиться, в большинстве случаев он будет работать даже после переезда на другую панель, но только если PHP будет запущен как модуль Apache2.
SetHandler text/plain
ForceType text/plain
#Deny from all
RemoveHandler .php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .dll .exe .shtm .shtml .fcg .fcgi .fpl .asmx .pht
AddType text/plain .php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .dll .exe .shtm .shtml .fcg .fcgi .fpl .asmx .pht
php_flag engine off
php_flag engine off
Советы
В моем случае не переопределена была директива , вот если бы ее не было в глобальных конфигах хоста Apache2, не пришлось бы переопределять, тогда сработало бы правило ниже RemoveHandler + AddType text/plain , в случае с они почему-то не действуют.
Правила хоста Apache2 применяются глобально для всего сайта, поэтому необходимо переопределять их на сайте в файлах .htaccess
Данный файл .htaccess понимает только Apache2, если вы переезжаете на Nginx + PHP FPM , то это уже совсем другая история, в конфигах Nginx будет что-то типа:
location ~* /upload/.*\.(php|php3|php4|php5|php6|phtml|pl|asp|aspx|cgi|dll|exe|shtm|shtml|fcg|fcgi|fpl|asmx|pht|py|psp|rb|var)$ types text/plain text/plain php php3 php4 php5 php6 phtml pl asp aspx cgi dll exe ico shtm shtml fcg fcgi fpl asmx pht py psp rb var;
>
>
location ~* ^/bitrix/(modules|local_cache|stack_cache|managed_cache|php_interface) deny all;
>
location ~* /\.ht < deny all; >
location ~* /\.(svn|hg|git) < deny all; >
location ~* ^/upload/1c_[^/]+/
Обратите внимание, в моем примере выше в правилах .htaccess есть одна закомментированная для примера строчка в директиве
#Deny from all
Если она закомментирована, то по умолчанию все выполняемые файлы сервер будет отдавать в виде текста, в основном так и делается.

Но если файл будет очень большого размера, выводить его в браузер тоже не самый хороший вариант, лучше вообще их закрыть и не показывать.
Если раскомментировать правило Deny from all, то доступ к выполняемому файлу будет закрыт полностью, такое сообщение выводится сервером.

Обратите внимание, иногда пользовательские правила в .htaccess не работают, не переопределяются, тогда смотрите, например, в этом файле в панели ISP
/etc/apache2/conf.d/z1_home.conf
Конкретно привилегии AllowOverride , если будет AllowOverride None то это будет запрещать, должно быть либо AllowOverride All либо вот так
AllowOverride FileInfo AuthConfig Limit Indexes Options=All,MultiViews
Если такого файла нет, то смотрите главный конфиг Apache2
/etc/apache2/apache2.conf
В нем может быть вот такое правило, применяется глобально ко всем сайтам в папке /var/www
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Обратите внимание, еще на это правило mod_php7.c для PHP7, раньше было mod_php5.c для PHP5, т.к. это отдельный модуль Apache2, нужно добавлять отдельно
php_flag engine off
php_flag engine off
Например, для включения антивируса 1С Битрикс нужно добавить уже отдельное правило для php7, для php5 правило работать не будет на PHP 7.1
php_value auto_prepend_file «/var/www/user1/data/www/example.com/bitrix/modules/security/tools/start.php»
php_value auto_prepend_file «/var/www/user1/data/www/example.com/bitrix/modules/security/tools/start.php»
Обратите внимание, еще бывает правило php_flag engine off не работает в .htaccess
php_flag engine off
php_flag engine off
Это правило выключает выполнение PHP-файлов в данной директории, оно не будет работать, если где-нибудь в конфигах хоста для Apache2 будет глобально задано правило с помощью php_admin_flag панель ISP именно так и делает
Options +Includes -ExecCGI
php_admin_flag engine on
php_admin_flag engine on
Конфиги хостов в ISP хранятся здесь отдельно для каждого пользователя и хоста/домена
/etc/apache2/vhosts/user1/example.com
Почему не удается переопределить данное правило, можно узнать в официальной php-документации
http://php.net/manual/ru/configuration.changes.php
php_admin_value name value
Устанавливает значение указанной директивы. Не может быть использовано в файлах .htaccess.
Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set().
Чтобы очистить предыдущее значение используйте значение none.
php_admin_flag name on|off
Используется для установки директивам логических значений.
Не может быть использовано в файлах .htaccess.
Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set().
Как запустить php файл в браузере
Покинул форум
Сообщений всего: 6
Дата рег-ции: Сент. 2014
Помог: 0 раз(а)
Стояла задача из админки, скриптом вместе с данными в БД создавть и записывать файл .php, который затем будет открываться в браузере как html (include) + html с вставками переменных из БД ().
Решила с помощью file_put_contents(‘../cat/’.$filename.’.php’, «$tmprec»); где $tmprec = заранее заготовленному шаблону из бд в который записана вся страница к выводу. Содержащая вышеуказанные «инклюды», ХТМЛ-ы и ПХП вставки.
?=$name1["txt"]>
Вся эта процедура работает и записывает нужный файл в нужный каталог.
Файл на сервере показывает, его реальный вес. Права 777. При вытягивании файла с сервера и открытии его в редакторе открывает всё содержимое. При копировании с него кода и вставки в др. файл — открывается и работает.
А теперь самое интересное!
(!) При попытке открыть страницу (файл загруженный спомощью file_put_contents(‘../cat/’.$filename.’.php’, «$tmprec»);) браузер открывает ПУСТУЮ страницу. (!)
Подскажите хоть в какую сторону думать.
Отправлено: 08 Марта, 2015 — 21:07:10
Покинул форум
Сообщений всего: 286
Дата рег-ции: Окт. 2014
Помог: 2 раз(а)
AlinaKubes пишет:
Стояла задача из админки, скриптом вместе с данными в БД создавть и записывать файл .php, который затем будет открываться в браузере как html (include) + html с вставками переменных из БД ().
Решила с помощью file_put_contents(‘../cat/’.$filename.’.php’, «$tmprec»); где $tmprec = заранее заготовленному шаблону из бд в который записана вся страница к выводу. Содержащая вышеуказанные «инклюды», ХТМЛ-ы и ПХП вставки.
?=$name1["txt"]>
Вся эта процедура работает и записывает нужный файл в нужный каталог.
Файл на сервере показывает, его реальный вес. Права 777. При вытягивании файла с сервера и открытии его в редакторе открывает всё содержимое. При копировании с него кода и вставки в др. файл — открывается и работает.
А теперь самое интересное!
(!) При попытке открыть страницу (файл загруженный спомощью file_put_contents(‘../cat/’.$filename.’.php’, «$tmprec»);) браузер открывает ПУСТУЮ страницу. (!)
Подскажите хоть в какую сторону думать.
Попробуй включить отчет об ошибках для начала, наверное то что выполняется не выводитс на еран, нет вывода, или ошибки, посмотри исходный код той пустой страницы, посмотри через консоль. Это все ошибки.
Отправлено: 12 Марта, 2015 — 07:54:08
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015
Откуда: Тамбов
Помог: 17 раз(а)
можно ещё ставить метки по всему коду и отслеживать где код прерывает работу.. Например
CODE (htmlphp):
скопировать код в буфер обмена
echo __LINE__ ;
заодно проверять переменные что содержат. а то может они пустые..
Можно ещё посмотреть, а поддерживается ли вообще короткая конструкция
Отправлено: 12 Марта, 2015 — 11:13:28
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
AlinaKubes пишет:
браузер открывает ПУСТУЮ страницу.
Браузер открывает пустую страницу только в двух случаях
1. Когда она действительно пустая
2. Когда на странице есть ошибки, но их отображение выключено
Вам нужно включить отображение ошибок, и исходя из них решать проблему.
Вслепую баги не исправляются
——
Чем больше узнаю, тем больше я не знаю.
Отправлено: 12 Марта, 2015 — 12:59:41
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015
Откуда: Тамбов
Помог: 17 раз(а)
