Come installare Shlink URL Shortener con Nginx su Ubuntu 20.04

Shlink è un accorciatore di URL self-hosted gratuito e open source scritto in PHP che fornisce sia un'interfaccia REST che un'interfaccia CLI per interagire con esso per generare e gestire URL brevi. Una delle caratteristiche principali e il cortocircuito dell'URL è che puoi tenere traccia di tutte le visite a questi URL generati come posizione, browser, referrer e molto altro. Inoltre, un client Web Shlink ufficiale utilizza l'API REST di Shlink e fornisce all'utente una WebUI opzionale.

Alla fine della guida, lo saprai come installare Shlink URL Shortner sul tuo server Ubuntu 20.04 LTS Focal Fossa usando Nginx. Lo stesso principio funzionerà per la versione più recente Ubuntu 21.04 (Hirsute Hippo) server.

Pre-requisiti

  • Sistema operativo consigliato: Ubuntu 20.04 – opzionale (Ubuntu 21.04 e Linux Mint 20).
  • Account utente: Un account utente con accesso sudo o root.
  • Pacchetti richiesti: mariadb php7.4 o php8.0 installato e configurato.
  • Pacchetti aggiuntivi: curl wget unzip.

Controlla e aggiorna il tuo sistema operativo Ubuntu.

sudo apt update && sudo apt upgrade -y

Quindi, installa i pacchetti richiesti per questa guida:

sudo apt install curl wget unzip

pubblicità


Scarica l'archivio Shlink

Il primo passo è visitare la pagina Shlink Github e controllare l'ultima versione stabile. Al momento di questa guida, l'attuale versione stabile è 2.7.1. Tuttavia, questo cambierà in futuro. Shlink è disponibile in 3 versioni per PHP 7.4, PHP 8.0 e il codice sorgente.

Per scaricare Shlink, 2.7.1, esegui il seguente comando:

PHP 7.4:

wget https://github.com/shlinkio/shlink/releases/download/v2.7.1/shlink2.7.1_php7.4_dist.zip

PHP 8.0:

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

Codice sorgente:

wget https://github.com/shlinkio/shlink/archive/refs/tags/v2.7.1.zip

Ai fini della guida, seguirà l'esempio di download di PHP 7.4. Il prossimo passo è usare il (decomprimere) comando per estrarre l'archivio nel tuo (/var/www/html) directory.

sudo unzip shlink2.7.1_php7.4_dist.zip -d /var/www/html

Dovresti rinominare la cartella estratta per semplificarti la vita eseguendo il seguente comando:

sudo mv /var/www/html/shlink2.7.1_php7.4_dist/ /var/www/html/shlink

Prima di proseguire, si consiglia di impostare i permessi della directory su (www-dati) utente come attualmente è impostato come (Root). Per fare ciò, digita e inserisci quanto segue (chown) comando:

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

Crea nuovo database MariaDB e utente per Shlink

Il passaggio successivo consiste nel creare un nuovo database e un nuovo utente dedicato con il solo permesso di accedere a questo database. Non è consigliabile utilizzare root o lo stesso account utente su più database se uno è compromesso.

La guida ha installato MariaDB e ha familiarità con la terminologia di seguito.

Accedi alla console del terminale MariaDB/MySQL eseguendo il comando root:

sudo mysql -u root

Quindi, crea il nuovo database per Shlink usando il seguente comando da terminale:

CREATE DATABASE shlink;

Dopo aver creato il database, crea un nuovo account utente e concedigli l'accesso al database Shlink. Se stai ospitando Nginx, PHP e MariaDB sullo stesso server, mantieni il (host locale). Se si utilizza un server secondario per ospitare MariaDB su interni o esterni, inserire il (Indirizzo IP) a posto (host locale).

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

Per apportare modifiche in tempo reale, è necessario svuotare i privilegi:

FLUSH PRIVILEGES;

Per uscire dal terminale MariaDB eseguire il seguente comando:

EXIT;

pubblicità


Installa PHP 7.4 Ultima versione ed estensioni

Come parte dei requisiti, è richiesto PHP 7.4 o 8.0. Shlink necessita di determinate estensioni affinché il software funzioni utilizzando PHP. È l'ideale per assicurarsi che PHP sia aggiornato. Il PPA personalizzato di Ondrej, il manutentore e PHP per Debian, è altamente raccomandato.

Di seguito, la guida aggiungerà il repository e installerà le estensioni PHP richieste per PHP 7.4. Se vuoi installare PHP 8.0, cambia 7.4 in 8.0 o visita il nostro sito ufficiale Come installare PHP 8.0 su Ubuntu 20.04 Tutorial.

Installa il PPA PHP personalizzato di ondrey:

sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Dopo aver aggiunto il repository, eseguire il seguente comando per aggiornare o installare l'ultimo software PHP 7.4:

sudo apt install php7.4-apcu php7.4-fpm php7.4-mysql php7.4-gd php7.4-common php7.4-curl php7.4-intl php7.4-gmp php7.4-xml php7.4-json -y

Per assicurarti che PHP 7.4 funzioni correttamente dopo l'installazione o l'aggiornamento, inserisci quanto segue:

