Трекер Yourls ваш собственный сокращатель ссылок (URL)

  • Домашняя страница: YOURLS Your Own URL Shortener, разработчик Ǭɀħ

YOURLS (Аббревиатура You Own URL Shortener) - это бесплатная альтернатива сокращению ссылок (URL) с открытым исходным кодом и самостоятельно размещаемым URL-адресом аналогично ТОП 3 сервисов: Как сократить URL ссылку: bit.ly, U.to или To.click.

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

В этой стать представляю вам бесплатный инструмент YOURLS, который может закрыть потребности в отслеживании переходов по вашим ссылкам. YOURLS - это ваш персональный аналог Bitly или u.to. Этот скрипт предназначен для сокращения ссылок, а так же отображает количество кликов, источники переходов и ГЕО пользователей. Это лишь не большая часть функционала обычного трекера, но преимущество YOURLS, как минимум, в том, что за него не нужно платить.

Yourls инструмент для редиректов будет полезен для тех, кто добывает трафик из мессенджеров (Телеграм, Viber), социальных сетей (Вконтакте, Фейсбук) и других источников.

Плюсы Yourls:

  • Не крадет ваш трафик
  • 100% бесплатно
  • Потрясающая статистика: отчеты о кликах, отслеживание переходов, геолокация посетителей
  • Открытый исходный код, в отличие от сервисов сокращения ссылок или трекеров
  • Полное управление, в отличие от bitly или аналогов
  • Простая установка
  • Полная поддержка jsonp
  • Вы можете изменить адрес назначения URL позже
  • Импорт/экспорт URL-адреса, в отличие от bitly
  • Вы можете добавлять пользователей
  • Огромный ассортимент бесплатных плагинов:
  1. Плагины, которые позволяют выбирать из ряда типов перенаправления (например, 301, 302, мета-перенаправление)
  2. Плагин, который устанавливает запасной URL
  3. Плагин, который делает URL-адреса нечувствительными к регистру
  4. Плагин, который добавляет теги ссылок Google Analytics
  5. Плагин, который скрывает реферала или доставит вас на сервис анонимайзера

Минусы:

  • Нет доступных полных резервных копий, но эта проблема автоматически решается хостером Timeweb

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

  1. Обязательно сделайте резервную копию файлов и базы данных Yourls и сохраните его на какой-то время
  2. Скачиваем архив с последней версии по Yourls ссылке https://github.com/YOURLS/YOURLS/releases
  3. Распаковываем архив
  4. При помощи клиента FileZilla подключаемся к нашему хостингу и перезаписываем файлы на сайте фалами из распакованного архива
  5. Для продолжения обновления переходим по ссылке
    https://<имя вашего домена>/admin

    И видим ободряющий:-D текст от разработчиков, особенно впечатлило:-D "If everything goes too fast and you cannot read, good for you, let it go :)", что в вольном переводе означает "Если вы не умеете читать - жмите кнопку Обновить"!!! :-D

  6. Нажимаем кнопку Upgrade, практически сразу должен появиться следующий экран с надписью: Upgrade YOURLS Your installation is now up to date! Go back to the admin interface
  7. Всё! Обновление закончено, переходим в веб-интерфейс и продолжаем спокойно работать.

Yourls с нуля на виртуальном хостинге

Устанавливать Yourls будем на виртуальном хостинге с Apache и PHP 7.4, инструкция будет работать с любым тарифным планом из списка проверенных хостингов для сайта.

Установка YOURLS осуществляется на ваш сайт и занимает не больше 10-и минут. Файлы скрипта загружаются на хостинг и админка сокращалки устанавливается на сайт/admin.

Требования к серверу Yourls:

  • На хоcтинге/сервере должен быть включен mod_rewrite
  • Минимум PHP 5.3 и MYSQL 5
  • cURL если планируете использовать API

Покупаем домен или создаем домен третьего уровня, я создал https://to.dieg.info/. Обязательно устанвливаем бесплатный SSL сертификат. Выбираем PHP 7.4 Все настройки на скриншоте:

Создаем БД, копируем обе строки в блокнот для дальнейшего использования.

Скачиваем архив последней версии с GitHub. Распаковываем архив и записываем в корень вашего сайта.

Переименовываем файл user/config-sample.php в user/config.php или делаем копию.

Изменяем параметры в полученном файле config.php: подключение к базе MySQL (из ШАГ 2); указываем свой домен; параметр YOURLS_COOKIEKEY генерируем что-то типо gBaXCvIxLXU9qluEq7c0; меняем часовой пояс на нужный вам в параметреYOURLS_HOURS_OFFSET (я выставил +2).

Логин и пароль для доступа в админку задаются в массиве, замените yourlsadminusername на имя своего пользователя и задайте пароль вместо слова password. Здесь же вы можете добавить одного или более пользователей - раскомментируйте строку ниже и впишите нужные логин и пароль второго пользователя Yourls.

