GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Shlink URL Shortener su Ubuntu 20.04 Server

Shlink è un abbreviatore di URL self-hosted open source, che ti consente di abbreviare gli URL e servirli sotto il tuo dominio breve. L'utilizzo del tuo servizio di abbreviazione degli URL invece di un servizio di terze parti come bit.ly può aumentare la consapevolezza del marchio. Questo tutorial ti mostrerà come installare Shlink su Ubuntu 20.04 con server Web Apache o Nginx.

Caratteristiche Shlink

  • Statistiche delle visite :traccia tutte le visite ai tuoi URL brevi, incluse statistiche come posizione, browser o referrer.
  • Tracciamento e-mail :genera un'immagine trasparente di 1px che può essere utilizzata per tenere traccia delle email.
  • Integrazioni di terze parti :fai in modo che gli strumenti di terze parti utilizzino facilmente shlink per abbreviare gli URL utilizzando un endpoint API a richiesta singola.
  • Slug personalizzati :fai in modo che i tuoi URL abbreviati utilizzino uno slug personalizzato per identificare facilmente le campagne.
  • Codici QR :genera al volo codici QR che puntano ai tuoi URL brevi
  • Anteprime :ottieni anteprime in formato immagine per qualsiasi URL breve
  • Tag :tagga i tuoi URL brevi e classificali per analisi successive
  • Accesso limitato :limita l'accesso a URL brevi, per intervallo di date e/o numero massimo di visite.
  • Importazioni di terze parti :importa i tuoi URL brevi esistenti da terze parti come bit.ly.
  • Riga di comando e interfaccia web.

Prerequisiti per l'installazione di Shlink su Ubuntu 20.04 Server

Shlink è scritto in PHP e si basa su un server di database MySQL/MariaDB o PostgreSQL, quindi è necessario configurare uno stack LAMP o uno stack LEMP. Se preferisci il server web Apache, configura lo stack LAMP.

  • Come installare lo stack LAMP su Ubuntu 20.04 Server/Desktop

Se preferisci il server web Nginx, configura lo stack LEMP.

  • Come installare lo stack LEMP (Nginx, MariaDB, PHP7.4) su Ubuntu 20.04 LTS

Hai anche bisogno di un nome di dominio. Ho registrato il mio nome di dominio da NameCheap perché il prezzo è basso e offrono protezione della privacy a whois gratuita per tutta la vita. In questo tutorial, utilizzo il mio lnux.be nome di dominio come esempio. Senza ulteriori indugi, installiamo Shlink sul server Ubuntu 20.04.

Passaggio 1:scarica Shlink sul tuo server Ubuntu 20.04

Vai alla pagina Shlink Github per controllare l'ultima versione stabile. Puoi scaricare l'ultima versione stabile (2.6.2) eseguendo il seguente comando sul tuo server.

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

Nota :Se esce una nuova versione, sostituisci semplicemente la 2.6.2 con il nuovo numero di versione.

Il file verrà salvato come shlink2.6.2_php8.0_dist.zip . Usa unzip comando per decomprimerlo in /var/www/ directory.

sudo apt install unzip

sudo mkdir -p /var/www/

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

Ora i file sono archiviati in /var/www/shlink2.6.2_php8.0_dist/ , lo rinominiamo per renderlo più semplice.

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

Quindi imposta l'utente del server web (www-data ) come proprietario di questa directory.

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

Fase 2:crea un database MariaDB e un utente per Shlink

Ora dobbiamo accedere alla console MariaDB e creare un database e un utente per Shlink. Per impostazione predefinita, il pacchetto MariaDB su Ubuntu utilizza unix_socket per autenticare l'accesso dell'utente, il che significa sostanzialmente che puoi utilizzare il nome utente e la password del sistema operativo per accedere alla console MariaDB. Quindi puoi eseguire il seguente comando per accedere senza fornire la password di root di MariaDB.

sudo mysql -u root

Quindi, crea un nuovo database per Shlink usando il comando seguente. Questo tutorial lo chiama shlink , puoi utilizzare il nome che preferisci per il database.

CREATE DATABASE shlink;

Il comando seguente creerà un utente e una password del database e allo stesso tempo concederà tutte le autorizzazioni del nuovo database al nuovo utente in modo che in seguito Shlink possa scrivere nel database. Sostituisci i testi rossi con il nome del database, il nome utente e la password preferiti.

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

Svuota la tabella dei privilegi ed esci dalla console MariaDB.

FLUSH PRIVILEGES;

EXIT;

Fase 3:installa PHP8.0 e alcune estensioni

Poiché abbiamo scaricato la versione PHP 8 di Shlink, è necessario installare PHP8. Il repository Ubuntu 20.04 include PHP7.2. Per installare PHP8.0 su Ubuntu 20.04, dobbiamo aggiungere un PPA.

sudo apt install software-properties-common

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

Quindi installa PHP8.0 e le estensioni richieste da 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

Se usi Apache server web, è necessario eseguire i seguenti comandi per farlo utilizzare PHP8.0-FPM.

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

