2. Установка PHP
Введение
Заголовок раздела «Введение»Для разработки на PHP вам нужно локальное окружение — веб-сервер с установленным PHP и базой данных. В этом уроке мы рассмотрим несколько способов установки PHP на разных операционных системах и настроим рабочую среду.
Что вам понадобится
Заголовок раздела «Что вам понадобится»Типичный стек для PHP-разработки (LAMP/WAMP/MAMP):
- Linux/Windows/Mac — операционная система
- Apache или Nginx — веб-сервер
- MySQL или MariaDB — база данных
- PHP — интерпретатор PHP
Не обязательно устанавливать все по отдельности — существуют готовые сборки, которые включают всё необходимое.
Выбор инструмента
Заголовок раздела «Выбор инструмента»Готовые сборки (рекомендуется для начинающих)
Заголовок раздела «Готовые сборки (рекомендуется для начинающих)»| Инструмент | Платформа | Преимущества | Недостатки |
|---|---|---|---|
| XAMPP | Win/Mac/Linux | Простой, популярный | Тяжеловесный |
| OpenServer | Windows | Популярен в РФ, много модулей | Только Windows |
| Laragon | Windows | Быстрый, современный | Только Windows |
| MAMP | Mac/Windows | Простой интерфейс | Бесплатная версия ограничена |
| Local by Flywheel | Win/Mac/Linux | Заточен под WordPress | Только для WP |
| Docker | Все | Изолированная среда | Крутая кривая обучения |
Нативная установка
Заголовок раздела «Нативная установка»Для продвинутых пользователей можно установить компоненты отдельно, но это сложнее и займет больше времени.
Установка XAMPP (Windows/Mac/Linux)
Заголовок раздела «Установка XAMPP (Windows/Mac/Linux)»XAMPP — самый популярный вариант для начинающих. Рассмотрим установку пошагово.
Шаг 1: Скачивание
Заголовок раздела «Шаг 1: Скачивание»- Перейдите на https://www.apachefriends.org/
- Скачайте версию для вашей ОС
- Выберите версию с PHP 8.2 или новее
Шаг 2: Установка (Windows)
Заголовок раздела «Шаг 2: Установка (Windows)»-
Запустите установщик (
xampp-windows-x64-8.2.x-installer.exe) -
Выберите компоненты:
- ✅ Apache (веб-сервер)
- ✅ MySQL (база данных)
- ✅ PHP
- ✅ phpMyAdmin (управление БД)
- ⬜ FileZilla, Mercury (не обязательно)
-
Выберите папку установки (по умолчанию
C:\xampp) -
Нажмите “Next” → “Install”
-
Дождитесь окончания установки
Шаг 3: Запуск XAMPP
Заголовок раздела «Шаг 3: Запуск XAMPP»- Откройте XAMPP Control Panel
- Нажмите Start напротив Apache
- Нажмите Start напротив MySQL
- Если появляется ошибка порта 80 (конфликт с Skype/IIS):
- Остановите Skype или измените порт Apache
Шаг 4: Проверка установки
Заголовок раздела «Шаг 4: Проверка установки»Откройте браузер и перейдите по адресу:
http://localhost```text
Вы должны увидеть приветственную страницу XAMPP.
### Шаг 5: Создание первого файла
1. Откройте папку `C:\xampp\htdocs\` (или `/Applications/XAMPP/htdocs/` на Mac)2. Создайте файл `test.php`:
```php<?phpphpinfo();?>```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<?phpecho "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<?phpecho "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
# Устанавливаем Apachesudo apt install apache2 -y
# Устанавливаем MySQLsudo 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
# Перезапускаем Apachesudo systemctl restart apache2
# Проверяем статусsudo systemctl status apache2```text
### Проверка установки
```bash# Создаем тестовый файлsudo nano /var/www/html/test.php```text
Вставьте:
```php<?phpphpinfo();?>```text
Сохраните (Ctrl+O, Enter, Ctrl+X) и откройте: `http://localhost/test.php`
### Метод 2: Docker (универсальный)
Создайте файл `docker-compose.yml`:
```yamlversion: '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. Запустите MAMP4. Нажмите "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)"
# Устанавливаем PHPbrew install php
# Устанавливаем MySQLbrew install mysql
# Запускаем MySQLbrew services start mysql
# Проверяем PHPphp -v
# Запускаем встроенный серверcd ~/Sitesmkdir myprojectcd myprojectecho '<?php phpinfo(); ?>' > index.phpphp -S localhost:8000
# Открываем http://localhost:8000```text
## Настройка php.ini
php.ini — главный конфигурационный файл PHP. Вот важные настройки для разработки.
### Где находится php.ini?
```bash# Узнать путь к php.iniphp --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 = Ondisplay_startup_errors = Onerror_reporting = E_ALL
; Лимиты (увеличьте для загрузки файлов)upload_max_filesize = 64Mpost_max_size = 64Mmemory_limit = 256Mmax_execution_time = 300
; Временная зона (Москва)date.timezone = Europe/Moscow
; Расширения (раскомментируйте нужные, убрав ; в начале)extension=curlextension=gdextension=mbstringextension=mysqliextension=pdo_mysqlextension=zipextension=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. Завершите установку
Проверка:
```bashcomposer --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
# Инициализируем composercomposer init
# Устанавливаем пакет (например, библиотеку для работы с датами)composer require nesbot/carbon```text
Использование:
```php<?phprequire '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 Code2. Нажмите 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.ini2. Включите отображение ошибок (`display_errors = On`)3. Установите временную зону (`date.timezone = Europe/Moscow`)4. Перезапустите сервер5. Проверьте изменения с помощью `phpinfo()`
### Задание 5: Установка Composer
1. Установите Composer2. Создайте новый проект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# Проверяем что использует порт 80netstat -ano | findstr :80
# Останавливаем конфликтующее приложение (обычно Skype или IIS)```text
**Или измените порт Apache:**1. Откройте `httpd.conf` (в XAMPP: `C:\xampp\apache\conf\httpd.conf`)2. Найдите `Listen 80`3. Измените на `Listen 8080`4. Перезапустите Apache5. Открывайте сайты: `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 с плагинами или PhpStorm5. **Проверяйте окружение** — используйте тестовые скрипты
**Важно:** Не бойтесь экспериментировать! Локальное окружение для того и создано — можно всё сломать и переустановить заново.
---
**Готовы писать код?** Переходим к следующему уроку: [Синтаксис и переменные](/php/syntax/)