Instalar un servidor shortener con YOURLS en Ubuntu 20.04

Instalar un servidor shortener con YOURLS en Ubuntu 20.04 Focal LTS.

YOURLS que en realidad significa Your Own URL Shortener (Su propio acortador de URL). Es una herramienta compuesta de varios scripts PHP,  que nos permite tener nuestro propio servicio de acortamiento de URL. Para que me entiendas mejor, lo mismo que TinyURL, Bitly y otros tantos servicios existentes, pero bajo tu control.

Ejecutar tu propio servicio acortador de URL es útil si haces uso de ellos continuamente. Podrás agregar tu propio dominio a los acortadores, además de no depender de nadie, tus datos los manejas tú solo tú. En este artículo veremos como montar un servidor de estas características, ayudándonos del increíble paquete YOURLS.

Ejemplo de shortener

Ejemplo de shortener

 

Instalar un servidor shortener con YOURLS en Ubuntu 20.04

Como siempre… comenzamos actualizando nuestro sistema.

sudo apt update

sudo apt full-upgrade

Imagen de ejemplo…

Actualizar Ubuntu 20.04

Actualizar Ubuntu 20.04

 

Ahora sigue todos los pasos indicados, para instalar el paquete LEMP (servidor).

sudo apt-get install nginx

sudo systemctl start nginx

sudo systemctl enable nginx

Ejemplo…

root@SoloLinux-demo:~# sudo apt-get install nginx
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libnginx-mod-http-image-filter
  libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream libtiff5
  libwebp6 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4 libxslt1.1
  nginx-common nginx-core
Suggested packages:
  libgd-tools fcgiwrap nginx-doc
The following NEW packages will be installed:
  libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libnginx-mod-http-image-filter
  libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream libtiff5
  libwebp6 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4 libxslt1.1
  nginx nginx-common nginx-core
0 upgraded, 20 newly installed, 0 to remove and 0 not upgraded.
Need to get 2151 kB of archives.
After this operation, 8113 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

---------------------------------------

root@SoloLinux-demo:~# sudo systemctl start nginx
root@SoloLinux-demo:~# sudo systemctl enable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx
root@SoloLinux-demo:~#

 

Llega el turno de instalar MariaDB.

sudo apt-get install nginx mariadb-server

sudo systemctl start mariadb

sudo systemctl enable mariadb

Aseguramos la instalación.

sudo mysql_secure_installation

Es necesario crear una base de datos con usuario y password. Introduce tus datos reales.

sudo mysql -u root -p

Los datos son:

  • MOMBREDB – Nombre de la nueva base de datos.
  • MIUSUARIO – Usuario de la base de datos.
  • PASSWORD – Tu contraseña elegida.

Ejecuta lo siguiente con tus datos (línea por línea).

CREATE DATABASE MOMBREDB DEFAULT CHARACTER SET UTF8 COLLATE utf8_unicode_ci;

CREATE USER 'MIUSUARIO'@'localhost' IDENTIFIED BY 'PASSWORD';

GRANT ALL PRIVILEGES ON MOMBREDB.* TO 'MIUSUARIO'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

FLUSH PRIVILEGES;

EXIT;

Observa la imagen de ejemplo real.

Configurar la base de datos para YOURLS

Configurar la base de datos para YOURLS

 

Instalamos PHP.

sudo apt-get install php-fpm php-xml php-pear php-cli php-zip php-json php-mysql  php-gd php-mbstring php-curl php-bcmath -y

Es necesario reiniciar Nginx.

sudo systemctl restart nginx

 

Llego el momento de descargar YOURLS, pero para ello necesitamos instalar GIT y acceder a /var/www/html.

sudo apt install git
cd /var/www/html
sudo git clone https://github.com/YOURLS/YOURLS.git

Ejemplo.

root@SoloLinux-demo:/var/www/html# sudo git clone https://github.com/YOURLS/YOURLS.git
Cloning into 'YOURLS'...
remote: Enumerating objects: 9686, done.
remote: Counting objects: 100% (91/91), done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 9686 (delta 39), reused 40 (delta 16), pack-reused 9595
Receiving objects: 100% (9686/9686), 14.13 MiB | 18.89 MiB/s, done.
Resolving deltas: 100% (5847/5847), done.
root@SoloLinux-demo:/var/www/html#

Borramos dos archivos innecesarios.

sudo rm index.html

sudo rm index.nginx-debian.html

 

Accedemos a la carpeta user (recuerda que ya estamos en /var/www/html).

cd YOURLS/user/

Creamos el archivo de configuración (aprovechamos el que viene de ejemplo).

cp config-sample.php config.php

Ejemplo del proceso.

root@SoloLinux-demo:/var/www/html# cd YOURLS/user/
root@SoloLinux-demo:/var/www/html/YOURLS/user# cp config-sample.php config.php
root@SoloLinux-demo:/var/www/html/YOURLS/user#

