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

Установка Polr на Ubuntu 20.04 с Apache и Let's Encrypt

• 6 min read • DevOps • Обновлено 24 Nov 2025
Установка Polr на Ubuntu 20.04 с Apache и Let's Encrypt
Установка Polr на Ubuntu 20.04 с Apache и Let's Encrypt

Кратко

Кратко: этот пошаговый гид показывает, как установить и настроить Polr — самохостящийся PHP-шифтер ссылок — на сервере Ubuntu 20.04 с Apache и бесплатным SSL от Let’s Encrypt. Включены подготовка базы данных, установка зависимостей, конфигурация Apache, защита HTTPS, проверка работоспособности, а также рекомендации по безопасности и отладке.

TL;DR

  • Установите Apache, MariaDB и PHP.
  • Создайте базу данных и пользователя для Polr.
  • Загрузите Polr, установите Composer-зависимости, настройте права.
  • Создайте виртуальный хост Apache и включите rewrite.
  • Получите SSL с помощью Certbot и включите перенаправление на HTTPS.

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

Скриншот главной страницы установки Polr

О чем этот гайд

Этот материал рассчитан на системных администраторов и разработчиков, которые хотят самостоятельно разместить открытое решение для сокращения ссылок. Он покрывает базовую установку на Ubuntu 20.04 с Apache и автоматическим SSL от Let’s Encrypt. Небольшие отличия могут потребоваться для других дистрибутивов или при использовании Docker/Nginx.

Требования

  • Сервер с Ubuntu 20.04.
  • Действующий домен, указывающий на IP сервера (A-запись).
  • Доступ root или админ-права sudo.

Подготовка системы

Сначала обновите пакеты до актуального состояния:

apt-get update -y

После обновления пакетов переходите к установке сервисов.

Установка Apache, MariaDB и PHP

Установите Apache, MariaDB, PHP и необходимые расширения:

apt-get install apache2 mariadb-server php libapache2-mod-php libapache2-mod-wsgi php-gd php-curl php-xml php-xmlrpc php-curl php-imagick php-mbstring php-zip php-intl -y

Примечание: для продакшена проверьте версии PHP, которые поддерживает текущая версия Polr, и при необходимости используйте PPA для более новых версий PHP.

Создание базы данных для Polr

Polr использует MariaDB/MySQL. Войдите в MariaDB и создайте базу и пользователя:

mysql

В консоли MariaDB выполните:

MariaDB [(none)]> CREATE DATABASE polrdb;  
MariaDB [(none)]> GRANT ALL ON polrdb.* TO 'polr' IDENTIFIED BY 'password';

Не забудьте заменить ‘password’ на надёжный пароль.

Затем сбросьте привилегии и выйдите:

MariaDB [(none)]> FLUSH PRIVILEGES;  
MariaDB [(none)]> EXIT;

Установка Composer

Composer нужен для установки PHP-зависимостей.

curl -sS https://getcomposer.org/installer | php

Ожидаемый вывод:

All settings correct for using Composer
Downloading...

Composer (version 2.1.3) successfully installed to: /root/composer.phar
Use it: php composer.phar

Переместите двоичный файл в системное место:

mv composer.phar /usr/local/bin/composer

Проверьте версию:

composer -V

Отклик может предупреждать про запуск от root — это нормально, но по безопасности рекомендовано использовать отдельного пользователя для запуска composer в продакшне.

Установка Polr

Скачайте репозиторий и установите зависимости:

git clone https://github.com/cydrobolt/polr.git --depth=1 /var/www/html/polr

Затем:

cd /var/www/html/polr  
composer install --no-dev -o

Скопируйте пример файла окружения и настройте его:

cp .env.setup .env

Установите права для веб-сервера:

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

Важно: при использовании SELinux или AppArmor могут потребоваться дополнительные разрешения.

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

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

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

Вставьте конфигурацию (отредактируйте ServerName и ServerAdmin под ваш домен и почту):


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

Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/polr-error_log
CustomLog /var/log/apache2/polr-access_log common

Сохраните, затем включите модуль rewrite и сайт:

a2enmod rewrite  
a2ensite polr.conf

Перезапустите Apache:

systemctl restart apache2

Проверка статуса:

systemctl status apache2

Ожидаемый фрагмент вывода показан в оригинальном гайде и подтверждает, что служба запущена.

Доступ к веб-интерфейсу Polr

Откройте http://polr.example.com в браузере и следуйте мастеру установки. Поля, которые нужно заполнить: имя БД, пользователь, пароль БД, настройки приложения, URL Polr, учетные данные администратора. Затем нажмите Install.

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

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

Параметры сокращения ссылок

Настройки Captcha в Polr

После успешной установки вы увидите подтверждение и сможете попасть в панель управления Polr.

Экран успешной установки

Панель управления Polr

Защита Polr с Let’s Encrypt (бесплатный SSL)

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

apt-get install python3-certbot-apache -y

Запустите Certbot для вашего домена:

certbot --apache -d polr.example.com

Во время процесса вас попросят ввести e-mail и согласиться с условиями. Затем Certbot создаст ssl-конфигурацию и предложит перенаправление HTTP -> HTTPS. Выберите перенаправление для новых сайтов.

