Установка 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 в брандмауэре.
План установки (мини‑методология)
- Обновить систему.
- Установить стек LAMP и зависимости PHP.
- Настроить MariaDB: создать базу и пользователя.
- Установить Composer и зависимости Polr.
- Настроить виртуальный хост Apache.
- Запустить веб‑установщик Polr и настроить админа.
- Установить бесплатный SSL от Let’s Encrypt.
- Проверить и настроить безопасность, бэкапы и обновления.
Обновление системы
Перед началом обновите пакеты и перезагрузите систему:
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.




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

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

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


Админ‑панель доступна в верхнем правом углу через 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 содержат инструкции по миграциям и расширению функциональности.
Похожие материалы
Отключить загрузку запросов в Power BI
Как воспроизводить медиа на Smart TV
Как изменить размер изображения в Paint 3D
Автообновление дашбордов Power BI
Как получить доступ к Google Bard AI в Индии