Глиф Учебники

Урок 1. Что такое PHP и как его запустить

Курс «PHP» · урок 1 из 10 · 6 минут чтения

PHP работает на сервере. Когда браузер открывает адрес вида example.com/index.php, веб-сервер не отдаёт файл как есть, а передаёт его PHP. PHP выполняет код, а браузеру уходит то, что код вывел, — обычно HTML-страница.

Браузер у посетителя example.com/index.php Привет из PHP Дважды два: 4 Сервер веб-сервер передаёт файл .php в PHP PHP выполняет код index.php запрос то, что вывел код: готовый HTML
Браузер запрашивает example.com/index.php, веб-сервер передаёт файл PHP, PHP выполняет код, а браузеру уходит только то, что код вывел, — готовый HTML.

Поэтому код PHP посетитель не видит: в браузере через «Просмотр кода страницы» видна только готовая разметка. И поэтому файл .php нельзя просто открыть двойным щелчком, как HTML: его должен кто-то выполнить.

Для учёбы хватит PHP на своём компьютере. Он умеет две вещи: выполнять программы в терминале и работать маленьким веб-сервером для проверки страниц.

Программа в терминале вывод — прямо в терминал $ php hello.php Привет, мир! 2 + 2 = 4 Встроенный веб-сервер страница — в браузере $ php -S localhost:8000 http://localhost:8000 Привет из PHP
Команда php hello.php выполняет программу и выводит результат прямо в терминал, а php -S localhost:8000 запускает встроенный сервер, и страницу открывают в браузере.

Установка

Способ зависит от системы на вашем компьютере.

Windowsархив с сайта PHP

  1. Откройте страницу загрузки PHP для Windows. У самой новой версии 8.x скачайте архив Zip варианта x64 Non Thread Safe.
  2. Распакуйте архив в папку C:\php — в ней должен оказаться файл php.exe.
  3. В той же папке сделайте копию файла php.ini-development и назовите её php.ini. Это файл настроек; вариант development показывает ошибки на экране — при учёбе так и нужно.
  4. Добавьте папку в переменную Path, чтобы команда php работала из любой папки: нажмите Win+R, введите sysdm.cpl, на вкладке «Дополнительно» нажмите «Переменные среды», в верхнем списке выберите Path → «Изменить» → «Создать» и впишите C:\php. Нажмите «ОК» во всех окнах.
  5. Откройте новое окно PowerShell (в уже открытом окне Path не обновится) и проверьте установку. Как открыть PowerShell — в статье Командная строка и PowerShell.
PowerShell
php -v

В ответ появится строка, которая начинается с PHP 8. и номера скачанной версии, с пометкой (cli). Если Windows сообщает, что не найден файл DLL (например, VCRUNTIME140.dll), установите пакет Microsoft Visual C++ Redistributable — ссылка на него есть на той же странице загрузки.

Расширения

Некоторые возможности PHP подключаются отдельно — расширениями. Для курса нужны три: строки на русском (mbstring), база SQLite (pdo_sqlite) и определение типа файла (fileinfo).

  1. Откройте C:\php\php.ini в редакторе.
  2. Найдите поиском строки extension=fileinfo, extension=mbstring и extension=pdo_sqlite и уберите точку с запятой в их начале. Точка с запятой означает комментарий: строка с ней не действует.
  3. Так же уберите точку с запятой у строки extension_dir и впишите в неё полный путь к папке расширений.
  4. Сохраните файл.

Должно получиться так:

Настройки
extension_dir = "C:\php\ext"
extension=fileinfo
extension=mbstring
extension=pdo_sqlite

Проверьте: команда php -m выводит список подключённых расширений, в нём должны быть все три.

Дальше — для всех случаев

Ubuntu и Debianпакеты из системы

Введите команды в терминале (как его открыть — в статье Терминал и первые команды):

Bash
sudo apt update
sudo apt install php-cli php-mbstring php-sqlite3
php -v

