Перейти к содержимому

2. Установка PHP

Для разработки на PHP вам нужно локальное окружение — веб-сервер с установленным PHP и базой данных. В этом уроке мы рассмотрим несколько способов установки PHP на разных операционных системах и настроим рабочую среду.

Типичный стек для PHP-разработки (LAMP/WAMP/MAMP):

  • Linux/Windows/Mac — операционная система
  • Apache или Nginx — веб-сервер
  • MySQL или MariaDB — база данных
  • PHP — интерпретатор PHP

Не обязательно устанавливать все по отдельности — существуют готовые сборки, которые включают всё необходимое.

Готовые сборки (рекомендуется для начинающих)

Заголовок раздела «Готовые сборки (рекомендуется для начинающих)»
ИнструментПлатформаПреимуществаНедостатки
XAMPPWin/Mac/LinuxПростой, популярныйТяжеловесный
OpenServerWindowsПопулярен в РФ, много модулейТолько Windows
LaragonWindowsБыстрый, современныйТолько Windows
MAMPMac/WindowsПростой интерфейсБесплатная версия ограничена
Local by FlywheelWin/Mac/LinuxЗаточен под WordPressТолько для WP
DockerВсеИзолированная средаКрутая кривая обучения

Для продвинутых пользователей можно установить компоненты отдельно, но это сложнее и займет больше времени.

XAMPP — самый популярный вариант для начинающих. Рассмотрим установку пошагово.

  1. Перейдите на https://www.apachefriends.org/
  2. Скачайте версию для вашей ОС
  3. Выберите версию с PHP 8.2 или новее
  1. Запустите установщик (xampp-windows-x64-8.2.x-installer.exe)

  2. Выберите компоненты:

    • ✅ Apache (веб-сервер)
    • ✅ MySQL (база данных)
    • ✅ PHP
    • ✅ phpMyAdmin (управление БД)
    • ⬜ FileZilla, Mercury (не обязательно)
  3. Выберите папку установки (по умолчанию C:\xampp)

  4. Нажмите “Next” → “Install”

  5. Дождитесь окончания установки

  1. Откройте XAMPP Control Panel
  2. Нажмите Start напротив Apache
  3. Нажмите Start напротив MySQL
  4. Если появляется ошибка порта 80 (конфликт с Skype/IIS):
    • Остановите Skype или измените порт Apache

Откройте браузер и перейдите по адресу:

