Что такое файл index.php и зачем он нужен?

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

Что такое файл index.php?

Давайте разберемся, что такое файл index.php. Если говорить формальное - это стартовая точка запуска программы на PHP. Это очень важно, хотя и звучит не очень понятно. Чтобы разобраться, что такое index.php, сначала нужно коротко понять как работает сам PHP.

Возможно, вы уже знаете, что PHP - это язык программирования. Любой язык программирования работает не сам по себе, а выполняет инструкции, написанные программистом, которые обычно называются "исходными кодами" (source code). Исходный код, по сути - это и есть программа. Так вот, исходный код программы не обязал содержаться в одном файле. Он может находиться в разных файлах. И у этих файлов могут быть любые имена.

Файл index.php

Тогда почему есть файл, который обязан называться index.php? Это уже относится только к PHP. Дело в том, что PHP должен знать, как именно запустить вашу программу. Ему нужно указать, откуда она начинается. Здесь в дело вступает файл index.php: его название указывает на то, что его нужно запустить первым. Тут не надо думать, надо просто запомнить: если в каталоге есть 1000 файлов с PHP-кодом и один файл index.php, то вся программа начнется с него, он запустится первым.

Может ли не быть файла index.php?

Тут придется немного углубиться в тему. Дело в том, что поиском файла index.php занимается не сам PHP. Давайте предположим, что вы сделали простой сайт. И он находится в каталоге /var/www/yourawesomewebsite.ru/public_html/ (не удивляйтесь отсутствию буквы диска в начали пути - это пути до файлов в linux-системах). В настройках вашего сайта для вашего веб-сервера (apache или nginx) указано, где его искать. Веб-сервер - это просто программа, которая принимает сетевые запросы (из браузера, в данном случае).

Таким образом, когда пользователь в браузере откроет ссылку http://yourawesomewebsite.ru/ (домен только для примера!) - на самом деле запрос придет к вашему серверу, запустится ваш веб-сервер (nginx или apache) и уже он обратится в каталог /var/www/yourawesomewebsite.ru/public_html/, найдет там файл index.php, "прогонит" код через PHP и выдаст результат обратно пользователю. Эта тема требует несколько углубленного изучения, но основные идеи я вам рассказал. Пишите вопросы в комментариях.

Как создать файл index.php?

Как и все остальные файлы исходных кодов - файл index.php является простым текстовым файлом. Чтобы создать файл index.php, потребуется всего лишь создать обычный текстовый файл. Вы можете использовать для этого любой текстовый редактор, который вам нравится (и который сохраняет в результате plain text, конечно). Например "Блокнот" в Windows, Sumlime Text (который я рекомендую), командную строку сервера и так далее.

Давайте создадим index.php, который в результате своей работы посчитает сумму двух чисел? Для этого откройте текстовый редактор, о котором мы говорили. Напишите туда следующий код:

<?php
$a = 10;
$b = 20;
echo $a + $b;

Закрывающий тег PHP ?> ставить не обязательно. Когда возможно (если весь файл состоит из PHP-кода, например) — лучше его не ставить, это удобно.

Теперь сохраните этот файл с названием index.php. Далее давайте запустим его через интерпретатор PHP. Для этого в консоли выполните команду:


cd /var/www/yourawesomewebsite.ru/public_html/
$ php index.php

Обратите внимание, что у вас должен быть настроен PHP соответствующим образом, чтобы делать такой запуск. Путь до файла php.exe (или php в linux) должен быть прописан в PATH для вашего окружения. Иначе напишите полный путь до интерпретатора PHP.

Если вы начинающий программист, я рекомендую вам разобраться и установить Linux на свой компьютер (удалять Windows при этом не обязательно). Дело в том, что все сервера работают на linux и вам придется столкнуться с ним рано или поздно. Лучше - рано, еще и потому, что работать в linux (когда вы с ним разберетесь) банально удобнее, он лучше приспособлен для программирования. А какой-нибудь nginx в Windows, например, вообще установить невозможно (придется сильно помучиться).

Файл index.php и веб-сервер

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

Как я уже сказал, в настройках конкретного сайта для веб-сервер всегда должно быть указано, в каком каталоге располагается сайт. Именно в нем веб-сервер начнет искать файл index.php. Но если такой файл отсутствует, то веб-сервер попробует найти файл index.html или index.htm (всё это, конечно, настраивается). Поэтому название файла index.php - это прямая калька с файла index.html, который является "стартовым" для сайта, написанного на чистом HTML (представляете, такие были).

Во-вторых, даже если вы всё настроили правильно, вы должны быть уверены, что веб-сервер имеет соответствующие права, чтобы открыть ваш файл index.php. Почитайте что-нибудь про "Права и доступы в Linux", ничего конкретного порекомендовать я тут не могу.

Если вы добавите HTML в пример с подсчетом чисел (см. выше), то при открытии через интерпретатор (то есть через консоль) вы не увидите HTML-страницу. HTML обрабатывается только браузером, поэтому в этой статье я приводить такой пример не стал.

Умоляю, не пишите говно-код на PHP. Выучите язык хорошо перед тем, как начинать работать. Я так устал рефакторить говно, написанное идиотами... :) Это тема заслуживает отдельной статьи, пожалуй.

Комментарии

Комментариев пока нет. Станьте первым! Конечно, если вы не хотите написать мне гадости.
Обязательное поле.
Подсказка по Markdown, используется для оформления.

DeveloperNotes.ru © 2018 — 2020