Устанавливаем PHP-расширения: mbstring, curl, gd, xml, json, opcache, redis/memcached
Хочу себе такие же кнопкиЧто вы получите сразу после прочтения
- Поймёте, какие PHP‑расширения критичны для работы сайта на Битриксе и почему.
- Научитесь ставить их на самых популярных дистрибутивах Debian/Ubuntu и CentOS/RHEL без лишних вопросов.
- Сможете проверить, что расширения действительно загружены, и быстро исправить типичные ошибки.
1. Почему именно эти расширения?
| Расширение | Что делает | Зачем нужно Битриксу |
|---|---|---|
| mbstring | Работа с многобайтными строками (UTF‑8) | Корректный вывод русских символов в шаблонах и API |
| curl | HTTP‑клиент, запросы к внешним сервисам | Интеграция с платёжными шлюзами, соцсетями, CDN |
| gd | Графика: создание миниатюр, водяных знаков | Автоматическое масштабирование изображений товаров |
| xml | Парсинг/генерация XML‑документов | Обмен данными с 1С, RSS‑ленты, SOAP‑сервисы |
| json | Кодирование/декодирование JSON | AJAX‑ответы, работа с REST‑API |
| opcache | Кеширование байткода PHP | Уменьшение времени отклика, экономия CPU |
| redis / memcached | Быстрый in‑memory кеш | Хранение сессий, кэша запросов, ускорение сложных запросов |
Если хотя бы одно из этих расширений отсутствует, Битрикс будет падать, выдавать «неизвестный тип данных» или работать медленно.
2. Подготовка сервера
Важно: Перед установкой убедитесь, что у вас есть root‑доступ (или sudo) и актуальная версия PHP, поддерживаемая Битриксом (обычно 7.4‑8.2).
# Обновляем список пакетов
sudo apt update # Debian/Ubuntu
sudo yum check-update # CentOS/RHEL
3. Установка на Debian/Ubuntu
3.1. Установка пакетов
# Указываем нужную ветку PHP, например 8.1
sudo apt install php8.1-mbstring php8.1-curl php8.1-gd \
php8.1-xml php8.1-json php8.1-opcache \
php8.1-redis php8.1-memcached
Если вы используете другую версию PHP, замените 8.1 на нужный номер.
3.2. Проверка установки
php -m | grep -E 'mbstring|curl|gd|xml|json|opcache|redis|memcached'
Вывод должен содержать все перечисленные имена. Если чего‑то нет, проверьте, что пакет действительно установлен (dpkg -l | grep php8.1).
3.3. Включение в php.ini
Большинство пакетов автоматически добавляют файлы в /etc/php/8.1/mods-available/ и включают их через phpenmod. Если нужно вручную добавить, откройте основной конфиг:
sudo nano /etc/php/8.1/apache2/php.ini # для Apache
# или
sudo nano /etc/php/8.1/fpm/php.ini # для PHP‑FPM
И добавьте (если уже нет) строки:
extension=mbstring
extension=curl
extension=gd
extension=xml
extension=json
extension=opcache
extension=redis
extension=memcached
3.4. Перезапуск службы
sudo systemctl restart apache2 # Apache
# или
sudo systemctl restart php8.1-fpm
4. Установка на CentOS / RHEL
4.1. Добавление репозитория Remi (если ещё не добавлен)
sudo yum install https://rpms.remirepo.org/enterprise/remi-release-8.rpm
sudo yum module reset php
sudo yum module enable php:remi-8.1
4.2. Установка пакетов
sudo yum install php-mbstring php-curl php-gd \
php-xml php-json php-opcache \
php-redis php-pecl-memcached
4.3. Проверка
php -m | grep -E 'mbstring|curl|gd|xml|json|opcache|redis|memcached'
4.4. Включение в php.ini
Обычно репозиторий создаёт файлы в /etc/php.d/. Если нужно добавить вручную, отредактируйте:
sudo nano /etc/php.ini
и вставьте те же extension= строки, что и выше.
4.5. Перезапуск
sudo systemctl restart httpd # Apache
# или
sudo systemctl restart php-fpm
5. Тонкая настройка
5.1. opcache
[opcache]
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1 ; в продакшене обычно 0
5.2. redis
Для Битрикса часто используют сессии в Redis:
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
5.3. memcached
Альтернатива Redis для кэша запросов:
memcached.sess_locking = 1
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
6. Частые проблемы и их решения
| Проблема | Причина | Как исправить |
|---|---|---|
PHP Warning: Undefined function mb_strlen() |
mbstring не загружен |
Убедитесь, что пакет установлен и строка extension=mbstring присутствует в php.ini. |
cURL error 7: Failed to connect |
curl отключён в php.ini |
Удалите disable_functions = curl_* или отключите disable_functions. |
| Ошибки при работе с изображениями | gd отсутствует |
Проверьте, что в php -m есть gd. Если нет – переустановите пакет. |
Fatal error: Uncaught Error: Call to undefined function json_encode() |
json отключён в php.ini |
Убедитесь, что extension=json включено. |
PHP Notice: Undefined variable: _SESSION |
Сессии не сохраняются в Redis/Memcached | Проверьте session.save_handler и session.save_path. |
PHP Fatal error: Allowed memory size exhausted |
opcache слишком маленький |
Увеличьте opcache.memory_consumption до 256‑512 МБ. |
7. Как проверить, что всё работает в Битриксе
- Откройте административную панель → Настройки → Производительность → Информация о PHP.
- В списке «Установленные модули» должны быть все нужные расширения.
- Запустите любой модуль, использующий графику (например, создание миниатюры товара). Если миниатюра появляется без ошибок –
gdработает. - Проверьте работу кэша: включите Кеширование в настройках и посмотрите, меняется ли время отклика в
top/htop.
Практика для закрепления
-
Установите недостающее расширение
На тестовом сервере с Ubuntu 22.04 установитеphp8.1-xml, проверьте его наличие черезphp -mи перезапустите Apache. -
Настройте сессии в Redis
Установитеphp8.1-redis, добавьте вphp.iniстроки дляsession.save_handlerиsession.save_path, перезапустите PHP‑FPM и убедитесь, что в таблицеsessionsв базе Битрикса появляются записи сsession_id. -
Оптимизируйте OpCache
Установитеopcache.memory_consumption=512иopcache.max_accelerated_files=20000. Сравните время выполнения скриптаphp -r "for($i=0;$i<100000;$i++){}"до и после изменения. -
Отладка GD
Напишите простой PHP‑скрипт, генерирующий PNG‑картинку с текстом «Тест». Если скрипт падает с ошибкой «gd не найден», найдите и исправьте причину. -
Проверка совместимости
На сервере с CentOS 8 установитеphp-mbstring,php-curlиphp-json. Затем выполнитеphp -i | grep -i "configure command"и найдите, какие параметры компиляции использовались. Сравните их с рекомендациями Битрикса (см. официальную документацию).
Совет от эксперта: После каждой установки сразу проверяйте вывод
php -m. Это экономит часы поиска «потерянного» расширения, когда сайт уже «запустился», но работает с ошибками.
Удачной настройки и быстрого сайта! 🚀
CamZamZam - онлайн фото с вебкамеры с эффектами
Cartoon Network: игры с персонажами
Чат рулетка в 2026: будущие функции
Эксперт по доменным стратегическим решениям
Хостинг для e-commerce проектов
Как играть в слоты
Как настроить CDN для сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как оптимизировать производительность сайта с хостингом Host.bg
Как выбрать правильный хостинг для вашего сайта
Какие бывают ЛОР болезни у детей
Кассовые терминалы с оплатой картами
LOL куклы витрина детская
Лучшие видеорегистраторы для водителей
Онлайн QR-код сканер
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Основы настройки веб-хостинга: что вам нужно знать
Партнёрская программа без блога: как получать трафик из Telegram
Профессиональные хитрости для пользователей хостинга Host.bg
Регистрация ИП в Москве для иностранных граждан
Сравнение хостинга Host.bg с другими провайдерами
Субтитры — нет, уши — включены: погружение в английский за 5 минут
Сумки с бусинами
Техника для строительства загородных трасс
ТОП-10 VPS для разработчика: рейтинг серверов под рабочие задачи
WordPress блог для бизнеса