sudo systemctl status php7.4-fpm

Esempio di output:

PHP-FPM 7.4 in esecuzione su Ubuntu 20.04 installa Shlink

Installazione di Shlink

Ora puoi procedere con l'installazione dello script di installazione di PHP Shlink come (utente www) eseguendo il seguente comando PHP nel tuo terminale Ubuntu:

sudo -u www-data php7.4 /var/www/html/shlink/bin/install

Ti ritroverai subito di fronte a una nuova schermata che ti chiederà di inserire i dettagli del database.

come installare shlink con Ubuntu e Nginx

Banca Dati

Nella guida, sceglierai MariaDB; tuttavia, se preferisci tornare indietro e configurare un altro software di database opzionale, puoi certamente farlo.

Come di seguito, un esempio di creazione di Shlink impostato utilizzando MariaDB:

come installare shlink con Ubuntu e Nginx

Le opzioni inserite in sintesi:

  • Seleziona il tipo di banca dati: 1 (Maria DB)
  • Nome del database: shlink
  • Porta del database: 3306
  • Nome utente del database: shlinkuser
  • Password banca dati:
  • Presa Unix:

Abbreviazione URL

Nella schermata successiva, troverai un'altra pagina di opzioni. Qui troverai HTTP o HTTPS specifici, il nome di dominio e alcune opzioni URL Shlink. Impostazioni di esempio di seguito:

come installare shlink con Ubuntu e Nginx

