Spanish (Español) translation by Javier Salesi (you can also view the original English article)



En éste tutorial te mostraré cómo instalar tu acortador de URL basado en PHP, de código abierto, llamado YOURLS.
El Beneficio de Acortadores de URL
Acortadores de URL alcanzaron su cresta en utilidad justo antes de que Twitter comenzara a codificar todos los enlaces con su acortador de URL t.co. Hasta ese momento, acortadores de URL ayudaron a personas a tuitear múltiples enlaces sin utilizar sus 140 caracteres. Hoy en día, cada enlace en un tuit toma un número fijo de caracteres sin importar la longitud; usar tu propio acortador de enlaces es ahora menos importante. En ese entonces, Bit.ly era una elección popular.



Sin embargo, hay aún un beneficio para utilizar acortadores de enlaces de terceros. Por ejemplo, Google te muestra estadísticas y tráfico, e incluso genera un código QR para que dirijas el tráfico a tu enlace:



Si quieres mejorar el seguimiento estadístico, ejecutar tu propio acortador de URL puede ser muy útil. Por ejemplo, quería seguir cuál de las entradas de mi blog estaban siendo requeridas por afiliados específicos. Para hacer ésto, necesité mi propia solución.
Desventajas de Alojar Tu Propio Acortador de URL
Hay unos cuantos puntos débiles de alojar tu propio acortador de URL:
- Serás eternamente responsable de tener el servicio funcionando, para que los enlaces pasados continuen siendo redirigidos adecuadamente.
- Si tu servidor deja de funcionar, tus enlaces tampoco funcionarán.
- Si medios sociales o el tráfico web para un URL aumenta, tu servidor enfrentará peticiones de tráfico pesado.
- Si dejas el servicio abierto al público-lo que no recomiendo-hay una posibilidad de que hackers y spammers abusen de tu servicio.
- Hay un costo de tener un dominio para que ejecute tu acortador, por ejemplo un dominio dedicado .ly (opcional, porque claro que puedes usar un subdominio existente).
Código Abierto o Házlo Tu Mismo
Inicialmente tuve tentación de escribir mi propia solución. Sin embargo, cuando realizaba una búsqueda surgió YOURLS. YOURLS es un servicio para acortar URL basado en PHP con un decente seguimiento estadístico y una variedad de plugins. Para éste tutorial, decidí escribir sobre utilizar YOURLS más bien que crear uno desde cero.
A propósito, si vas a buscar un dominio corto, trata de usar Domainr para encontrar dominios útiles con extensiones de dos letras.
Instalar YOURLS
Configura Tu Servidor
Voy a ejecutar YOURLS en Digital Ocean porque no es caro y ofrece unidades rápidas de SSD para alojamiento, pero cualquier servidor basado en LAMP o proveedor de alojamiento en la nube será suficiente. Puedes encontrar mi guía visual para instalar una instancia de LAMP en Digital Ocean aquí.
Una vez que tienes una instancia de servidor ejecutándose, puedes descargar el código para YOURLS aquí, o puedes clonarlo del archivo Git público.
Instalar el Código
Vamos a crear un directorio, descarga y desempaca el código:
1 |
mkdir /var/www/yourls
|
2 |
cd /var/www/yourls
|
3 |
git clone https://github.com/YOURLS/YOURLS/archive/1.7.tar.gz |
4 |
tar -zxvf 1.7.tar.gz |
5 |
mv YOURLS-1.7/ yourls
|
Crea un archivo de configuración de sitio en Apache:
1 |
sudo nano /etc/apache2/sites-available/yourls.conf
|
Pega y personaliza la siguiente configuración del sitio:
1 |
<VirtualHost *:80>
|
2 |
ServerName your-yourls-domain.com |
3 |
DocumentRoot /var/www/yourls |
4 |
DirectoryIndex index.php |
5 |
<Directory /var/www/yourls/> |
6 |
AllowOverride All |
7 |
Order Deny,Allow |
8 |
Allow from all |
9 |
</Directory> |
10 |
</VirtualHost> |
Habilita el sitio y reinicia Apache:
1 |
sudo a2ensite yourls.conf
|
2 |
sudo service apache2 reload
|
Creemos una base de datos MySQL para el YOURLS a utilizar:
1 |
mysql -uroot -p |
Crea tu base de datos y permisos para el YOURLS a usar:
1 |
create database yourls;
|
2 |
grant all privileges on yourls.* TO "yourls_db_user"@"localhost" identified by "yourls-pwd"; |
3 |
flush privileges;
|
4 |
exit; |
Configura el Sitio YOURLS
Ahora que nuestro sitio en Apache y nuestra base de datos MySQL está disponibles, configuremos el código un poco más.
Comienza con copiar el ejemplo de configuración para un archivo y temporalmente permite escribir permisos para la instalación.
1 |
cd /var/www/yourls
|
2 |
cp ./user/config-sample.php ./user/config.php
|
3 |
chmod 0666 ./user/config.php
|
Editemos el archivo:
1 |
sudo nano ./user/config.php
|
Primero, configura la configuración de tu base de datos basada en cómo configuraste MySQL arriba. Puedes seguir los ajustes en la configuración en la documentación del sitio de YOURLS:
1 |
/*
|
2 |
** MySQL settings - You can get this info from your web host
|
3 |
*/
|
4 |
|
5 |
/** MySQL database username */ |
6 |
define( 'YOURLS_DB_USER', 'your db user name' ); |
7 |
|
8 |
/** MySQL database password */ |
9 |
define( 'YOURLS_DB_PASS', 'your db password' ); |
10 |
|
11 |
/** The name of the database for YOURLS */ |
12 |
define( 'YOURLS_DB_NAME', 'yourls' ); |
13 |
|
14 |
/** MySQL hostname.
|
15 |
** If using a non standard port, specify it like 'hostname:port', eg. 'localhost:9999' or '127.0.0.1:666' */ |
16 |
define( 'YOURLS_DB_HOST', 'localhost' ); |
17 |
|
18 |
/** MySQL tables prefix */ |
19 |
define( 'YOURLS_DB_PREFIX', 'yourls_' ); |
Luego, proporciona el nombre de tu sitio de dominio elegido (la URL) y la contraseña inicial de usuario. Ingesar las contraseñas en texto plano aquí está bien temporalmente, porque YOURLS las encriptará.
1 |
/** YOURLS installation URL -- all lowercase and with no trailing slash. |
2 |
** If you define it to "http://site.com", don't use "http://www.site.com" in your browser (and vice-versa) */ |
3 |
define( 'YOURLS_SITE', 'http://site.com' ); |
4 |
|
5 |
/** Username(s) and password(s) allowed to access the site. Passwords either in plain text or as encrypted hashes
|
6 |
** YOURLS will auto encrypt plain text passwords in this file
|
7 |
** Read http://yourls.org/userpassword for more information */
|
8 |
$yourls_user_passwords = array(
|
9 |
'username' => 'password', |
10 |
'username2' => 'password2' // You can have one or more 'login'=>'password' lines |
11 |
);
|
También necesitamos crear un archivo .htacces y asegurarnos que el Apache mod_rewrite esté activo:
1 |
sudo a2enmod rewrite
|
2 |
sudo nano /var/www/yourls/.htaccess
|
Pega el archivo predeterminado .htaccess en:
1 |
# BEGIN YOURLS
|
2 |
<IfModule mod_rewrite.c> |
3 |
RewriteEngine On |
4 |
RewriteBase / |
5 |
RewriteCond %{REQUEST_FILENAME} !-f |
6 |
RewriteCond %{REQUEST_FILENAME} !-d |
7 |
RewriteRule ^.*$ /yourls-loader.php [L] |
8 |
</IfModule> |
9 |
# END YOURLS
|
Más detalles para configurar .htaccess y YOURLS están aquí.
Ahora, visita la administración de tu sitio YOURLS en http://yourexampledomain.com/admin y recorre los pasos necesarios que la configuración requiera.



