Статьи

Создайте свой собственный URL Shortener с YOURLS

Конечный продукт
Что вы будете создавать

В этом руководстве я покажу вам, как установить собственный сокращатель URL-адресов на основе PHP с открытым исходным кодом, который называется YOURLS.

Сокращения URL достигли своего пика полезности как раз перед тем, как Twitter начал кодировать все ссылки с помощью своего сокращателя URL t.co. До этого момента укороченные URL-адреса помогали пользователям твитить несколько ссылок, не используя свои 140 символов. Сегодня каждая ссылка в твите занимает фиксированное количество символов независимо от длины; использование собственного сокращения ссылок теперь менее важно. Тогда Bit.ly был популярным выбором.

Статистика Bitly URL Shortener

Тем не менее, все еще есть преимущество использования сторонних укороченных ссылок. Например, Google показывает вам статистику и трафик, и даже генерирует QR-код для вас, чтобы привлечь трафик на вашу ссылку:

Googl URL Shortener с QR-кодом

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

Есть несколько предостережений для размещения вашего собственного URL сокращения:

  1. Вы будете нести вечную ответственность за поддержание службы и ее запуск, так что прошлые ссылки будут продолжать перенаправлять должным образом.
  2. Если ваш сервер выйдет из строя или выйдет из строя, ваши ссылки прервутся.
  3. Если из-за всплывающих URL-адресов в социальных сетях или веб-трафике наблюдается всплеск трафика, ваш сервер будет сталкиваться с большими запросами трафика.
  4. Если вы оставите сервис открытым для общественности — что я не рекомендую — есть вероятность, что спамеры и хакеры злоупотребят вашим сервисом.
  5. Есть плата за домен для запуска вашего сокращателя, например выделенный домен .ly (необязательно, потому что, конечно, вы можете использовать существующий поддомен).

Сначала я испытывал желание написать собственное решение. Тем не менее, немного поиска подверглись ВАШИХ . YOURLS — это сервис сокращения URL-адресов на основе PHP с достойным статистическим отслеживанием и множеством плагинов . Для этого урока я решил написать об использовании YOURLS, а не о создании с нуля.

Кстати, если вы ищете короткий домен, попробуйте использовать Domainr, чтобы найти полезные домены с двухбуквенными расширениями.

Я использую YOURLS в Digital Ocean, потому что это недорого и предлагает быстрые SSD-диски для хостинга, но подойдет любой сервер на базе LAMP или провайдер облачного хостинга. Вы можете найти мое визуальное руководство по установке экземпляра LAMP в Digital Ocean здесь .

После запуска экземпляра сервера вы можете скачать код для YOURLS здесь или клонировать его из общедоступного архива Git .

Давайте создадим каталог, скачаем и распакуем код:

1
2
3
4
5
mkdir /var/www/yourls
cd /var/www/yourls
git clone https://github.com/YOURLS/YOURLS/archive/1.7.tar.gz
tar -zxvf 1.7.tar.gz
mv YOURLS-1.7/ yourls

Создайте файл конфигурации сайта Apache:

1
sudo nano /etc/apache2/sites-available/yourls.conf

Вставьте и настройте следующую конфигурацию сайта:

01
02
03
04
05
06
07
08
09
10
<VirtualHost *:80>
   ServerName your-yourls-domain.com
   DocumentRoot /var/www/yourls
   DirectoryIndex index.php
   <Directory /var/www/yourls/>
      AllowOverride All
      Order Deny,Allow
      Allow from all
   </Directory>
</VirtualHost>

Включите сайт и перезапустите Apache:

1
2
sudo a2ensite yourls.conf
sudo service apache2 reload

Давайте создадим базу данных MySQL для использования YOURLS:

1
mysql -uroot -p

Создайте базу данных и разрешения для использования YOURLS:

1
2
3
4
create database yourls;
grant all privileges on yourls.* TO «yourls_db_user»@»localhost» identified by «yourls-pwd»;
flush privileges;
exit;

Теперь, когда наш сайт Apache и база данных MySQL доступны, давайте настроим код немного подробнее.

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

1
2
3
cd /var/www/yourls
cp ./user/config-sample.php ./user/config.php
chmod 0666 ./user/config.php

Давайте отредактируем файл:

1
sudo nano ./user/config.php

Сначала настройте параметры базы данных в зависимости от того, как вы настроили MySQL выше. Вы можете следить за настройками конфигурации из документации сайта YOURLS :

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
/*
 ** MySQL settings — You can get this info from your web host
 */
 