Le opzioni inserite in sintesi:

  • Dominio predefinito per URL brevi generati:
  • Seleziona lo schema per gli URL brevi generati: HTTPS (Utilizzare HTTP se non si utilizza SSL)
  • Vuoi convalidare gli URL lunghi con il codice di stato HTTP 200 in risposta? (si No):
  • Qual è la lunghezza predefinita che vuoi che abbiano i codici funzione generati? (Sarai ancora in grado di sovrascrivere questo su ogni URL breve creato): 5
  • Vuoi che Shlink risolva il titolo dell'URL breve in base al tag del titolo dell'URL lungo (se presente)? In caso contrario, verrà mantenuto vuoto se non espressamente previsto. (si No):
  • Fornire una chiave di licenza GeoLite2. (Lascia vuoto per usare quello predefinito, ma si consiglia vivamente di procurarsene uno tuo. Vai a https://shlink.io/documentation/geolite-license-key per sapere come ottenerlo): chiave di licenza

Se desideri utilizzare GeoLite2, dovrai creare un account su MaxMind e creare una chiave. Una guida per farlo può essere trovata in MaxMind GeoLite2's documentazione. Una volta fatto, sostituisci e inserisci la tua chiave nella configurazione di Shlink.

Successivamente, avrai la possibilità di impostare il reindirizzamento 301 o 302. Devi usare 301, altrimenti il ​​tuo SEO, come suggerisce il software, può infatti essere danneggiato in vari modi.

come installare shlink con Ubuntu e Nginx

Tracking

Dopo aver impostato 301 come reindirizzamento permanente, la pagina successiva che vedrai è il monitoraggio. La maggior parte delle impostazioni predefinite va bene, e se sei nell'UE o hai visitatori dell'UE, devi rendere anonimi i tuoi dati che fortunatamente Shlink può fare per te.

Impostazioni di esempio di seguito:

come installare shlink con Ubuntu e Nginx

Le opzioni inserite in sintesi:

  • Vuoi monitorare le visite degli orfani? (visite all'URL di base, URL brevi non validi o altri URL "non trovati"):
  • Fornisci un nome di parametro che sarai in grado di utilizzare per disabilitare il monitoraggio su richiesta specifica per URL brevi (lascia vuoto e questa funzione non sarà abilitata):
  • Vuoi disabilitare completamente il monitoraggio delle visite?: no
  • Vuoi disabilitare il tracciamento degli indirizzi IP dei visitatori?: no
  • Vuoi disabilitare il tracciamento degli “User Agent” dei visitatori?:
  • Vuoi che gli indirizzi IP remoti dei visitatori vengano resi anonimi prima di renderli persistenti nel database?:
  • Vuoi disabilitare il tracciamento degli “User Agent” dei visitatori?: No
  • Vuoi disabilitare il tracciamento dei “Referrer” dei visitatori? (si No): No

Reindirizzamenti

La configurazione del reindirizzamento è abbastanza semplice. L'opzione migliore è ricollegare tutto alla tua home page per eventuali errori 404/non trovato che potrebbero verificarsi sul tuo sito web. Esempio di seguito:

come installare shlink con Ubuntu e Nginx

Le opzioni inserite in sintesi:

  • URL personalizzato a cui reindirizzare quando un utente raggiunge l'URL di base di Shlink (se non viene fornito alcun valore, l'utente vedrà una pagina predefinita "404 non trovato"): https://www.example.com
  • URL personalizzato a cui reindirizzare quando un utente raggiunge un URL breve non valido (se non viene fornito alcun valore, l'utente vedrà una pagina predefinita "404 non trovato"): https://www.example.com
  • URL personalizzato a cui reindirizzare quando un utente raggiunge un URL non trovato diverso da un URL breve non valido (se non viene fornito alcun valore, l'utente vedrà una pagina predefinita "404 non trovato"): https://www.example.com

Applicazioni

Nelle opzioni dell'applicazione, puoi abilitare un controllo di sicurezza, che ora consentirà di eliminare gli URL brevi dopo un certo numero di visite, oltre a impostare il percorso da cui verrà servito Shlink se non il percorso di root:

come installare shlink con Ubuntu e Nginx

Le opzioni inserite in sintesi:

  • Vuoi attivare un controllo di sicurezza che non consenta l'eliminazione di URL brevi dopo aver ricevuto un determinato numero di visite?:
  • Qual è la quantità di visite da cui il sistema non consentirà l'eliminazione di URL brevi?: 15
  • Qual è il percorso da cui verrà servito lo shlink? (Lascia vuoto se prevedi di servire shlink dalla radice del dominio):

Nota, puoi modificare il 15 in qualcosa di più grande o più piccolo a seconda del tuo sito, principalmente intorno al traffico.

integrazioni

Shlink ha una sola integrazione: Redis, che puoi configurare di seguito in un'istanza singola o cluster. Si consiglia di utilizzare un singolo server per Redis fino a quando non si acquisisce familiarità con il clustering, lo sharding e la replica di Redis poiché è abbastanza approfondito e il sito Web medio di piccole e medie dimensioni non dovrebbe averne bisogno a meno che non riceva enormi carichi di traffico.

come installare shlink con Ubuntu e Nginx

Nella guida, l'abbiamo lasciato vuoto, ma se dovessi usarlo sul localhost, digita 127.0.1.1:6379.

Congratulazioni, hai installato Shlink su Ubuntu 20.04.

come installare shlink con Ubuntu e Nginx

pubblicità


Esempio di blocco server Nginx

Per utilizzare Shlink con Nginx, dovrai configurare il tuo blocco server. Puoi farlo copiando e incollando la seguente configurazione modificandola in base alle tue esigenze con HTTPS o meno:

server {
   listen 80;
   listen [::]:80;
   server_name www.linuxcapable.com

   root /var/www/html/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;
   }

}

Prima di riavviare il tuo server Nginx, esegui una prova inserendo il seguente codice:

sudo nginx -t

Dovresti ricevere il seguente risultato:

nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful

Se tutto è ok, riavvia il tuo server Nginx come di seguito:

sudo systemctl restart nginx

Crea collegamenti brevi

Per creare collegamenti brevi con Shlink, devi prima creare una chiave API eseguendo il comando PHP:

sudo -u www-data php7.4 /var/www/shlink/html/bin/cli api-key:generate

Una volta che hai la tua chiave API, devi visitare Shlink.io per registrare il tuo server.

come installare shlink con Ubuntu e Nginx

Inserisci il nome del server, l'URL del server e la chiave API come nell'esempio seguente:

come installare shlink con Ubuntu e Nginx

Ora puoi aggiungere collegamenti brevi utilizzando WebUI di Shlink, se preferisci. Ricorda che questi sono memorizzati sul tuo server:

come installare shlink con Ubuntu e Nginx

L'opzione più comune è utilizzare i comandi del terminale per generare URL brevi.

Per fare ciò, eseguire il seguente comando:

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

Per elencare gli URL brevi che vengono generati, utilizzare il seguente comando:

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

Per chiedere aiuto, esegui il seguente comando:

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

Esempio di output:

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  help                Displays help for a command
  list                Lists commands
 api-key
  api-key:disable     Disables an API key.
  api-key:generate    Generates a new valid API key.
  api-key:list        Lists all the available API keys.
 db
  db:create           Creates the database needed for shlink to work. It will do nothing if the database already exists
  db:migrate          Runs database migrations, which will ensure the shlink database is up to date.
 short-url
  short-url:delete    Deletes a short URL
  short-url:generate  Generates a short URL for provided long URL and returns it
  short-url:list      List all short URLs
  short-url:parse     Returns the long URL behind a short code
  short-url:visits    Returns the detailed visits information for provided short code
 tag
  tag:create          Creates one or more tags.
  tag:delete          Deletes one or more tags.
  tag:list            Lists existing tags.
  tag:rename          Renames one existing tag.
 visit
  visit:locate        Resolves visits origin locations.

pubblicità


Commenti e Conclusione

Hai imparato come installare Shlink su Ubuntu 20.04 scaricando l'archivio, estraendo, configurando un database e un utente con MariaDB, eseguendo il programma di installazione di Shlink, creando o modificando il blocco del server Nginx e, infine, imparando come creare URL brevi in ​​questo tutorial .

Nel complesso, Shlink è probabilmente una delle migliori opzioni URL attualmente e dovrebbe essere presa in considerazione se preferisci mantenere URL brevi nel tuo dominio e controllo. Per maggiori informazioni, visita il documentazione ufficiale di Shlink.

Se hai domande, sentiti libero di lasciare un commento qui sotto.

Lascia un tuo commento