К основному содержимому
🐘

PHP

21 статей в разделе

Раздел о PHP как о рабочем окружении на сервере, а не о языке программирования: как устроен PHP-FPM с его пулами и воркерами, зачем нужен OPcache и когда включать JIT, как держать на одной машине несколько версий PHP — 7.4, 8.1, 8.2 — не ломая старые проекты при обновлении.

Отдельные статьи — про инструменты вокруг PHP: Composer и оптимизация автозагрузчика, Xdebug для отладки без потери скорости на проде, очереди с Supervisor для Laravel и Symfony, сессии в Redis, когда сайт работает на нескольких серверах, и Swoole с RoadRunner для долгоживущих процессов вместо классического FPM.

Есть и практические разборы: чем PHP в cron отличается от PHP-FPM, как читать error_log и не путать его с display_errors на проде, зачем strict_types и как безопасно проверять загружаемые файлы, чтобы через них не подсунули веб-шелл.

  • PHP-FPM, OPcache и JIT: настройка под нагрузку
  • Несколько версий PHP и обновление до 8.3/8.4
  • Composer, автозагрузка и Xdebug
  • Laravel и Symfony: деплой, очереди, сессии в Redis
PHP-FPM: пулы, воркеры и оптимизация Настройка PHP-FPM на VPS: конфигурация пулов, pm.max_children, pm dynamic/static/ondemand. Оптимизируйте PHP-FPM для максимальной производительности сайта. PHP OPcache: настройка и оптимизация кэша байт-кода Настройка PHP OPcache на Linux: opcache.memory_consumption, opcache.max_accelerated_files. Ускорьте PHP в 2–10 раз с правильным кэшем байт-кода. Composer: установка и управление зависимостями PHP Установка Composer на Ubuntu/Debian, создание composer.json, команды require/update/install, оптимизация автозагрузчика для production. Установка расширений PHP на Ubuntu и Debian Как установить расширения PHP на Ubuntu и Debian: php-curl, php-gd, php-mbstring, php-xml. Список необходимых расширений для WordPress, Laravel и других CMS. PHP настройка: memory_limit и upload_max_filesize Как изменить memory_limit, upload_max_filesize, post_max_size и max_execution_time в PHP. Настройка через php.ini, .htaccess, .user.ini и ini_set в коде. Laravel на VPS: установка, настройка Nginx и деплой Полная инструкция по установке Laravel на VPS: PHP-FPM, Nginx vhost, .env, php artisan migrate, Supervisor для очередей, cron для scheduler. PHP Security: усиление безопасности через настройки php.ini Настройка безопасного PHP: disable_functions, expose_php, open_basedir, allow_url_fopen, session безопасность. Чеклист безопасности php.ini для production VPS. Несколько версий PHP на одном сервере: 7.4, 8.1, 8.2 Как установить несколько версий PHP на Ubuntu/Debian через ondrej/php PPA: PHP 7.4, 8.1, 8.2 одновременно. Настройка Nginx для разных версий PHP-FPM. PHP автозагрузка: оптимизация Composer autoloader Оптимизация автозагрузчика Composer для production: dump-autoload --optimize, classmap, PSR-4 vs PSR-0. Ускорение Laravel и Symfony в 2–3 раза. PHP OPcache и JIT: настройка для максимальной скорости Полная настройка PHP OPcache и JIT-компилятора для ускорения сайта в 3-5 раз. Параметры opcache.ini, мониторинг, оптимальные значения для продакшена. WebSockets на PHP с Ratchet: чат и уведомления Создание WebSocket-сервера на PHP с библиотекой Ratchet. Настройка чата, push-уведомлений, работа с Nginx reverse proxy и systemd на VPS. PHP 8.3 и 8.4 на сервере: что нового и когда обновляться PHP 8.3 и 8.4: главные изменения, сроки поддержки версий и порядок обновления на сервере без простоя сайта. Xdebug на сервере: отладка и профилирование PHP-кода Xdebug: установка на сервере, настройка step debug в IDE, режим профилирования и почему нельзя включать его на проде. Symfony на VPS: деплой, конфиг Nginx и права на каталоги Symfony на VPS: структура каталогов, конфиг Nginx для public/index.php, права на var/cache и типовые ошибки 502. Очереди PHP и Supervisor: воркеры для Laravel и Symfony Supervisor для очередей PHP: конфиг воркера, автоперезапуск, лимит памяти и разбор частых причин зависших задач. Swoole и RoadRunner: PHP как долгоживущий процесс Swoole и RoadRunner: чем долгоживущий PHP-процесс отличается от FPM, как настроить сервер и на что смотреть при утечках памяти. Сессии PHP в Redis для нескольких серверов Сессии PHP в Redis: как настроить session.save_handler, установить php-redis и не потерять сессии за балансировщиком нагрузки. PHP в cron: чем CLI отличается от FPM на практике PHP в cron: разница между CLI и FPM, свой php.ini, память и таймауты, правильный crontab и логирование вывода задач. Логи PHP: error_log, display_errors и разбор фаталов Логи PHP на практике: где искать error_log, чем display_errors отличается от log_errors и как разобрать типовой фатал по строке лога. strict_types и строгая типизация PHP на проде strict_types в PHP: как declare(strict_types=1) меняет обработку типов, где код ломается и как безопасно включить строгую типизацию на проде. Загрузка файлов на PHP: проверка типа и защита Загрузка файлов на PHP: почему расширение и Content-Type не защита, как проверить тип через finfo и куда сохранять файлы безопасно.