Una vez que las contraseñas están encriptadas y YOURLS está ejecutándose adecuadamente, asegúrate de cambiar los permisos en el archivo de configuración de nuevo a solo lectura:
1 |
sudo chmod 0440 ./user/config.php
|
Una vez que ingresas abreviaciones de URL y comienzas a recibir tráfico deberías ver algo como ésto en tu ruta /admin:



Crea una Página de Inicio
Por defecto, no hay página de inicio de YOURLS. Ésto es por el diseño, para evitar que los spammers abusen de tu servicio.
He creado un archivo predeterminado index.php para redireccionar a mi página web de consultoría. Los visitantes sólo llegarán a ésta página cuando ingresen a mi URL de YOURLS sin un una abreviación de URL correcta.
1 |
<html>
|
2 |
<head>
|
3 |
<META http-equiv="refresh" content="0;URL=http://lookahead.io"> |
4 |
</head>
|
5 |
<body bgcolor="#ffffff"> |
6 |
<center>
|
7 |
Please visit our website <a href="http://lookahead.io">Lookahead Consulting</a> |
8 |
</center>
|
9 |
</body>
|
10 |
</html>
|
Sin embargo, se deseas ofrecer una página de acortadores pública, copia sample-public-front-page.txt en index.php.
1 |
cp sample-public-front-page.txt index.php
|
Crear Abreviaciones
Crear abreviaciones es fácil y debería ser autoexplicatorio. Aquí está un ejemplo mío creando una abreviación para mi perfil de instructor en Tuts+.



YOURLS hace más fácil el compartir tu URL en Twitter y Facebook:



Estadísticas de Tráfico
Las estadísticas son uno de los aspectos más útiles creados para YOURLS. Aquí son niveles de actividad general en el tiempo:



Y, aquí está la información geográfica:



Aquí está la razón que elegí YOURLS: para obtener números detallados del tráfico sobre qué páginas fueron las más consultadas.



Con el tiempo, ésto me ayuda a afinar el lugar de mi publicidad.
Haciendo Más con YOURLS
También hay un extenso grupo de plugins de YOURLS y una API para explorar. Por ejemplo, están los plugins de Memcached y QR Code, entre otros.
YOURLS es código PHP bien configurado, conciso para ejecutar tu propio acortador de URL. Espero que hayas encontrado ésto útil.
Por favor publica cualquier comentario, corrección o idea adicional abajo. Puedes navegar por mis otros tutoriales en Tuts+ en mi página de instructor o seguirme en Twitter @reifman.
Enlaces Relacionados
- Sitio web de YOURLS
- Lanzamientos y Descargas de Código de YOURLS
- Lista de Plugins de YOURLS
- Documentación de la API de YOURLS
- Sigue a YOURLS en Twitter
¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!