define( 'YOURLS_DB_USER', 'пользователь БД' );
define( 'YOURLS_DB_PASS', 'пароль пользователя БД' );
define( 'YOURLS_DB_NAME', 'имя базы данных' );
define( 'YOURLS_SITE', 'https://твой домен' );
define( 'YOURLS_COOKIEKEY', 'gBaXCvIxLXU9qluEq7c0' );
define( 'YOURLS_HOURS_OFFSET', +2 ); 
$yourls_user_passwords = array(
    'yourlsadminusername' => 'password',
    	// 'username2' => 'password2',
	// You can have one or more 'login'=>'password' lines
    );

Ко мне дважды обращались с проблемой подключения Yourls к базе данных, поэтому написал скрипт для независимой проверки подключения к MySQL из PHP mysqli.

Переходим по адресу

https://<имя вашего домена>/admin

Если все ок, увидим страницу конфигуратор. Нажимаем кнопку "Install YOURLS" и должен получиться такой результат. Если все Ок - поздравляю! Если нет можете написать мне -я подскажу.

Административная панель доступна по адресу

https://<имя вашего домена>/admin

Ниже хорошее видео по инсталляции Yourls, если что-то не понятно из руководства посмотрите его

Скачиваем русский перевод для YOURLS.

Установка:

  1. Загрузите архив и распакуйте его.
  2. Поместите файлы ru_RU.mo и ru_RU.po в папку user/languages.
  3. Добавьте define( 'YOURLS_LANG', 'ru_RU' ) в config.php.
  4. Готово!
  • переименовываем sample-robots.txt в robots.txt, нам не нужно чтобы файлы движка индексировались поисковыми системами. Ниже правильный robots.txt для Yourls:
User-agent: *
Disallow: /admin
Disallow: /css
Disallow: /images
Disallow: /includes
Disallow: /js
Disallow: /user
  • в корне сайта создаем файл index.html в котором вы можете разместить например рекламу. Любопытные пользователи все равно будут пытаться переходить на ваш домен с сокращалкой, пусть будет дополнительная монетизация.

Если вы занимаетесь партнерским маркетингом, то частенько сталкиваетесь с тем что часть ПП закрывается или становятся не интересными. И казалось, бы достаточно в YOURLS заменить старые ссылки на новые. Но по умолчанию, в YOURLS вы не можете создать две и более коротких ссылок на один длинный URL из партнерской сети.

Но это легко решается установкой параметра YOURLS_UNIQUE_URLS в false в конфигурационном файле config.php, расположенном в директории user.

define( 'YOURLS_UNIQUE_URLS', false );

Разрешить несколько коротких URL-адресов для одного и того же длинного URL-адреса. Установите значение true, чтобы иметь только одну пару коротких и длинных URL-адресов (поведение YOURLS по умолчанию). Установите значение false, чтобы несколько коротких URL-адресов указывали на один и тот же длинный URL-адрес (поведение bit ly)

Вы не хотите облегчать взломщику задачу? Например он взломает и поставить свои ссылки вместо ваших - будет весело.

Поэтому в директории /admin создаем файл .htaccess с таким содержимым:

Order Deny,Allow
Deny from all
#Allow from xxx.xxx.xxx.xxx
Allow from xxx.xxx.xxx.xxx

Где вместо xxx.xxx.xxx.xxx подставляем свой личный ip или несколько ip (для этого добавьте строчки Allow from).

Удачи!

Действительно плагинов расширяющих возможности Yourls очень много, весь список смотрите на официальном гитхабе проекта. Ниже я привожу список интересных плагинов расширяющих функционал скрипта Yourls.

  • Плагин Don't Track Admins проверяет, вошел ли пользователь, запрашивающий ссылку, в систему установки YOURLS. Если да, то он прерывает работу функций отслеживания кликов и регистрации перенаправлений в обработчике перенаправлений YOURLS. То есть ваши личный тестовые переходы учитываться не будут.
  • Плагин Yourls-Email-Notify позволяет отсылать вам электронное письмо, когда кто-то щелкнет сокращенную ссылку.
  • Плагин YOURLS Import Export позволяет экспортировать ваши ссылки в формат CSV, XML, RSS.
  • Плагин YOURLS-IQRCodes создает QR-код для ваше ссылки.
  • Плагин YOURLS Plugin: Upload and Shorten позволяет загружать файл на сервер и создавать на него короткую ссылку. Затем Вы можете поделиться этим файлом по его короткой ссылке, а также по его полному URL-адресу.
  • Поддержку генератора UTM меток добавляет плагин Yourls Google Analytics Link Tagging.
  • Плагин поддержки Google Tag Manager вы можете найти на сайте GTM-for-YOURLS

Проблема: По разным причинам, требуется сокращение ссылок для разных доменов или поддоменов с использованием одной установки Yourls. То есть вы хотите чтобы работали ссылки для двух доменов https://your.domain и https://second.your.domain.

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

