В этом руководстве я покажу вам, как установить собственный сокращатель URL-адресов на основе PHP с открытым исходным кодом, который называется YOURLS.
Преимущество URL Shorteners
Сокращения URL достигли своего пика полезности как раз перед тем, как Twitter начал кодировать все ссылки с помощью своего сокращателя URL t.co. До этого момента укороченные URL-адреса помогали пользователям твитить несколько ссылок, не используя свои 140 символов. Сегодня каждая ссылка в твите занимает фиксированное количество символов независимо от длины; использование собственного сокращения ссылок теперь менее важно. Тогда Bit.ly был популярным выбором.
Тем не менее, все еще есть преимущество использования сторонних укороченных ссылок. Например, Google показывает вам статистику и трафик, и даже генерирует QR-код для вас, чтобы привлечь трафик на вашу ссылку:
Если вы хотите улучшенное статистическое отслеживание, использование собственного сокращающего URL может быть очень полезным. Например, я хотел лучше отследить, какие из моих записей в блоге привлекали реферальный трафик к конкретным партнерам. Для этого мне нужно было собственное решение.
Недостатки размещения вашего собственного URL Shortener
Есть несколько предостережений для размещения вашего собственного URL сокращения:
- Вы будете нести вечную ответственность за поддержание службы и ее запуск, так что прошлые ссылки будут продолжать перенаправлять должным образом.
- Если ваш сервер выйдет из строя или выйдет из строя, ваши ссылки прервутся.
- Если из-за всплывающих URL-адресов в социальных сетях или веб-трафике наблюдается всплеск трафика, ваш сервер будет сталкиваться с большими запросами трафика.
- Если вы оставите сервис открытым для общественности — что я не рекомендую — есть вероятность, что спамеры и хакеры злоупотребят вашим сервисом.
- Есть плата за домен для запуска вашего сокращателя, например выделенный домен .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;
|
Настройте сайт YOURLS
Теперь, когда наш сайт 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 работает правильно, обязательно верните права доступа к файлу конфигурации только для чтения:
1
|
sudo chmod 0440 ./user/config.php
|
Как только вы введете несколько ярлыков и начнете получать трафик, вы должны увидеть что-то вроде этого в вашем пути / admin:
Создайте домашнюю страницу
По умолчанию домашней страницы 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 + :
YOURLS позволяет легко поделиться своим URL в Twitter и Facebook:
Статистика трафика
Статистика — один из самых полезных аспектов, встроенных в YOURLS. Вот общие уровни активности с течением времени:
И вот географическая справочная информация:
Вот причина, по которой я выбрал YOURLS: чтобы получить подробные данные о трафике, на каких страницах было больше всего рефералов.
Со временем это поможет мне настроить размещение моей партнерской рекламы.
Делать больше с YOURLS
Существует также обширная группа плагинов YOURLS и API для изучения. Например, есть плагины Memcached и QR Code , среди прочих.
YOURLS — это хорошо сконфигурированный, плотный кусок кода PHP для запуска собственного сокращающего URL-адреса. Я надеюсь, что вы нашли это полезным.
Пожалуйста, оставьте любые комментарии, исправления или дополнительные идеи ниже. Вы можете просмотреть мои другие учебники Tuts + на моей странице инструктора или подписаться на меня в Twitter @reifman .