Перейти к основному содержанию

Развертывание проектов за пределами классической связки PHP+MySQL. Настройка сред выполнения Python, Perl, Node.js, подключение баз данных PostgreSQL/Redis и использование компилируемых языков на виртуальном хостинге.

Как установить специфические расширения PECL для PHP (например, Redis, Swoole, GRPC), которых нет в стандартном списке панели управления?
Beget
Специфические языки программирования и среды
Статья описывает пошаговую инструкцию по установке расширений PECL для PHP на хостинге Beget, включая проверку доступности расширений, подключение к серверу, установку и настройку PHP, а также проверку успешной установки.
Ошибка Cannot find module 'express' при запуске Node.js. Нужно ли запускать установку пакетов от имени суперпользователя?
Beget
Специфические языки программирования и среды
Если при запуске Node.js-приложения возникает ошибка «Cannot find module 'express'», проверьте, установлен ли модуль express в проекте, корректен ли путь к модулю в файле package.json и нет ли проблем с правами доступа к файлам и папкам.
Какую версию Python я могу использовать на текущем тарифе и как ее сменить?
Beget
Специфические языки программирования и среды
Узнайте версию Python, доступную на вашем тарифе хостинга Beget, и измените её при необходимости. Ознакомьтесь с описанием вашего тарифного плана на сайте хостинга или в личном кабинете, затем войдите в аккаунт, перейдите в раздел управления сайтами или настройками сервера и выберите нужную версию Python из списка доступных версий.

Этот раздел поможет настроить окружение для нестандартных задач без перехода на дорогостоящие выделенные серверы.

1. Интерпретируемые языки (Python и Perl)

  • Perl: классическая среда для работы CGI-скриптов полностью поддерживается. Для максимальной производительности рекомендуется использовать модуль mod_perl, который встраивает интерпретатор прямо в веб-сервер Apache, ускоряя обработку запросов до 20 раз за счет кэширования скомпилированного кода. Если вашему приложению требуется специфический CPAN-модуль, достаточно написать запрос в техподдержку — мы устанавливаем расширения системно для всего сервера.
  • Python: поддержка версий 3.x доступна через механизм Passenger WSGI. Это позволяет запускать современные фреймворки (Django, Flask, FastAPI).
    • Особенность: управление зависимостями происходит через создание файла requirements.txt в корне проекта.
    • Настройка: для корректной отдачи статических файлов (CSS, JS) необходимо создавать символические ссылки из папки приложения (static) в публичную директорию public_html.

2. Современные среды выполнения (Node.js) Для запуска серверного JavaScript используется менеджер процессов Phusion Passenger.

  • Как это работает: вы загружаете код в папку сайта, а специальный файл .htaccess перенаправляет запросы к Node-приложению.
  • Управление пакетами: установка библиотек выполняется по SSH через команду npm install.
  • Порты: приложение должно слушать случайный порт, предоставляемый переменной окружения $PORT, которую передает Passenger.

3. Базы данных помимо MySQL Хотя MySQL остается стандартом де-факто, инфраструктура поддерживает работу с другими хранилищами:

  • PostgreSQL: доступен как в виде облачного сервиса (DBaaS), так и локально на некоторых тарифах. Поддерживается тонкая настройка ролей, привилегий и внешнего доступа через psql или графические клиенты (DBeaver, DataGrip).
  • NoSQL (Redis/Memcached): используются для хранения сессий высоконагруженных сайтов и кеширования тяжелых SQL-запросов. Подключение осуществляется через сокеты Unix для минимизации задержек.

4. Компилируемые языки (Go / Rust) Запуск бинарных файлов возможен на тарифах с доступом к SSH.

  • Ограничения: программа должна уметь работать в режиме FastCGI или слушать сетевой порт.
  • Самостоятельная сборка: компиляция исходного кода обычно производится локально на вашей машине, после чего готовый исполняемый файл переносится на сервер. Обновление версии требует ручной замены бинарника и перезапуска процесса.

5. Конфигурация веб-сервера (.htaccess vs Nginx) Поскольку архитектура Beget использует комбинацию Nginx (как фронтенд-балансировщик) и Apache/Python-backends, важно понимать разделение обязанностей:

  • Правила реврайтов для PHP пишутся в .htaccess.
  • Для Python/Node.js логика маршрутизации URL должна быть реализована непосредственно во фреймворке, а в .htaccess указывается только точка входа (файл passenger_wsgi.py или app.js).