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