GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Shlink URL Shortener con Nginx su Ubuntu 20.04

Shlink è un abbreviatore 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 l'abbreviazione degli 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 un'interfaccia utente Web opzionale.

Alla fine della guida, 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 del server Ubuntu 21.04 (Hirsute Hippo).

Prerequisiti

  • 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 decomprimi.

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

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 è la 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, eseguire il comando seguente:

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 passaggio successivo consiste nell'utilizzare (decomprimi) 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 procedere, si consiglia di impostare i permessi della directory su (www-data) utente poiché attualmente è impostato come (root) . Per fare ciò, digita e inserisci il seguente (chown) comando:

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

Crea nuovo database e utente MariaDB 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, creare un nuovo account utente e concedergli l'accesso al database Shlink. Se stai ospitando Nginx, PHP e MariaDB sullo stesso server, mantieni il (localhost) . Se utilizzi un server secondario per ospitare MariaDB su interni o esterni, inserisci (indirizzo IP) al posto (localhost) .

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

Per rendere attive le modifiche, devi svuotare i privilegi:

FLUSH PRIVILEGES;

Per uscire dal terminale MariaDB eseguire il seguente comando:

EXIT;

Installa PHP 7.4 ultima versione ed estensioni

Come parte dei requisiti, è richiesto PHP 7.4 o 8.0. Shlink ha bisogno di alcune estensioni per far funzionare il software usando 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 la 7.4 in 8.0 o visita il nostro Tutorial ufficiale su come installare PHP 8.0 su Ubuntu 20.04 .

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, esegui il seguente comando per aggiornare o installare il software PHP 7.4 più recente:

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:

Installazione di Shlink

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

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

Immediatamente ti ritroverai a guardare una nuova schermata che ti chiederà di inserire i dettagli del database.

Banca dati

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

Come di seguito, un esempio di creazione della configurazione di Shlink utilizzando MariaDB:

Le opzioni inserite in sintesi:

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

Abbreviazione URL

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

Le opzioni inserite in sintesi:

  • Dominio predefinito per URL brevi generati:
  • Seleziona lo schema per gli URL brevi generati: HTTPS (Utilizza HTTP se non utilizzi SSL)
  • Vuoi convalidare gli URL lunghi con il codice di stato HTTP 200 alla risposta? (sì/no): si
  • Qual ​​è la lunghezza predefinita che vuoi che i codici funzione generati abbiano? (Sarai comunque in grado di sovrascriverlo 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. (sì/no): si
  • Fornire una chiave di licenza GeoLite2. (Lascia vuoto per usare quello predefinito, ma si consiglia vivamente di ottenerne uno tuo. Vai su 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 nella documentazione di MaxMind GeoLite2. Una volta terminato, 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ò effettivamente essere danneggiato in vari modi.

Tracciamento

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, cosa che fortunatamente Shlink può fare per te.

Esempio di impostazioni di seguito:

Le opzioni inserite in sintesi:

  • Vuoi tenere traccia delle visite degli orfani? (visite all'URL di base, URL brevi non validi o altri URL "non trovati"): si
  • Fornisci un nome di parametro che potrai utilizzare per disabilitare il monitoraggio su richiesta specifica a URL brevi (lascia vuoto e questa funzione non sarà abilitata):
  • Vuoi disattivare completamente il monitoraggio delle visite?: no
  • Vuoi disabilitare il tracciamento degli indirizzi IP dei visitatori?: no
  • Vuoi disattivare il tracciamento degli "User Agent" dei visitatori?: si
  • Vuoi rendere anonimi gli indirizzi IP remoti dei visitatori prima di salvarli nel database?: si
  • Vuoi disattivare il tracciamento degli "User Agent" dei visitatori? :no
  • Vuoi disabilitare il tracciamento dei "Referrer" dei visitatori? (sì/no) :no

Reindirizzamenti

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

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.esempio.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.esempio.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.esempio.com

Applicazione

Nelle opzioni dell'applicazione, puoi abilitare un controllo di sicurezza, che ora consentirà di eliminare gli URL brevi dopo un certo numero di visite, insieme all'impostazione del percorso da cui Shlink verrà servito se non il percorso principale:

Le opzioni inserite in sintesi:

  • Vuoi abilitare un controllo di sicurezza che non consenta l'eliminazione di URL brevi dopo aver ricevuto un determinato numero di visite?: si
  • Qual ​​è la quantità di visite da cui il sistema non consentirà l'eliminazione di URL brevi?: 15
  • Qual ​​è il percorso da cui verrà servito 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 unico server per Redis finché non si ha familiarità con il clustering, lo sharding e la replica Redis in quanto è piuttosto approfondito e il sito Web medio di piccole e medie dimensioni non dovrebbe averne bisogno a meno che non riceva enormi carichi di traffico.

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

Congratulazioni, hai installato Shlink su Ubuntu 20.04.

Esempio di blocco del server Nginx

Per utilizzare Shlink con Nginx, dovrai configurare il blocco del 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 un test inserendo il seguente codice:

sudo nginx -t

Dovresti ricevere il seguente output:

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 è a posto, riavvia il tuo server Nginx come di seguito:

sudo systemctl restart nginx

Crea link 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.

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

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

L'opzione più comune consiste nell'usare i comandi del terminale per generare URL brevi.

Per fare ciò, esegui 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.

Ubuntu
  1. Come installare WordPress con Nginx su Ubuntu 18.04

  2. Come installare phpMyAdmin con Nginx su Ubuntu 18.04

  3. Come installare MediaWiki con Nginx su Ubuntu 16.04

  4. Come installare Grav CMS con Nginx su Ubuntu 16.04

  5. Come installare Shlink URL Shortener con Nginx su Ubuntu 20.04

Come installare Polr URL Shortener su Ubuntu 20.04

Come installare Nginx con ModSecurity su Ubuntu 15.04

Come installare WordPress 5.x con Nginx su Ubuntu 18.04 / Ubuntu 16.04

Come installare Shlink URL Shortener su Ubuntu 20.04 Server

Come installare Shlink URL Shortener su Ubuntu 18.04 Server

Come installare Nextcloud 13 su Ubuntu 16.04 con Nginx