/** MySQL database username */
define( ‘YOURLS_DB_USER’, ‘your db user name’ );
 
/** MySQL database password */
define( ‘YOURLS_DB_PASS’, ‘your db password’ );
 
/** The name of the database for YOURLS */
define( ‘YOURLS_DB_NAME’, ‘yourls’ );
 
/** MySQL hostname.
 ** If using a non standard port, specify it like ‘hostname:port’, eg.
define( ‘YOURLS_DB_HOST’, ‘localhost’ );
 
/** MySQL tables prefix */
define( ‘YOURLS_DB_PREFIX’, ‘yourls_’ );

Затем укажите выбранное вами имя сайта (URL) и начальные пароли пользователей. Вводить пароли в виде простого текста здесь можно временно, потому что YOURLS будет их хэшировать.

01
02
03
04
05
06
07
08
09
10
11
/** YOURLS installation URL — all lowercase and with no trailing slash.
 ** If you define it to «http://site.com», don’t use «http://www.site.com» in your browser (and vice-versa) */
define( ‘YOURLS_SITE’, ‘http://site.com’ );
 
/** Username(s) and password(s) allowed to access the site.
 ** YOURLS will auto encrypt plain text passwords in this file
 ** Read http://yourls.org/userpassword for more information */
$yourls_user_passwords = array(
    ‘username’ => ‘password’,
    ‘username2’ => ‘password2’ // You can have one or more ‘login’=>’password’ lines
    );

Нам также нужно создать файл .htaccess и убедиться, что Apache mod_rewrite активен:

1
2
sudo a2enmod rewrite
sudo nano /var/www/yourls/.htaccess

Вставьте файл .htaccess по умолчанию в:

1
2
3
4
5
6
7
8
9
# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
</IfModule>
# END YOURLS

Более подробную информацию о настройке .htaccess и YOURLS можно найти здесь .

Теперь посетите администрацию сайта YOURLS по адресу http://yourexampledomain.com/admin и пройдите все этапы настройки, которые по-прежнему требуются.

YOURLS Страница установки

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

1
sudo chmod 0440 ./user/config.php

Как только вы введете несколько ярлыков и начнете получать трафик, вы должны увидеть что-то вроде этого в вашем пути / admin:

YOURLS Панель инструментов ярлыков

По умолчанию домашней страницы YOURLS нет. Это сделано для того, чтобы спаммеры не злоупотребляли вашим сервисом.

Я создал файл index.php по умолчанию для перенаправления на мою консультационную веб-страницу. Посетители получат эту страницу, только когда введут мой YOURLS URL без правильного ярлыка:

01
02
03
04
05
06
07
08
09
10
<html>
<head>
    <META http-equiv=»refresh» content=»0;URL=http://lookahead.io»>
  </head>
  <body bgcolor=»#ffffff»>
    <center>
Please visit our website <a href=»http://lookahead.io»>Lookahead Consulting</a>
    </center>
</body>
</html>

Однако, если вы хотите предложить открытую страницу быстрого доступа, скопируйте файл sample-public-front-page.txt в index.php.

1
cp sample-public-front-page.txt index.php

Создание ярлыков легко и должно быть само за себя. Вот пример того, как я создал ярлык для своего профиля инструктора Tuts + :

Создание сокращенного URL с YOURLS

YOURLS позволяет легко поделиться своим URL в Twitter и Facebook:

Поделитесь своими сокращенными URL через YOURLS

Статистика — один из самых полезных аспектов, встроенных в YOURLS. Вот общие уровни активности с течением времени:

История статистики трафика с YOURLS

И вот географическая справочная информация:

Трафик по географии с YOURLS

Вот причина, по которой я выбрал YOURLS: чтобы получить подробные данные о трафике, на каких страницах было больше всего рефералов.

Подробная реферальная активность с YOURLS

Со временем это поможет мне настроить размещение моей партнерской рекламы.

Существует также обширная группа плагинов YOURLS и API для изучения. Например, есть плагины Memcached и QR Code , среди прочих.

YOURLS — это хорошо сконфигурированный, плотный кусок кода PHP для запуска собственного сокращающего URL-адреса. Я надеюсь, что вы нашли это полезным.

Пожалуйста, оставьте любые комментарии, исправления или дополнительные идеи ниже. Вы можете просмотреть мои другие учебники Tuts + на моей странице инструктора или подписаться на меня в Twitter @reifman .