Установка Shlink URL Shortener на сервер с операционной системой Ubuntu 20.04

Shlink представляет собой открытый и самоуправляемый сервис для укорочения URL, который дает возможность сокращать ссылки и управлять ими на вашем собственном коротком домене. Применение собственного сервиса для сокращения URL вместо использования сторонних платформ, таких как bit. ly, может способствовать повышению узнаваемости вашего бренда. В этом руководстве мы расскажем, как установить Shlink на Ubuntu 20.04 с веб-серверами Apache или Nginx.

Установите Shlink на Ubuntu: саморазмещаемый сервис для сокращения URL.

Характерные черты Shlink

  • Статистика посещений: Мониторьте все переходы по вашим коротким URL, включая информацию о местоположении, используемом браузере и источниках перехода.
  • Отслеживание почтовых отправлений: создайте прозрачное изображение размером 1 пиксель, которое можно применять для мониторинга электронной почты.
  • Интеграция с внешними сервисами: Просто настраивайте сторонние инструменты для использования Shlink в качестве сервиса сокращения URL через API-эндпоинт с одним запросом.
  • Индивидуальные слоги: Создавайте сокращенные URL с уникальными слогами для удобной идентификации ваших рекламных кампаний.
  • QR-коды: Создавайте QR-коды мгновенно, указывающие на ваши короткие ссылки.
  • Предварительные просмотры: Получайте изображения предпросмотров для любых коротких URL.
  • Теги: Устанавливайте метки для ваших коротких URL и систематизируйте их для будущего анализа.
  • Ограничение доступа: Установите лимиты на использование коротких URL в зависимости от временного периода и/или максимального числа просмотров.
  • Импорт из внешних сервисов: Переносите ваши уже созданные короткие ссылки из таких платформ, как bit. ly.
  • Интерфейс для командной работы и веб-интерфейс.

Условия, необходимые для установки Shlink на сервер с операционной системой Ubuntu 20.04.

Shlink разработан на PHP и использует базы данных MySQL/MariaDB или postgresql.Вам нужно будет установить стек LAMP или LEMP. Если вы отдали предпочтение веб-серверу Apache, выберите конфигурацию LAMP.

  • Установка стека LAMP на сервер или рабочую станцию с операционной системой Ubuntu 20.04.
Читайте также:  Как включить веб-интерфейс брандмауэра CSF

Если вы отдаете предпочтение веб-серверу Nginx, вам следует настроить стек LEMP.

  • Установка стека LEMP (Nginx, MariaDB, PHP 7.4) на Ubuntu 20.04 LTS.

Вам потребуется и доменное имя. Я приобрёл своё доменное имя на платформе NameCheap из-за низкой стоимости и бесплатной защиты конфиденциальности WHOIS на весь срок его действия. В этом руководстве я буду использовать доменное имя lnux. be в качестве примера.

Данная команда создаст нового пользователя для базы данных и назначит ему пароль, одновременно предоставляя все необходимые права доступа к вновь созданной базе данных, чтобы Shlink мог в дальнейшем производить записи в неё. Замените выделенные красным текстом данные на желаемое имя базы данных, имя пользователя и пароль.

GRANT ALL ON shlink'@'localhost' УСТАНОВЛЕН ПАРОЛЬ 'password';

Обновите таблицу прав доступа и завершите сеанс в консоли MariaDB.

FLUSH PRIVILEGES; EXIT;

Установите PHP 8.0 и необходимые расширения.

Так как мы загрузили версию Shlink, совместимую с PHP 8, необходимо установить PHP8. В репозитории Ubuntu 20.04 доступен только PHP7.2. Для установки PHP8.0 на Ubuntu 20.04 потребуется добавить PPA.

sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php - y

Далее необходимо установить PHP8.0 и необходимые расширения для работы Shlink.

sudo apt install php-apcu php8.0 php8.0-fpm php8.0-mysql php8.0-gd php8.0-common php8.0-curl php8.0-intl php8.0-gmp php8.0-xml

Для того чтобы ваш Apache веб-сервер работал с PHP8.0-FPM, необходимо выполнить следующие команды.

sudo a2dismod mpm_prefork sudo a2enmod mpm_event proxy_fcgi setenvif sudo a2enconf php8.0-fpm

После этого выполните перезапуск Apache.

sudo systemctl restart apache2

Начните выполнение скрипта установки Shlink.

Запустите установочный PHP скрипт под учетной записью пользователя www-data.

sudo - u www-data php8.0 /var/www/shlink/bin/install

Мастер установки запросит у вас информацию о базе данных. Я выбрал MariaDB в качестве типа базы, после чего указал имя базы, имя пользователя и пароль. Адрес хоста — localhost, а порт — 3306. Shlink также может осуществлять подключение к серверу базы данных через Unix-сокет. Для MariaDB на сервере Ubuntu расположение сокета будет /var/run/mysqld/mysqld. sock.