Решение 1. (Я не тестировал этот способ). Использовать запись CNAME в настройке DNS для другого домена или поддомена. То есть достаточно в DNS создать запись second.your.domain CNAME your.domain. Плюсы - это простое решение. Минусы вы не сможете разделить статистку по доменам.

Решение 2. (Я не тестировал этот способ). Это решение известно с 2014 года. И заключается в создании двух виртуальных доменов https://github.com/YOURLS/YOURLS/issues/560#issuecomment-46617669

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

Это то, что вам нужно, чтобы следовать этому руководству и настроить YOURLS:

  • Сервер Ubuntu или Debian (для написания руководства использовалась Ubuntu 22.04 LTS Jammy). Вы можете купить виртуальный сервер у любого из проверенных VPS/VDS хостинг провайдеров, не дороже 2,50 доллара в месяц - этого более чем достаточно, чтобы YOURLS работал хорошо.
  • В этом руководстве предполагается, что вы уже позаботились об обслуживании и защите сервера. Здесь вы узнаете, как установить и настроить YOURLS.
  • Ubuntu 22.04 LTS по умолчанию PHP версии 8.1, но ещё довольно сырая, поэтому у меня установлен также PHP-FPM версии 7.4. Как установить несколько версии PHP на VPS выходит за рамки этой статьи, но вы может воспользоваться такими руководствами: Hestia CP переключение версии PHP.
  • Root-доступ к серверу. Мы будем использовать пользователя root для всего ниже. Если вы используете пользователя без полномочий root, используйте «sudo», где это уместно.
  • Iptables настроен и открыты порты 80 и 443

По итогу, у нас в наличии VPS Ubuntu 22.04 LTS Jammy, купленный у абузоустойчивого хостинг провайдера Alexhost, Nginx версии 1.18.0, MariaDB 10 (вы можете установить MySQL - для Yourls все равно), две версии PHP FPM 8.1 и 7.4 (слушает на порту 127.0.0.1:9074). Также VPS поддерживает IPv6.

Для создания SSL сертификатов установим certbot из репозиториев по умолчанию Ubuntu и git:

apt install certbot git

Установим зависимости PHP 7.4 для Yourls:

apt install php7.4-xml php7.4-cli php7.4-zip php7.4-json php7.4-mysql  php7.4-gd php7.4-mbstring php7.4-curl php7.4-bcmath

Перезапустим Nginx и php-fpm:

systemctl restart nginx.service php7.4-fpm.service

Создаем базу данных и пользователя:

mysql -u root -p
 
CREATE DATABASE exampledb;
GRANT ALL privileges ON exampledb.* TO 'exampledb-user'@'localhost' IDENTIFIED BY 'p@ssw0rd' WITH GRANT OPTION;
FLUSH privileges;
exit;

Скачиваем дистрибутив, при желании полученную директорию YOURLS можете переименовать, командой mv:

cd /var/www/
git clone https://github.com/YOURLS/YOURLS.git
cd YOURLS/

Делаем бэкапа конфигурационного файла и добавляем данные для доступа к базе данных, как в ШАГе 4.

cp user/config-sample.php user/config.php
nano user/config.php

Обновляем права доступа к каталогу.

chown -R www-data:www-data /var/www/html

Теперь самое интересное, это настройка виртуального домена в Nginx. Нам нужно настроить Nginx и настроить серверный блок для YOURLS. Создайте файл .conf для YOURLS:

nano /etc/nginx/sites-available/yourls.conf

Рабочий конфигурационный файл, достаточно заменить YOURLS на ваши значения

yourls.conf
server {
        listen 80;
        listen [::]:80;
 
        server_name YOURLS;
        root /var/www/YOURLS;
        index index.php index.html;
        access_log  /var/log/nginx/YOURLS.access.log;
        error_log  /var/log/nginx/YOURLS.error.log;
 
location / {
        try_files $uri $uri/ /yourls-loader.php$is_args$args;
}
 
location ~ \.php$ {
        fastcgi_pass  127.0.0.1:9074;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi.conf;
}
 
##### Стандартные настройки для любого хоста
  location = /robots.txt  { access_log off; log_not_found off; }
  location = /favicon.ico { access_log off; log_not_found off; }
# Запрет доступа к скрытым файлам, файлы названия которых начинаются с точки)
  location ~ /\.          { access_log off; log_not_found off; deny all; }
#####

Разрешим запуск конфига нашего сайта в Nginx:

ln -s /etc/nginx/sites-available/yourls.conf /etc/nginx/sites-enabled/

Проверяем синтаксис, если все ОК перезапускаем Nginx

nginx -t
nginx -s reload

Установим сертификат SSL, запустив команду certbot.

certbot --nginx

Поздравляю! Yourls установлен на чиcтый VPS, без использования панели управления.

Административная панель доступна по адресу

https://<имя вашего домена>/admin

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

Связка Yourl и плагина Mihdan: No External Links как сделать внешние ссылки внутренними:

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

https://<твой домен>/admin/tools.php
eTalk курсы английского языка.