Accede al archivo y lo modificas, con los datos de la base de datos que usaste anteriormente.

sudo nano config.php

Las líneas a editar son:

/** MySQL database username */
define( 'YOURLS_DB_USER', 'your db user name' );   <<<--- Usuario


/** MySQL database password */
define( 'YOURLS_DB_PASS', 'your db password' );   <<<--- Password


/** The name of the database for YOURLS
 ** Use lower case letters [a-z], digits [0-9] and underscores [_] only */
define( 'YOURLS_DB_NAME', 'yourls' );   <<<--- Nombre de la base de datos


/** YOURLS installation URL
 ** All lowercase, no trailing slash at the end.
 ** If you define it to "http://sho.rt", don't use "http://www.sho.rt" in your >
 ** To use an IDN domain (eg http://héhé.com), write its ascii form here (eg ht>
define( 'YOURLS_SITE', 'http://your-own-domain-here.com' );   <<<--- Url de acceso


/** A random secret hash used to encrypt cookies. You don't have to remember it>
 ** Hint: copy from http://yourls.org/cookie */
define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );   <<<--- Inserta una cadena de caracteres aleatoria


/** Username(s) and password(s) allowed to access the site. Passwords either in>
 ** YOURLS will auto encrypt plain text passwords in this file
 ** Read http://yourls.org/userpassword for more information */
$yourls_user_passwords = [
        'username' => 'password',   <<<--- password
        // 'username2' => 'password2',
        // You can have one or more 'login'=>'password' lines
];
Configurar el archivo config de YOURLS

Configurar el archivo config de YOURLS

 

Una vez hayas concluido la configuración del archivo, lo guardas y cierras el editor. Es necesario conceder los permisos correspondientes.

cd

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

chmod -R 775 /var/www/html

Ejemplo…

root@SoloLinux-demo:~# cd
root@SoloLinux-demo:~# chown -R www-data:www-data /var/www/html
root@SoloLinux-demo:~# chmod -R 775 /var/www/html
root@SoloLinux-demo:~#

Si tienes el firewall habilitado, abres los puertos necesarios.

ufw allow http

ufw allow https

 

Configuramos NGINX.

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

Copia y pega la configuración del archivo, sin olvidarte de modificar la url.

server {


listen 80;
listen [::]:80;

server_name midominio.com;

root /var/www/html;

location / {
try_files $uri $uri/ /yourls-loader.php$is_args$args;
}

location ~ \.php$ {
include fastcgi.conf;

fastcgi_index index.php;

fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

}

Guarda el archivo y cierra el editor.

Habilitamos el archivo.

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

Para concluir, es necesario reiniciar NGINX.

systemctl restart nginx

 

En realidad nuestro servidor ya está listo para producción, pero mucho mejor si aseguramos con SSL instalando Let’s Encrypt con Certbot.

SSL con CertBot

SSL con CertBot

 

Instalamos la herramienta y las bibliotecas necesarias.

sudo apt-get install certbot python3-certbot-nginx

Puedes agregar SSL fácilmente a tu dominio, ejecutando este comando.

sudo certbot --nginx -d midominio.com

Para concluir el proceso, también debes hacer unas pequeñas modificaciones en el archivo de configuración.

sudo nano /var/www/html/YOURLS/user/config.php

En la línea donde insertamos la url del sitio.

/** YOURLS installation URL
 ** All lowercase, no trailing slash at the end.
 ** If you define it to "http://sho.rt", don't use "http://www.sho.rt" in your >
 ** To use an IDN domain (eg http://héhé.com), write its ascii form here (eg ht>
define( 'YOURLS_SITE', 'http://your-own-domain-here.com' );

Debes modificar http por https.

/** YOURLS installation URL
 ** All lowercase, no trailing slash at the end.
 ** If you define it to "http://sho.rt", don't use "http://www.sho.rt" in your >
 ** To use an IDN domain (eg http://héhé.com), write its ascii form here (eg ht>
define( 'YOURLS_SITE', 'https://your-own-domain-here.com' );

Después de la línea anterior, añade esta otra.

define('YOURLS_ADMIN_SSL', true);

Imagen de ejemplo.

ssl en archivo

SSL en archivo config.php

 

Guarda el archivo y cierra el editor, solo falta reiniciar el servidor.

sudo reboot

Ya tenemos listo nuestro servidor, ahora solo falta instalar y configurar la herramienta, según tus necesidades. Desde tu navegador web favorito, accede a la siguiente url.

https://midominio.com/admin/install.php

Sigue los pasos que te indica la herramienta YOURLS. Usa tu nombre de usuario y contraseña de administrador para iniciar sesión en…

https://midominio.com/admin/index.php

Listo, ya tenemos nuestro servidor acortador de url listo para producción.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido