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

Содержание статьи
- 1 Характерные черты Shlink
- 2 Условия, необходимые для установки Shlink на сервер с операционной системой Ubuntu 20.04.
- 3 Установите PHP 8.0 и необходимые расширения.
- 4 Начните выполнение скрипта установки Shlink.
- 5 Настройка виртуального хоста в Apache или конфигурационного файла в Nginx для Shlink.
- 6 Генерация кратких ссылок
- 7 Заключение
Характерные черты 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.
Если вы отдаете предпочтение веб-серверу 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.

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

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

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

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

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

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

Настройка виртуального хоста в Apache или конфигурационного файла в Nginx для Shlink.
Apache
При использовании веб-сервера Apache необходимо настроить виртуальный хост для Shlink.
sudo nano /etc/apache2/sites-available/shlink.conf
Сохраните указанный текст в файл. Замените lnux. be на ваше фактическое доменное имя и обязательно настройте DNS A запись для него.
Сохраните изменения и закройте файл. После этого активируйте этот виртуальный хост с помощью:
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; >>

Генерация кратких ссылок
Для начала вам необходимо сгенерировать API-ключ, используя следующую команду.
sudo - u www-data php8.0 /var/www/shlink/bin/cli api-key:generate
После этого посетите сайт https://app.shlink.io/, чтобы зарегистрировать свой сервер.

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

Имейте в виду, что это всего лишь веб-клиент. Сокращенные 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.
Если этот пост оказался для вас полезным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать дополнительные советы и рекомендации.

