GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar el acortador de URL Shlink en el servidor Ubuntu 18.04

Shlink es un acortador de URL autohospedado de código abierto, que le permite acortar URL y servirlas bajo su propio dominio corto. El uso de su propio servicio de acortador de URL en lugar de un servicio de terceros como bit.ly puede aumentar el conocimiento de la marca. Este tutorial le mostrará cómo instalar Shlink en Ubuntu 18.04 con el servidor web Apache o Nginx.

Características de Shlink

  • Estadísticas de visitas :Realice un seguimiento de todas las visitas a sus URL cortas, incluidas estadísticas como la ubicación, el navegador o la referencia.
  • Seguimiento de correo electrónico :genera una imagen transparente de 1 px que se puede usar para rastrear correos electrónicos.
  • Integraciones de terceros :haga que las herramientas de terceros utilicen shlink para acortar las URL fácilmente mediante un punto final de API de solicitud única.
  • Slugs personalizados :haga que sus URL acortadas utilicen un slug personalizado para identificar fácilmente las campañas.
  • Códigos QR :genere códigos QR sobre la marcha que apunten a sus URL cortas
  • Vistas previas :obtenga vistas previas en formato de imagen para cualquier URL corta
  • Etiquetas :etiquete sus URL cortas y clasifíquelas para análisis posteriores
  • Acceso limitado :Limite el acceso a URL cortas, por rango de fechas y/o número máximo de visitas.
  • Importaciones de terceros :importe sus URL cortas existentes de terceros como bit.ly.
  • Línea de comandos e interfaz web.

Requisitos previos para instalar Shlink en el servidor Ubuntu 18.04

Shlink está escrito en PHP y se basa en el servidor de base de datos MySQL/MariaDB o PostgreSQL, por lo que debe configurar una pila LAMP o una pila LEMP. Si prefiere el servidor web Apache, configure la pila LAMP.

  • Cómo instalar LAMP Stack en servidor/escritorio Ubuntu 18.04

Si prefiere el servidor web Nginx, configure la pila LEMP.

  • Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.2) en Ubuntu 18.04 LTS

También necesita un nombre de dominio. Registré mi nombre de dominio de NameCheap porque el precio es bajo y brindan protección de privacidad whois de forma gratuita. En este tutorial, uso mi lnux.be nombre de dominio como ejemplo. Sin más preámbulos, instalemos Shlink en el servidor Ubuntu 18.04.

Paso 1:Descargue Shlink en su servidor Ubuntu 18.04

Vaya a la página de Shlink Github para ver la última versión estable. Puede descargar la última versión estable (2.6.2) ejecutando el siguiente comando en su servidor.

wget https://github.com/shlinkio/shlink/releases/download/v2.6.2/shlink2.6.2_php8.0_dist.zip

Nota :Si sale una nueva versión, simplemente reemplace 2.6.2 con el nuevo número de versión.

El archivo se guardará como shlink2.6.2_php8.0_dist.zip . Usa unzip comando para descomprimirlo en /var/www/ directorio.

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www/

Ahora los archivos se almacenan en /var/www/shlink2.6.2_php8.0_dist/ , lo renombramos para hacerlo más simple.

sudo mv /var/www/shlink2.6.2_php8.0_dist/ /var/www/shlink

Luego haga que el usuario del servidor web (www-data ) como propietario de este directorio.

sudo chown -R www-data:www-data /var/www/shlink/

Paso 2:Crear una base de datos MariaDB y un usuario para Shlink

Ahora debemos iniciar sesión en la consola de MariaDB y crear una base de datos y un usuario para Shlink. De forma predeterminada, el paquete MariaDB en Ubuntu usa unix_socket para autenticar el inicio de sesión del usuario, lo que básicamente significa que puede usar el nombre de usuario y la contraseña del sistema operativo para iniciar sesión en la consola de MariaDB. Entonces puede ejecutar el siguiente comando para iniciar sesión sin proporcionar la contraseña de root de MariaDB.

sudo mysql -u root

Luego, cree una nueva base de datos para Shlink usando el siguiente comando. Este tutorial lo llama shlink , puede usar el nombre que desee para la base de datos.

CREATE DATABASE shlink;

El siguiente comando creará un usuario y una contraseña para la base de datos y, al mismo tiempo, otorgará todos los permisos de la nueva base de datos al nuevo usuario para que Shlink pueda escribir en la base de datos más adelante. Reemplace los textos en rojo con su nombre de base de datos, nombre de usuario y contraseña preferidos.

GRANT ALL ON shlink.* TO 'shlink'@'localhost' IDENTIFIED BY 'password';

Vacíe la tabla de privilegios y salga de la consola de MariaDB.

FLUSH PRIVILEGES;

EXIT;

Paso 3:Instale PHP8.0 y algunas extensiones

Como descargamos la versión PHP 8 de Shlink, necesitamos instalar PHP8. El repositorio de Ubuntu 18.04 incluye PHP7.2. Para instalar PHP8.0 en Ubuntu 18.04, necesitamos agregar un PPA.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

Luego instale PHP8.0 y las extensiones requeridas por Shlink.

sudo apt install php-apcu php8.0 php8.0-fpm php8.0-mysql php8.0-gd php8.0-common php8.0-curl php8.0-intl php8.0-gmp php8.0-xml

Si usa Apache servidor web, debe ejecutar los siguientes comandos para que use PHP8.0-FPM.

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event proxy_fcgi setenvif
sudo a2enconf php8.0-fpm

Luego reinicie Apache.

sudo systemctl restart apache2

Paso 4:Ejecute el script de instalación de Shlink

Vaya a /var/www/shlink/bin/ directorio.

cd /var/www/shlink/bin/

Hay un script PHP llamado install , ejecutamos el script como www-data usuario.

sudo -u www-data php8.0 ./install

Luego, el asistente de configuración le pedirá que ingrese los detalles de la base de datos. Así que elijo MariaDB como el tipo de base de datos, luego ingrese el nombre de la base de datos, el usuario y la contraseña. El host es localhost y el puerto es 3306 .

A continuación, ingrese el dominio predeterminado para su acortador de URL y seleccione el tipo de esquema (https )

Luego configura las redirecciones. Cuando los visitantes accedan a la URL base de mi Shlink (https://lnux.be), serán redirigidos a mi sitio web. También puede crear una URL personalizada para la página 404 no encontrada. En este tutorial, simplemente presiono Enter para aceptar el valor predeterminado.

Finalmente, configure la aplicación. Simplemente presiono Enter para utilizar la configuración predeterminada.

Paso 5:Cree un host virtual de Apache o un archivo de configuración de Nginx para Shlink

Apache

Si usa el servidor web Apache, cree un host virtual para Shlink.

sudo nano /etc/apache2/sites-available/shlink.conf

Coloque el siguiente texto en el archivo. Reemplace lnux.be con su nombre de dominio real y no olvide establecer un registro DNS A para él.

<VirtualHost *:80>
  ServerName lnux.be
  DocumentRoot /var/www/shlink/public

  ErrorLog ${APACHE_LOG_DIR}/shlink_error.log
  CustomLog ${APACHE_LOG_DIR}/shlink_access.log combined

  <Directory /var/www/shlink/public>
    Options FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

</VirtualHost>

Guarde y cierre el archivo. Luego habilite este host virtual con:

sudo a2ensite shlink.conf

Vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Nginx

Si usa el servidor web Nginx, cree un servidor virtual para Shlink.

sudo nano /etc/nginx/conf.d/shlink.conf

Coloque el siguiente texto en el archivo. Reemplace lnux.be con su nombre de dominio real y no olvide establecer un registro DNS A para él.

server {
   listen 80;
   listen [::]:80;
   server_name lnux.be;

   root /var/www/shlink/public;
   error_log /var/log/nginx/shlink.error;
   access_log /var/log/nginx/shlink.access;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     # try to serve file directly, fallback to app.php
     try_files $uri /index.php$is_args$args;
   }

   # redirect some entire folders
     rewrite ^/(vendor|translations|build)/.* /index.php break;

   location ~ \.php$ {
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
   }

}

Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Paso 6:habilitar HTTPS

Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en el servidor Ubuntu 18.04.

sudo apt install certbot

Si usa Apache, instale el complemento Certbot Apache.

sudo apt install python3-certbot-apache

Y ejecute este comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

Si usa Nginx, también necesita instalar el complemento Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

donde

  • --nginx :use el complemento nginx.
  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts : Agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --staple-ocsp : Habilita el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Paso 7:Creación de enlaces cortos

Primero, debe crear una clave API con el siguiente comando.

sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate

Luego vaya a https://app.shlink.io/ para agregar su servidor.

Una vez que agregue su servidor, puede crear enlaces cortos.

Tenga en cuenta que esto es solo un cliente web. Las URL cortas se almacenan en su propio servidor.

También puede generar direcciones URL cortas desde la línea de comandos en su servidor.

sudo -u www-data /var/www/shlink/bin/cli short-url:generate

Enumera las URL cortas.

sudo -u www-data /var/www/shlink/bin/cli short-url:list

Ejecute el siguiente comando para ver el mensaje de ayuda.

sudo -u www-data php /var/www/shlink/bin/cli

Ubuntu
  1. Cómo instalar MySQL en Ubuntu 18.04

  2. Cómo instalar el servidor de Minecraft en Ubuntu 18.04

  3. Cómo instalar Nginx en Ubuntu 20.04

  4. Cómo instalar Zimbra 8.6 en el servidor Ubuntu 14.04

  5. Cómo instalar el acortador de URL Shlink con Nginx en Ubuntu 20.04

Cómo instalar Ubuntu Server 18.04 LTS

Cómo instalar el servidor Ubuntu 20.04 LTS

Cómo instalar Cockpit en Ubuntu 20.04

Cómo instalar el servidor VNC en Ubuntu 20.04

Cómo instalar el acortador de URL Shlink en el servidor Ubuntu 20.04

Cómo instalar el acortador de URL Shlink con Nginx en Ubuntu 20.04