Пример диалога и результаты установки приведены в оригинальном руководстве. После успешной установки сайт будет доступен по https://polr.example.com.

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

  • Домен polr.example.com отвечает по HTTPS и перенаправляет HTTP на HTTPS.
  • Страница установки Polr доступна и мастер успешно завершил установку.
  • Вход в админ-панель Polr работает с созданными учетными данными.
  • Логи Apache не содержат критических ошибок при загрузке сайта.

Чек-лист ролей

  • Системный администратор:
    • Проверить DNS A-запись.
    • Обновить систему и установить пакеты.
    • Настроить брандмауэр и SELinux/AppArmor при необходимости.
  • Бэкенд-разработчик:
    • Настроить .env (данные БД, ключ приложения).
    • Проверить зависимости Composer и миграции БД.
  • Оператор безопасности:
    • Подключить Certbot и настроить автоматическое обновление сертификата (cron/systemd).
    • Настроить резервное копирование базы и /var/www/html/polr.

Рекомендации по безопасности и сопровождению

  • Регулярно обновляйте ОС и PHP-пакеты.
  • Используйте строгие пароли для БД и администратора Polr.
  • Включите автоматическое обновление сертификатов (certbot renew автоматизируется systemd).
  • Ограничьте доступ к серверу по SSH (ключи, отключите root по SSH, используйте fail2ban).
  • Делайте регулярные бэкапы БД и файлов приложения.

Отладка и типичные проблемы

  • Проблема: пустая страница или 500 Internal Server Error.

    • Проверьте логи Apache: /var/log/apache2/polr-error_log и /var/log/apache2/error.log.
    • Проверьте права на папки и владельца www-data.
    • Убедитесь, что расширения PHP установлены (mbstring, intl, pdo_mysql и т.д.).
  • Проблема: Certbot не может пройти проверку HTTP-01.

    • Проверьте, что порт 80 не закрыт брандмауэром.
    • Убедитесь, что виртуальный хост слушает порт 80 и правильно указан ServerName.
  • Когда установка composer работает медленно:

    • Запустите composer с параметром –no-dev и используйте опцию -o для оптимизации автозагрузки.

Альтернативные подходы

  • Docker: запуск Polr в контейнере упрощает изоляцию и обновления.
  • Nginx: многие предпочитают Nginx как обратный прокси вместо Apache. Конфигурация SSL и правила rewrite на Nginx отличаются.
  • Управляемые сервисы: если не хочется управлять сервером — рассмотрите платные SaaS-решения для сокращения ссылок.

Миграция и совместимость

  • При переносе с другого сервера экспортируйте базу данных и файлы /var/www/html/polr.
  • Проверьте версию PHP и совместимость с используемой версией Polr.
  • Обновления Polr: следите за релизами в официальном репозитории и тестируйте на стенде.

Мини-методология установки (быстрая шпаргалка)

  1. Обновить систему: apt-get update && apt-get upgrade.
  2. Установить LAMP стек и зависимости PHP.
  3. Создать БД и пользователя.
  4. Установить Composer, клонировать репозиторий Polr.
  5. Настроить .env, права, виртуальный хост.
  6. Включить rewrite, перезапустить Apache.
  7. Получить SSL через Certbot и включить перенаправление на HTTPS.
  8. Тесты: проверка главной страницы, вход в админку, создание сокращённой ссылки.

Тест кейсы и приёмочные сценарии

  • Тест 1: Доступ по HTTPS — перейти на https://polr.example.com и убедиться, что сертификат валиден.
  • Тест 2: Функция сокращения — создать сокращённую ссылку и открыть её; браузер должен перенаправиться на оригинал.
  • Тест 3: Авторизация администратора — войти под admin и открыть настройки приложения.

Частые вопросы

Как обновлять сертификаты Let’s Encrypt?

Certbot обычно настраивает systemd-таймер или cron для автообновления. Проверить вручную:

certbot renew --dry-run

Можно ли использовать Nginx вместо Apache?

Да. Конфигурация виртуального хоста и правила переписывания будут отличаться. Certbot поддерживает плагин nginx.

Как запустить Polr в Docker?

Официального образа может не быть. Ищите готовые Dockerfile/compose-файлы в сообществе или создайте собственный контейнер с PHP-FPM и Nginx/Apache.

Короткое резюме

Polr — лёгкое решение для сокращения ссылок, которое можно разместить на собственном сервере. Установка на Ubuntu 20.04 с Apache и Certbot занимает от 20 до 60 минут, в зависимости от опыта. Обязательно настройте HTTPS, бэкапы и права доступа.

FAQ

Q: Что делать, если при установке возникают ошибки Composer?
A: Проверьте версию PHP и необходимые расширения. Запустите composer install без прав root под обычным пользователем, если возможно.

Q: Как автоматизировать обновления Polr?
A: Автоматизация требует CI/CD. Для простого подхода используйте скрипт обновления и тестирование на стенде перед деплоем в прод.

Q: Нужен ли отдельный сервер для Polr?
A: Нет. Для небольших нагрузок Polr можно разместить на общем VPS вместе с другими сервисами, но разделение рекомендуется для безопасности и масштабирования.


Если нужны конфигурации для Docker или пример Nginx-конфигурации, скажите, и я подготовлю их отдельно.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро