Гид по технологиям

Установка Polr на Debian 10 — руководство

6 min read Сервер Обновлено 19 Nov 2025
Установка Polr на Debian 10 — руководство
Установка Polr на Debian 10 — руководство

Важное: перед началом убедитесь, что у вас есть доступ root к серверу и домен указывает на IP сервера (в примере polr.example.com).

Что такое Polr

Polr — это бесплатный и открытый сокращатель URL-адресов, который можно разместить на собственном сервере. Проект написан на PHP с использованием Lumen и использует MariaDB для хранения данных. Полезно, если нужно контролировать сокращённые ссылки и интегрировать сервис в существующие приложения.

Краткое определение: Lumen — облегчённый микрофреймворк на базе Laravel для быстрых API и приложений.

Требования

  • Сервер с Debian 10 (Buster). 64‑бит рекомендовано.
  • Зарегистрированный домен, указывающий на IP сервера (в примере polr.example.com).
  • Доступ root или пользователь с sudo.
  • Открытые порты 80 и 443 в брандмауэре.

План установки (мини‑методология)

  1. Обновить систему.
  2. Установить стек LAMP и зависимости PHP.
  3. Настроить MariaDB: создать базу и пользователя.
  4. Установить Composer и зависимости Polr.
  5. Настроить виртуальный хост Apache.
  6. Запустить веб‑установщик Polr и настроить админа.
  7. Установить бесплатный SSL от Let’s Encrypt.
  8. Проверить и настроить безопасность, бэкапы и обновления.

Обновление системы

Перед началом обновите пакеты и перезагрузите систему:

apt-get update -y
apt-get upgrade -y

После завершения перезагрузите сервер, чтобы применить ядро и пакетные обновления.

Установка LAMP и зависимостей

Установите Apache, MariaDB, PHP и пакеты, необходимые для Polr:

apt-get install apache2 mariadb-server libapache2-mod-php php php-pdo php-mysql php-mbstring php-tokenizer php-json php-curl git wget unzip -y

Запустите и включите сервисы Apache и MariaDB при загрузке:

systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb

Настройка базы данных MariaDB

В Debian 10 пароль root для MariaDB по умолчанию не задан. Войдите в консоль:

mysql

Внутри MySQL задайте пароль root и создайте базу и пользователя для Polr (замените newpassword / password на ваши безопасные пароли):

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpassword");
MariaDB [(none)]> CREATE DATABASE polrdb;
MariaDB [(none)]> GRANT ALL ON polrdb.* TO 'polr' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Примечание: в продуктивной среде используйте надёжные пароли и ограничивайте доступ по сети.

Установка Composer

Composer — менеджер зависимостей PHP. Скачайте установщик:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Проверьте подпись инсталлятора и установите Composer:

HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer

После установки Composer должен быть доступен как /usr/local/bin/composer.

Установка Polr

Склонируйте последний релиз Polr в корневую папку веб‑сервера и установите зависимости:

cd /var/www/html
git clone https://github.com/cydrobolt/polr.git --depth=1
cd polr
composer install --no-dev -o

Включите веб‑инсталлятор, переименовав файл конфигурации установки:

mv .env.setup .env

Установите права на каталог проекта:

chown -R www-data:www-data /var/www/html/polr/
chmod -R 755 /var/www/html/polr/

Важно: владелец www-data нужен, чтобы Apache мог записывать кеш и логи. В продакшне проверьте минимальные привилегии для файлов.

Конфигурация Apache

Создайте виртуальный хост Apache для Polr:

nano /etc/apache2/sites-available/polr.conf

Добавьте конфигурацию (замените [email protected] и ServerName на ваш адрес и домен):


     ServerAdmin [email protected]
     DocumentRoot /var/www/html/polr/public
     ServerName polr.example.com

     
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     

     ErrorLog ${APACHE_LOG_DIR}/polr_error.log
     CustomLog ${APACHE_LOG_DIR}/polr_access.log combined

Включите сайт и модуль перезаписи URL и перезапустите Apache:

a2ensite polr.conf
a2enmod rewrite
systemctl restart apache2

Доступ к веб‑интерфейсу установки

Откройте в браузере http://polr.example.com. Вас должно перенаправить на мастер установки Polr.

Конфигурация базы данных Polr

Настройки приложения

Создание аккаунта администратора

Настройки reCaptcha

Заполните данные базы, параметры приложения и учётные данные администратора и нажмите Install.

Установка Polr завершена

Нажмите login и авторизуйтесь:

Страница входа Polr

После входа вы попадёте в интерфейс управления ссылками:

Интерфейс сокращателя Polr

Создание короткой ссылки

Админ‑панель доступна в верхнем правом углу через ADMIN → DASHBOARD:

Панель администратора

Защита сайта — Let’s Encrypt SSL

Установите Certbot для Apache и получите бесплатный сертификат:

apt-get install python-certbot-apache -y
certbot --apache -d polr.example.com

Во время процесса укажите адрес электронной почты, согласитесь с условиями и выберите перенаправление HTTP → HTTPS (рекомендовано). После успешной установки вы увидите подтверждение и файл vhost для SSL.