http://localhost
```text
Вы должны увидеть приветственную страницу XAMPP.
### Шаг 5: Создание первого файла
1. Откройте папку `C:\xampp\htdocs\` (или `/Applications/XAMPP/htdocs/` на Mac)
2. Создайте файл `test.php`:
```php
<?php
phpinfo();
?>
```text
3. Откройте в браузере: `http://localhost/test.php`
4. Вы увидите страницу с информацией о PHP
**Поздравляю!** PHP работает! 🎉
## Установка OpenServer (Windows)
OpenServer популярен среди русскоязычных разработчиков благодаря удобству и гибкости.
### Установка
1. Скачайте с https://ospanel.io/
2. Выберите версию (рекомендую Premium, но Basic тоже подойдет)
3. Распакуйте архив в папку (например, `C:\OpenServer`)
4. Запустите `Open Server x64.exe`
### Настройка
1. При первом запуске выберите язык (Русский)
2. В трее появится значок OpenServer (флаг)
3. Нажмите ПКМ → Запустить
4. Выберите домены (можно оставить по умолчанию)
### Создание проекта
1. Откройте папку `OpenServer/domains/`
2. Создайте папку с именем проекта, например `mysite`
3. Внутри создайте файл `index.php`:
```php
<?php
echo "OpenServer работает!";
echo "<br>PHP версия: " . phpversion();
?>
```text
4. Откройте в браузере: `http://mysite` или `http://localhost/mysite`
### Преимущества OpenServer
- Удобное переключение между версиями PHP (5.6, 7.4, 8.0, 8.1, 8.2)
- Автоматическое создание виртуальных хостов
- Встроенные модули (Redis, Memcached, Node.js)
- Портативность (можно запускать с флешки)
## Установка Laragon (Windows)
Laragon — современный и быстрый вариант для Windows.
### Установка
1. Скачайте с https://laragon.org/download/
2. Запустите установщик
3. Выберите папку установки
4. После установки запустите Laragon
### Использование
1. Нажмите **Start All** (запустит Apache, MySQL)
2. Откройте папку `C:\laragon\www\`
3. Создайте папку проекта, например `test`
4. Создайте файл `index.php`:
```php
<?php
echo "Laragon работает!";
?>
```text
5. Откройте: `http://test.test` (Laragon автоматически создает домены с `.test`)
### Фишки Laragon
- **Быстрый старт** — всё запускается за секунды
- **Автоматические виртуальные хосты** — создали папку = создался домен
- **Терминал** — встроенный Cmder с Git, Node, Composer
- **Легкое переключение версий** — PHP, MySQL, PostgreSQL
## Установка на Linux (Ubuntu/Debian)
Для Linux лучше использовать нативную установку или Docker.
### Метод 1: APT (нативная установка)
```bash
# Обновляем систему
sudo apt update
# Устанавливаем Apache
sudo apt install apache2 -y
# Устанавливаем MySQL
sudo apt install mysql-server -y
# Устанавливаем PHP и расширения
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y
# Перезапускаем Apache
sudo systemctl restart apache2
# Проверяем статус
sudo systemctl status apache2
```text
### Проверка установки
```bash
# Создаем тестовый файл
sudo nano /var/www/html/test.php
```text
Вставьте:
```php
<?php
phpinfo();
?>
```text
Сохраните (Ctrl+O, Enter, Ctrl+X) и откройте: `http://localhost/test.php`
### Метод 2: Docker (универсальный)
Создайте файл `docker-compose.yml`:
```yaml
version: '3.8'
services:
php:
image: php:8.2-apache
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
environment:
- APACHE_DOCUMENT_ROOT=/var/www/html
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: myapp
ports:
- "3306:3306"
```text
Запуск:
```bash
# Создаем папку проекта
mkdir myproject && cd myproject
# Создаем docker-compose.yml (скопируйте содержимое выше)
# Создаем папку для кода
mkdir src
# Создаем тестовый файл
echo '<?php phpinfo(); ?>' > src/index.php
# Запускаем контейнеры
docker-compose up -d
# Открываем http://localhost:8080
```text
### Преимущества Docker
- **Изоляция** — проекты не конфликтуют
- **Воспроизводимость** — одинаковое окружение на всех машинах
- **Легкое переключение версий** — просто меняем image
- **Production-ready** — то же окружение, что на продакшене
## Установка на macOS
### Метод 1: MAMP
1. Скачайте MAMP с https://www.mamp.info/
2. Установите (перетащите в Applications)
3. Запустите MAMP
4. Нажмите "Start Servers"
5. Откройте `http://localhost:8888`
Файлы проектов: `/Applications/MAMP/htdocs/`
### Метод 2: Homebrew (нативно)
```bash
# Устанавливаем Homebrew (если еще нет)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Устанавливаем PHP
brew install php
# Устанавливаем MySQL
brew install mysql
# Запускаем MySQL
brew services start mysql
# Проверяем PHP
php -v
# Запускаем встроенный сервер
cd ~/Sites
mkdir myproject
cd myproject
echo '<?php phpinfo(); ?>' > index.php
php -S localhost:8000
# Открываем http://localhost:8000
```text
## Настройка php.ini
php.ini — главный конфигурационный файл PHP. Вот важные настройки для разработки.
### Где находится php.ini?
```bash
# Узнать путь к php.ini
php --ini
# Или посмотреть в phpinfo()
```text
**Типичные пути:**
- XAMPP Windows: `C:\xampp\php\php.ini`
- XAMPP Mac: `/Applications/XAMPP/etc/php.ini`
- Linux: `/etc/php/8.2/apache2/php.ini`
- OpenServer: `OpenServer\modules\php\PHP-X.X\php.ini`
### Важные настройки для разработки
Откройте `php.ini` и найдите/измените эти параметры:
```ini
; Отображение ошибок (ОБЯЗАТЕЛЬНО для разработки)
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
; Лимиты (увеличьте для загрузки файлов)
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
; Временная зона (Москва)
date.timezone = Europe/Moscow
; Расширения (раскомментируйте нужные, убрав ; в начале)
extension=curl
extension=gd
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=zip
extension=intl
```text
**После изменений обязательно перезапустите веб-сервер!**
### Проверка изменений
Создайте файл `check.php`:
```php
<?php
// Проверяем временную зону
echo "Timezone: " . date_default_timezone_get() . "<br>";
// Проверяем лимиты
echo "Memory limit: " . ini_get('memory_limit') . "<br>";
echo "Upload max: " . ini_get('upload_max_filesize') . "<br>";
echo "Post max: " . ini_get('post_max_size') . "<br>";
// Проверяем расширения
$extensions = ['curl', 'gd', 'mbstring', 'mysqli', 'pdo_mysql'];
echo "<h3>Расширения:</h3><ul>";
foreach ($extensions as $ext) {
$status = extension_loaded($ext) ? '✅' : '❌';
echo "<li>$status $ext</li>";
}
echo "</ul>";
?>
```text
## Установка Composer
Composer — менеджер пакетов для PHP (аналог npm для Node.js). Он необходим для установки библиотек и фреймворков.
### Windows
1. Скачайте Composer с https://getcomposer.org/download/
2. Запустите `Composer-Setup.exe`
3. Укажите путь к `php.exe` (например, `C:\xampp\php\php.exe`)
4. Завершите установку
Проверка:
```bash
composer --version
```text
### Linux/Mac
```bash
# Скачиваем установщик
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# Устанавливаем глобально
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
# Удаляем установщик
php -r "unlink('composer-setup.php');"
# Проверяем
composer --version
```text
### Первый пакет с Composer
```bash
# Переходим в папку проекта
cd C:\xampp\htdocs\myproject
# Инициализируем composer
composer init
# Устанавливаем пакет (например, библиотеку для работы с датами)
composer require nesbot/carbon
```text
Использование:
```php
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
// Работа с датами стала проще
echo Carbon::now()->format('d.m.Y H:i:s') . "<br>";
echo Carbon::now()->addDays(7)->diffForHumans() . "<br>";
// Выведет: "через 7 дней"
?>
```text
## Настройка редактора кода
### Visual Studio Code (рекомендуется)
VS Code — бесплатный и мощный редактор с отличной поддержкой PHP.
**Установка расширений:**
1. Откройте VS Code
2. Нажмите Ctrl+Shift+X (Extensions)
3. Установите:
**Обязательные:**
- **PHP Intelephense** — автодополнение, подсказки
- **PHP Debug** — отладка кода
- **PHP DocBlocker** — автогенерация документации
**Полезные:**
- **phpfmt** — форматирование кода
- **PHP Namespace Resolver** — автоимпорт классов
- **Better Comments** — цветные комментарии
- **Bracket Pair Colorizer** — подсветка скобок
**Настройки для PHP:**
Откройте настройки (Ctrl+,) и добавьте:
```json
{
"php.validate.enable": true,
"php.validate.executablePath": "C:/xampp/php/php.exe",
"editor.formatOnSave": true,
"files.associations": {
"*.php": "php"
},
"intelephense.files.maxSize": 5000000
}
```text
### PhpStorm (профессиональная IDE)
PhpStorm — платная IDE от JetBrains, но есть 30-дневный trial и бесплатная лицензия для студентов.
**Преимущества:**
- Мощный рефакторинг
- Встроенная работа с БД
- Интеграция с Composer, Git, Docker
- Отличная поддержка фреймворков (Laravel, Symfony, WordPress)
Скачать: https://www.jetbrains.com/phpstorm/
## Проверка готовности окружения
Создайте файл `environment-check.php`:
```php
<?php
$requirements = [
'PHP Version' => [
'required' => '8.0.0',
'current' => phpversion(),
'status' => version_compare(phpversion(), '8.0.0', '>=')
],
'Extensions' => []
];
$required_extensions = ['curl', 'gd', 'mbstring', 'mysqli', 'pdo_mysql', 'zip', 'xml'];
foreach ($required_extensions as $ext) {
$requirements['Extensions'][$ext] = extension_loaded($ext);
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Проверка окружения</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 50px auto; }
.success { color: green; }
.error { color: red; }
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
th, td { padding: 10px; text-align: left; border: 1px solid #ddd; }
th { background: #f4f4f4; }
</style>
</head>
<body>
<h1>Проверка PHP окружения</h1>
<h2>Версия PHP</h2>
<p class="<?php echo $requirements['PHP Version']['status'] ? 'success' : 'error'; ?>">
Текущая: <?php echo $requirements['PHP Version']['current']; ?>
(требуется: <?php echo $requirements['PHP Version']['required']; ?>+)
<?php echo $requirements['PHP Version']['status'] ? '✅' : '❌'; ?>
</p>
<h2>Расширения PHP</h2>
<table>
<tr>
<th>Расширение</th>
<th>Статус</th>
</tr>
<?php foreach ($requirements['Extensions'] as $ext => $loaded): ?>
<tr>
<td><?php echo $ext; ?></td>
<td class="<?php echo $loaded ? 'success' : 'error'; ?>">
<?php echo $loaded ? '✅ Установлено' : '❌ Не установлено'; ?>
</td>
</tr>
<?php endforeach; ?>
</table>
<h2>Настройки PHP</h2>
<table>
<tr>
<th>Параметр</th>
<th>Значение</th>
</tr>
<tr>
<td>memory_limit</td>
<td><?php echo ini_get('memory_limit'); ?></td>
</tr>
<tr>
<td>upload_max_filesize</td>
<td><?php echo ini_get('upload_max_filesize'); ?></td>
</tr>
<tr>
<td>post_max_size</td>
<td><?php echo ini_get('post_max_size'); ?></td>
</tr>
<tr>
<td>max_execution_time</td>
<td><?php echo ini_get('max_execution_time'); ?> секунд</td>
</tr>
<tr>
<td>date.timezone</td>
<td><?php echo ini_get('date.timezone') ?: 'Не установлено'; ?></td>
</tr>
</table>
<?php
$all_good = $requirements['PHP Version']['status'] &&
!in_array(false, $requirements['Extensions']);
?>
<h2>Итог</h2>
<p class="<?php echo $all_good ? 'success' : 'error'; ?>">
<?php if ($all_good): ?>
✅ Ваше окружение готово для разработки на PHP!
<?php else: ?>
❌ Необходимо установить недостающие компоненты
<?php endif; ?>
</p>
</body>
</html>
```text
## Практика
### Задание 1: Установка окружения
Установите один из вариантов:
- XAMPP (для универсальности)
- OpenServer (если Windows)
- Laragon (если Windows и любите скорость)
- Docker (если хотите учиться современным подходам)
### Задание 2: Проверка установки
1. Создайте файл `info.php` с `<?php phpinfo(); ?>`
2. Откройте его в браузере
3. Найдите версию PHP, путь к php.ini, список установленных расширений
### Задание 3: Первый скрипт
Создайте файл `hello.php`:
```php
<?php
$name = "Ваше имя";
$php_version = phpversion();
$server_software = $_SERVER['SERVER_SOFTWARE'] ?? 'Неизвестно';
echo "<h1>Привет, $name!</h1>";
echo "<p>PHP версия: $php_version</p>";
echo "<p>Веб-сервер: $server_software</p>";
echo "<p>Текущее время: " . date('d.m.Y H:i:s') . "</p>";
?>
```text
### Задание 4: Настройка php.ini
1. Найдите файл php.ini
2. Включите отображение ошибок (`display_errors = On`)
3. Установите временную зону (`date.timezone = Europe/Moscow`)
4. Перезапустите сервер
5. Проверьте изменения с помощью `phpinfo()`
### Задание 5: Установка Composer
1. Установите Composer
2. Создайте новый проект
3. Выполните `composer init`
4. Установите пакет `nesbot/carbon`
5. Используйте его в коде
## Онлайн-редакторы (альтернатива)
Если у вас сложности с установкой локального окружения, временно используйте:
- **PHPSandbox** (https://phpsandbox.io/) — полноценная PHP-среда
- **3v4l** (https://3v4l.org/) — быстрое тестирование кода
- **Repl.it** (https://replit.com/) — онлайн IDE с поддержкой PHP
**Важно:** Онлайн-редакторы хороши для обучения, но для реальной разработки нужно локальное окружение!
## Устранение типичных проблем
### Apache не запускается (порт 80 занят)
**Windows:**
```bash
# Проверяем что использует порт 80
netstat -ano | findstr :80
# Останавливаем конфликтующее приложение (обычно Skype или IIS)
```text
**Или измените порт Apache:**
1. Откройте `httpd.conf` (в XAMPP: `C:\xampp\apache\conf\httpd.conf`)
2. Найдите `Listen 80`
3. Измените на `Listen 8080`
4. Перезапустите Apache
5. Открывайте сайты: `http://localhost:8080`
### MySQL не запускается (порт 3306 занят)
1. Остановите другие MySQL сервисы
2. Или измените порт MySQL в конфигурации
### PHP не обрабатывается (скачивается файл)
Проблема: Модуль PHP не подключен к Apache.
**Решение для XAMPP:**
1. Откройте `httpd.conf`
2. Найдите строки с `php` модулем
3. Убедитесь что они не закомментированы (нет `#` в начале)
### Ошибка "Call to undefined function"
Проблема: Не установлено нужное расширение PHP.
**Решение:**
1. Откройте `php.ini`
2. Найдите нужное расширение (например, `extension=gd`)
3. Раскомментируйте (уберите `;` в начале)
4. Перезапустите сервер
## Итоги
В этом уроке вы:
✅ Узнали о разных способах установки PHP
✅ Установили локальное окружение для разработки
✅ Настроили php.ini для комфортной работы
✅ Установили Composer для управления пакетами
✅ Настроили редактор кода
✅ Проверили готовность окружения
### Следующий шаг
Теперь, когда окружение готово, переходим к изучению основ PHP: [Синтаксис и переменные](/php/syntax/)
### Ключевые моменты
1. **Выбирайте инструмент под свои нужды** — XAMPP универсален, Docker для продвинутых
2. **Правильно настройте php.ini** — включите ошибки для разработки
3. **Composer обязателен** — современная PHP-разработка без него невозможна
4. **Хороший редактор ускоряет работу** — VS Code с плагинами или PhpStorm
5. **Проверяйте окружение** — используйте тестовые скрипты
**Важно:** Не бойтесь экспериментировать! Локальное окружение для того и создано — можно всё сломать и переустановить заново.
---
**Готовы писать код?** Переходим к следующему уроку: [Синтаксис и переменные](/php/syntax/)