Читайте также:  Установка Linux Malware Detect (LMD) на CentOS, RHEL

install-shlink-ubuntu-20.04-command-line

Введите основной домен для вашего сервиса по сокращению URL и выберите тип схемы (https). Далее вам потребуется ответить на несколько простых вопросов.

Сервис для сокращения ссылок Shlink.

Для анализа геолокации пользователей вам потребуется собственный лицензионный ключ GeoLite2, который предоставляется бесплатно. Чтобы его получить, необходимо зарегистрироваться на сайте MaxMind. После регистрации вы получите электронное письмо от MaxMind. Перейдите по ссылке в этом письме для установки пароля и войдите в свой аккаунт. Затем на боковой панели выберите опцию «Мой лицензионный ключ».

ключ лицензии maxmind

Нажмите на кнопку для создания нового лицензионного ключа.

maxmind создает новый лицензионный ключ

Назовите ваш лицензионный ключ. После этого выберите «Нет», так как использование программы geoipupdate не требуется. Затем нажмите на кнопку «Подтвердить».

ключ лицензии shlink geolite2

После создания лицензионного ключа, скопируйте его и вставьте в мастер настройки Shlink. Далее у вас будет возможность выбрать анонимизацию IP-адресов пользователей и указать тип перенаправления (302 или 301).

После этого установите перенаправления для необычных ситуаций. Когда пользователи заходят на основной URL моего Shlink (https://lnux.be), они будут перенаправлены на мой сайт. Кроме того, есть возможность создать индивидуальный URL для страницы с ошибкой 404.

Перенаправления URL shlink

В конце концов, завершите настройку приложения. Я просто нажимаю Enter, чтобы принять стандартные параметры.

install-shlink-on-ubuntu-20.04-server-apache-nginx

Настройка виртуального хоста в Apache или конфигурационного файла в Nginx для Shlink.

Apache

При использовании веб-сервера Apache необходимо настроить виртуальный хост для Shlink.

sudo nano /etc/apache2/sites-available/shlink.conf

Сохраните указанный текст в файл. Замените lnux. be на ваше фактическое доменное имя и обязательно настройте DNS A запись для него.

Читайте также:  Установка Ред ОС рядом с Windows - двойная загрузка

ServerName lnux. beКорневой каталог документа: /var/www/shlink/public Лог ошибок: $/shlink_error.log Лог доступа: $/shlink_access.log в комбинированном форматеНастройки включают: FollowSymLinks, Includes, ExecCGI, разрешение на переопределение всех параметров. Порядок доступа: разрешить, запретить; доступ разрешен для всех.Включите файл /etc/apache2/conf-available/php8.0-fpm.conf

Сохраните изменения и закройте файл. После этого активируйте этот виртуальный хост с помощью:

sudo a2ensite shlink.conf

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

sudo systemctl reload apache2

Nginx

При использовании веб-сервера Nginx необходимо настроить виртуальный хост для Shlink.

sudo nano /etc/nginx/conf.d/shlink.conf

Сохраните указанный текст в файл. Замените lnux. be на ваше фактическое доменное имя и обязательно настройте DNS A запись для него.

server < listen 80; listen [::]:80; server_name lnux. beкорень /var/www/shlink/public; журнал_ошибок /var/log/nginx/shlink. error; журнал_доступа /var/log/nginx/shlink. access; индекс index.php index. html index. htm index. nginx-debian. html; расположение /< # попробуйте обслужить файл напрямую, в случае неудачи используйте app.php try_files $uri /index.php$is_args$args; >перенаправьте полные директории rewrite ^/(vendor|translations|build)/.* /index.php break; location~ \.php$ < fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php8.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; >>
shlink-https-certbot

Генерация кратких ссылок

Для начала вам необходимо сгенерировать API-ключ, используя следующую команду.

sudo - u www-data php8.0 /var/www/shlink/bin/cli api-key:generate

После этого посетите сайт https://app.shlink.io/, чтобы зарегистрировать свой сервер.

shlink создать короткую ссылку

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

создать короткую ссылку с помощью shlink

Имейте в виду, что это всего лишь веб-клиент. Сокращенные URL-адреса хранятся на вашем сервере.

На вашем сервере есть возможность создавать короткие URL-адреса прямо из командной строки.

sudo - u www-data /var/www/shlink/bin/cli short-url:generate

Перечень сокращённых URL-адресов.

sudo - u www-data /var/www/shlink/bin/cli short-url:list

Введите следующую команду, чтобы отобразить справочную информацию.

sudo - u www-data php /var/www/shlink/bin/cli

Заключение

Надеюсь, этот учебник был полезен для установки Shlink на сервер Ubuntu 20.04. Вы также можете ознакомиться с тем, как использовать разные версии PHP на Ubuntu.

  • Способы установки нескольких версий PHP на Ubuntu.

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