Congratulations! You have successfully enabled https://polr.example.com

Теперь сайт доступен по HTTPS.

Проверка, отладка и распространённые ошибки

  • 500 Internal Server Error: проверьте логи Apache (/var/log/apache2/polr_error.log) и права на каталоги; убедитесь, что composer установил зависимости.
  • Ошибка подключения к БД: проверьте правильность параметров в .env и пользователь/пароль базы.
  • Перезаписи не работает: убедитесь, что Apache модуль rewrite включён (a2enmod rewrite) и AllowOverride All задан в конфигурации.
  • Проблемы с Composer: запустите composer install –no-dev -o вручную и проверьте вывод на ошибки расширений PHP.

Проверка прав: каталог storage и bootstrap/cache (если есть) должны быть доступны для записи веб‑процессом.

Резервное копирование и обновления

Рекомендации:

  • Регулярно экспортируйте базу данных:
mysqldump -u root -p polrdb > /root/polrdb-$(date +%F).sql
  • Резервируйте конфигурационные файлы Apache и .env.
  • Перед обновлением Polr, сохраните бэкап базы и файлов.
  • Обновления Polr: git pull, затем composer install и, при необходимости, миграции (если в релизе есть инструкции).

Безопасность и твики для продакшна

  • Запретите доступ к .env через веб (обычно не доступен, но проверьте правила сервера).
  • Отключите отображение ошибок PHP в режиме production (display_errors = Off).
  • Ограничьте доступ к панели администратора по IP (если возможно) или включите двухфакторную аутентификацию в политике учёток.
  • Настройте автоматическое обновление Certbot (cron/лет‑renew).
  • Разверните брандмауэр (ufw) и разрешите только нужные порты:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Контрольный список ролей (кто что делает)

  • Системный администратор: настраивает сервер, сетевые правила, бэкапы, SSL.
  • Разработчик/DevOps: разворачивает Polr, управляет обновлениями и миграциями.
  • Администратор приложения: создаёт админ‑аккаунт, управляет сокращёнными ссылками, мониторит логи и метрики.

Критерии приёмки

  • Веб‑интерфейс Polr доступен по HTTPS на вашем домене.
  • Можно успешно войти в админ‑панель и создать короткую ссылку.
  • Сокращённая ссылка перенаправляет на целевой URL.
  • Резервная копия базы создана и восстановление проверено (тестовый импорт).
  • Логи ошибок не содержат критических исключений при базовых операциях.

Тестовые сценарии / Приёмочные тесты

  • Создать короткую ссылку, перейти по ней в браузере, убедиться, что происходит редирект.
  • Попробовать создать конфликтующий алиас и проверить поведение (ошибка/переопределение).
  • Проверить вход администратора и доступность dashboard.
  • Проверить автоматическое обновление сертификата Let’s Encrypt (dry‑run certbot renew –dry-run).

Короткий глоссарий

  • Polr — self‑hosted сокращатель ссылок.
  • LAMP — стек Apache + MariaDB (MySQL) + PHP.
  • Composer — менеджер зависимостей PHP.
  • Certbot / Let’s Encrypt — клиент и CA для бесплатных SSL‑сертификатов.

Когда этот подход может не подойти (контрпримеры)

  • Если вам нужна SaaS‑функциональность с высокой доступностью и масштабированием без поддержки инфраструктуры — лучше выбрать коммерческий сервис.
  • Для специальной аналитики переходов и интеграции с другими системами может потребоваться дополнительная разработка или плагины.

Советы по миграции и масштабированию

  • Для большого трафика вынесите базу данных на отдельный сервер или managed DB.
  • Используйте кеширование (Redis) и CDN для статического контента.
  • Настройте мониторинг (Prometheus/Grafana) и алерты на ошибки и превышение времени ответа.

Заключение

Поздравляем — вы установили Polr на Debian 10 и защитили сайт SSL‑сертификатом Let’s Encrypt. Проверьте рабочие сценарии, настройте бэкапы и мониторинг, и применяйте рекомендации по безопасности для продакшн‑эксплуатации. Если возникнут вопросы по конкретным ошибкам — опишите шаги и логи, и мы поможем их проанализировать.

Ресурсы и ссылки: официальная документация Polr и репозиторий GitHub содержат инструкции по миграциям и расширению функциональности.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить загрузку запросов в Power BI
Power BI

Отключить загрузку запросов в Power BI

Как воспроизводить медиа на Smart TV
Руководство

Как воспроизводить медиа на Smart TV

Как изменить размер изображения в Paint 3D
Руководство

Как изменить размер изображения в Paint 3D

Автообновление дашбордов Power BI
Power BI

Автообновление дашбордов Power BI

Как получить доступ к Google Bard AI в Индии
Искусственный интеллект

Как получить доступ к Google Bard AI в Индии

Запуск 16‑битных приложений в Windows 10 (64‑bit)
Windows

Запуск 16‑битных приложений в Windows 10 (64‑bit)