Первая команда обновляет список пакетов, вторая ставит PHP, третья показывает его версию. php-cli — сам PHP для терминала, php-mbstring — функции для строк на русском, php-sqlite3 — база SQLite для урока о PDO. Ставится версия PHP, которая входит в систему: в Ubuntu 24.04 это PHP 8.3, в Debian 12 — PHP 8.2. Расширения после установки пакетов включаются сами.

Пакет php без приставки обычно ставит вместе с собой веб-сервер Apache. Для учёбы он не нужен: хватит php-cli и встроенного сервера PHP.

Дальше — для всех случаев

macOSчерез Homebrew

PHP удобно поставить через Homebrew — программу, которая ставит другие программы командой в терминале. Если Homebrew ещё нет, установите его по статье Как установить Homebrew на Mac. Затем в Терминале:

Bash
brew install php
php -v

Вторая команда показывает версию PHP — значит, установка прошла.

Есть и готовые сборки «всё в одном», например XAMPP: Apache, PHP и база MariaDB одним установщиком. Для курса они не обязательны — встроенного сервера PHP достаточно.

Первая программа

Создайте папку для уроков, например C:\php-lessons в Windows или ~/php-lessons в Linux и macOS (~ — ваша домашняя папка), и в ней файл hello.php:

PHP
<?php
echo "Привет, мир!\n";
echo "2 + 2 = " . (2 + 2) . "\n";
Вывод
Привет, мир!
2 + 2 = 4

Такой результат появится в терминале, если перейти в папку с файлом и запустить его командой php:

Bash
cd ~/php-lessons
php hello.php

В Windows первая команда — cd C:\php-lessons, вторая та же.

Что здесь написано:

Закрывающий тег ?> в файле, где только код, не пишут: он не нужен, а пустая строка после него может сломать отправку заголовков (об этом справка headers already sent).

Сохраняйте файлы в кодировке UTF-8 — Visual Studio Code делает так сам. В другой кодировке русские буквы превратятся в непонятные знаки.

Страница в браузере

Создайте в той же папке файл index.php:

PHP
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8">
    <title>Первая страница</title>
</head>
<body>
    <h1>Привет из PHP</h1>
    <p>Дважды два: <?= 2 * 2 ?></p>
    <p>Версия PHP: <?= PHP_VERSION ?></p>
</body>
</html>

Здесь PHP вставлен прямо в HTML. <?= … ?> — короткая запись для <?php echo …; ?>: вывести значение в это место страницы. PHP_VERSION — встроенная константа с номером версии.

Запустите встроенный сервер в папке с файлом:

Bash
php -S localhost:8000

Откройте в браузере адрес http://localhost:8000 — появится страница, а вместо <?= 2 * 2 ?> будет число 4. Посмотрите код страницы в браузере: PHP там нет, только готовый HTML. Без имени файла сервер открывает index.php, другие файлы — по имени: http://localhost:8000/hello.php.

index.php на сервере <h1>Привет из PHP</h1> <p>Дважды два: <?= 2 * 2 ?></p> HTML как есть, код PHP — выполнить PHP Код страницы в браузере <h1>Привет из PHP</h1> <p>Дважды два: 4</p> только готовый HTML, кода PHP нет
HTML из index.php уходит браузеру как есть, а вместо <?= 2 * 2 ?> PHP подставляет результат: в коде страницы у браузера стоит 4 и нет ни строчки PHP.

В терминале сервер пишет строку о каждом запросе. Остановить его — Ctrl+C. Если файлы сайта лежат во вложенной папке, укажите её ключом -t: php -S localhost:8000 -t public.

Встроенный сервер — только для проверки на своём компьютере: он обрабатывает запросы по одному и не рассчитан на открытую сеть. С адресом localhost его видит только ваш компьютер. С адресом 0.0.0.0 сервер откроется всем в сети, и любой сможет скачать файлы из папки — базу данных, настройки с паролями.

На настоящем сервере PHP работает вместе с Apache или nginx — это настраивают при выкладке сайта.

Частые ошибки

Коротко

Проверьте себя

1. Где выполняется код PHP?
2. Как запустить встроенный сервер PHP в текущей папке?
3. Почему страница из файла index.php, открытая двойным щелчком, не работает?
4. Что делает <?= $x ?> в HTML-странице?