Quindi riavvia Apache.

sudo systemctl restart apache2

Fase 4:esegui lo script di installazione Shlink

Esegui lo script di installazione PHP come www-data utente.

sudo -u www-data php8.0 /var/www/shlink/bin/install

La procedura guidata di configurazione ti chiederà di inserire i dettagli del database. Quindi scelgo MariaDB come tipo di database, quindi inserire il nome del database, l'utente e la password. L'host è localhost e la porta è 3306 . Shlink può anche connettersi al server del database tramite il socket Unix. Se usi MariaDB, la posizione del socket è /var/run/mysqld/mysqld.sock sul server Ubuntu.

Quindi, inserisci il dominio predefinito per il tuo abbreviatore di URL e seleziona il tipo di schema (https ). Quindi rispondi a diverse semplici domande.

Se vuoi analizzare la geolocalizzazione dei visitatori, devi utilizzare la tua chiave di licenza GeoLite2, che è gratuita. Per ottenere una chiave di licenza, crea un account su MaxMind. Maxmind ti invierà un'e-mail. Fare clic sul collegamento nell'e-mail per impostare una password, quindi accedere al proprio account MaxMind. Quindi, seleziona My License Key sulla barra di sinistra.

Fai clic su Genera nuova chiave di licenza pulsante.

Assegna un nome alla tua chiave di licenza. Quindi scegli No , perché non è necessario utilizzare il geoipupdate programma. Quindi fai clic su Confirm pulsante.

Una volta creata la chiave di licenza, copia la chiave di licenza e incollala nella procedura guidata di configurazione di Shlink. Quindi puoi scegliere di rendere anonimi gli indirizzi IP dei visitatori e impostare il tipo di reindirizzamento (302 o 301).

Quindi configura i reindirizzamenti per i casi di anomalia. Quando i visitatori raggiungono l'URL di base del mio Shlink (https://lnux.be), verranno reindirizzati al mio sito web. Puoi anche creare un URL personalizzato per la pagina 404 non trovata.

Infine, configura l'applicazione. Premo semplicemente Enter per utilizzare le impostazioni predefinite.

Fase 5:crea un host virtuale Apache o un file di configurazione Nginx per Shlink

Apache

Se utilizzi il server Web Apache, crea un host virtuale per Shlink.

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

Inserisci il seguente testo nel file. Sostituisci lnux.be con il tuo vero nome di dominio e non dimenticare di impostare un record DNS A per esso.

<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>

Include /etc/apache2/conf-available/php8.0-fpm.conf

</VirtualHost>

Salva e chiudi il file. Quindi abilita questo host virtuale con:

sudo a2ensite shlink.conf

Ricarica Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Nginx

Se utilizzi il server web Nginx, crea un host virtuale per Shlink.

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

Inserisci il seguente testo nel file. Sostituisci lnux.be con il tuo vero nome di dominio e non dimenticare di impostare un record DNS A per esso.

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;
   }

}

Salva e chiudi il file. Quindi testa la configurazione di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Fase 6:abilitazione di HTTPS

Per crittografare il traffico HTTP, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui il comando seguente per installare il client Let's Encrypt (certbot) sul server Ubuntu 20.04.

sudo apt install certbot

Se usi Apache , installa il plugin Certbot Apache.

sudo apt install python3-certbot-apache

Ed esegui questo comando per ottenere e installare il certificato TLS.

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

Se usi Nginx , devi anche installare il plug-in Certbot Nginx.

sudo apt install python3-certbot-nginx

Quindi, esegui il comando seguente per ottenere e installare il certificato TLS.

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

Dove

  • --nginx :usa il plugin nginx.
  • --apache :usa il plugin Apache.
  • --agree-tos :Accetta i termini di servizio.
  • --redirect :Forza HTTPS tramite reindirizzamento 301.
  • --hsts :aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --staple-ocsp :Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

Passaggio 7:creazione di collegamenti brevi

Innanzitutto, devi creare una chiave API con il seguente comando.

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

Quindi vai su https://app.shlink.io/ per aggiungere il tuo server.

Dopo aver aggiunto il tuo server, puoi creare collegamenti brevi.

Nota che questo è solo un client web. Gli URL brevi sono archiviati sul tuo server.

Puoi anche generare brevi URL dalla riga di comando sul tuo server.

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

Elenca URL brevi.

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

Esegui il comando seguente per visualizzare il messaggio di aiuto.

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

Ubuntu
  1. Come installare MySQL su Ubuntu 18.04

  2. Come installare il server Minecraft su Ubuntu 18.04

  3. Come installare Nginx su Ubuntu 20.04

  4. Come installare Zimbra 8.6 su Ubuntu 14.04 Server

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

Come installare Ubuntu Server 18.04 LTS

Come installare il server LTS di Ubuntu 20.04

Come installare Cockpit su Ubuntu 20.04

Come installare il server VNC su Ubuntu 20.04

Come installare Shlink URL Shortener su Ubuntu 18.04 Server

Come installare Shlink URL Shortener con Nginx su Ubuntu 20.04