GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Shlink URL Shortener s Nginx na Ubuntu 20.04

Shlink je bezplatný, open-source hostovaný zkracovač adres URL napsaný v PHP, který poskytuje rozhraní REST i CLI pro interakci s ním za účelem generování a správy krátkých URL. Jednou z hlavních funkcí a zkrácení URL je, že můžete sledovat všechny návštěvy těchto generovaných URL, jako je umístění, prohlížeč, referrer a mnoho dalšího. Oficiální webový klient Shlink navíc používá rozhraní REST API Shlink a poskytuje uživateli volitelné webové uživatelské rozhraní.

Na konci průvodce budete vědět, jak nainstalovat Shlink URL Shortner na váš server Ubuntu 20.04 LTS Focal Fossa pomocí Nginx . Stejný princip bude fungovat pro server novější verze Ubuntu 21.04 (Hirsute Hippo).

Předpoklady

  • Doporučený operační systém: Ubuntu 20.04 – volitelné (Ubuntu 21.04 a Linux Mint 20).
  • Uživatelský účet: Uživatelský účet s přístupem sudo nebo root.
  • Požadované balíčky: mariadb php7.4 nebo php8.0 nainstalované a nakonfigurované.
  • Další balíčky: curl wget unzip.

Zkontrolujte a upgradujte svůj operační systém Ubuntu.

sudo apt update && sudo apt upgrade -y

Dále nainstalujte požadované balíčky pro tuto příručku:

sudo apt install curl wget unzip

Stáhnout archiv Shlink

Prvním krokem je navštívit stránku Shlink Github a podívat se na nejnovější stabilní verzi. V době vydání této příručky je aktuální stabilní verze 2.7.1. To se však v budoucnu změní. Shlink se dodává ve 3 verzích pro PHP 7.4, PHP 8.0 a zdrojový kód.

Chcete-li stáhnout Shlink, 2.7.1, spusťte následující příkaz:

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

Zdrojový kód:

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

Pro účely průvodce bude následovat příklad stažení PHP 7.4. Dalším krokem je použití (rozbalení) příkaz k rozbalení archivu do vašeho (/var/www/html) adresář.

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

Extrahovanou složku byste měli přejmenovat, abyste si usnadnili život provedením následujícího příkazu:

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

Než budete pokračovat, doporučujeme nastavit oprávnění adresáře na (www-data) uživatel jako aktuálně je nastaven jako (root) . Chcete-li to provést, zadejte a zadejte následující (chown) příkaz:

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

Vytvořte novou databázi MariaDB a uživatele pro Shlink

Dalším krokem je vytvoření nové databáze a vyhrazeného nového uživatele s pouze oprávněním pro přístup k této databázi. Nedoporučuje se používat root nebo stejný uživatelský účet na více databázích, pokud je jedna kompromitována.

Průvodce nainstaloval MariaDB a seznámil se s níže uvedenou terminologií.

Vstupte do terminálové konzoly MariaDB/MySQL provedením příkazu root:

sudo mysql -u root

Dále vytvořte novou databázi pro Shlink pomocí následujícího příkazu terminálu:

CREATE DATABASE shlink;

Po vytvoření databáze vytvořte nový uživatelský účet a udělte mu přístup do databáze Shlink. Pokud hostujete Nginx, PHP a MariaDB na stejném serveru, ponechte (localhost) . Pokud používáte sekundární server k hostování MariaDB na interním nebo externím serveru, zadejte (IP adresa) na místě (localhost) .

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

Chcete-li provést změny, musíte vyprázdnit oprávnění:

FLUSH PRIVILEGES;

Terminál MariaDB ukončíte provedením následujícího příkazu:

EXIT;

Nainstalujte nejnovější verzi a rozšíření PHP 7.4

V rámci požadavků je vyžadováno PHP 7.4 nebo 8.0. Shlink potřebuje určitá rozšíření, aby software fungoval pomocí PHP. Je to ideální pro ujištění se, že PHP je aktuální. Důrazně doporučujeme vlastní PPA od Ondřeje, správce a PHP pro Debian.

Níže průvodce přidá úložiště a nainstaluje rozšíření PHP požadovaná pro PHP 7.4. Pokud chcete nainstalovat PHP 8.0, změňte 7.4 na 8.0 nebo navštivte náš oficiální Výukový program Jak nainstalovat PHP 8.0 na Ubuntu 20.04 .

Nainstalujte vlastní PHP PPA od ondrey:

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

Po přidání úložiště spusťte následující příkaz pro aktualizaci nebo instalaci nejnovějšího softwaru 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

Abyste se ujistili, že PHP 7.4 po instalaci nebo aktualizaci běží správně, zadejte následující:

sudo systemctl status php7.4-fpm

Příklad výstupu:

Instalace Shlink

Nyní můžete pokračovat v instalaci instalačního skriptu PHP Shlink jako (www-user) provedením následujícího příkazu PHP ve vašem terminálu Ubuntu:

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

Okamžitě zjistíte, že se díváte na novou obrazovku, která vás požádá o zadání údajů o databázi.

Databáze

V průvodci si vyberete MariaDB; pokud se však chcete vrátit a nastavit jiný volitelný databázový software, určitě to můžete udělat.

Jak je uvedeno níže, příklad vytvoření Shlink nastaveného pomocí MariaDB:

Souhrnně zadané možnosti:

  • Vyberte typ databáze: 1 (MariaDB)
  • Název databáze: shlink
  • Port databáze: 3306
  • Uživatelské jméno databáze: shlinkuser
  • Heslo databáze:
  • Socket Unix:

Zkratka adres URL

Na další obrazovce najdete další stránku možností. Zde najdete konkrétní HTTP nebo HTTPS, název domény a některé možnosti Shlink URL. Příklad nastavení níže:

Souhrnně zadané možnosti:

  • Výchozí doména pro generované krátké adresy URL:
  • Vyberte schéma pro generované krátké adresy URL: HTTPS (Pokud nepoužíváte SSL, použijte HTTP)
  • Chcete ověřit dlouhé adresy URL 200 stavovým kódem HTTP v odpovědi? (ano/ne): ano
  • Jaká je výchozí délka, kterou mají mít vygenerované krátké kódy? (Stále to budete moci přepsat u každé vytvořené krátké adresy URL): 5
  • Chcete, aby Shlink přeložil název krátké adresy URL na základě značky názvu dlouhé adresy URL (pokud existuje)? V opačném případě zůstane prázdný, pokud to není výslovně uvedeno. (ano/ne): ano
  • Poskytněte licenční klíč GeoLite2. (Chcete-li použít výchozí, ponechejte prázdné, ale důrazně doporučujeme pořídit si vlastní. Přejděte na https://shlink.io/documentation/geolite-license-key, kde zjistíte, jak jej získat): licenční klíč

Pokud byste chtěli používat GeoLite2, budete si muset vytvořit účet u MaxMind a vytvořit klíč. Návod, jak to udělat, lze nalézt v dokumentaci MaxMind GeoLite2. Po dokončení vyměňte a zadejte svůj klíč v nastavení Shlink.

Následně budete mít možnost nastavit přesměrování 301 nebo 302. Musíte použít 301, jinak vaše SEO, jak naznačuje software, může být skutečně různými způsoby zranitelné.

Sledování

Po nastavení 301 jako trvalého přesměrování je další stránka, kterou uvidíte, sledování. Většina výchozích nastavení je v pořádku, a pokud jste v EU nebo máte návštěvníky z EU, musíte svá data anonymizovat, což pro vás naštěstí může udělat Shlink.

Příklad nastavení níže:

Souhrnně zadané možnosti:

  • Chcete sledovat osiřelé návštěvy? (návštěvy základní adresy URL, neplatné krátké adresy URL nebo jiné „nenalezené“ adresy URL): ano
  • Zadejte název parametru, který budete moci použít k deaktivaci sledování u konkrétního požadavku na krátké adresy URL (ponechte prázdné a tato funkce nebude povolena):
  • Chcete úplně zakázat sledování návštěv?: ne
  • Chcete zakázat sledování IP adres návštěvníků?: ne
  • Chcete zakázat sledování „uživatelských agentů“ návštěvníků?: ano
  • Chcete, aby byly vzdálené IP adresy návštěvníků před uložením do databáze anonymizovány?: ano
  • Chcete zakázat sledování „uživatelských agentů“ návštěvníků? :ne
  • Chcete deaktivovat sledování „odkazů“ návštěvníků? (ano/ne) :ne

Přesměrování

Nastavení přesměrování je poměrně snadné. Nejlepší možností je propojit vše zpět na vaši domovskou stránku pro případné chyby 404 / nenalezeno, které se mohou na vašem webu vyskytnout. Příklad níže:

Souhrnně zadané možnosti:

  • Vlastní adresa URL, na kterou se má uživatel přesměrovat, když uživatel narazí na základní adresu URL Shlink (Pokud nezadáte žádnou hodnotu, zobrazí se uživateli výchozí stránka „404 nenalezeno“): https://www.example.com
  • Vlastní adresa URL, na kterou se má uživatel přesměrovat, když narazí na neplatnou krátkou adresu URL (Pokud nezadáte žádnou hodnotu, zobrazí se uživateli výchozí stránka „404 nenalezeno“): https://www.example.com
  • Vlastní adresa URL, na kterou se má uživatel přesměrovat, když uživatel zadá jinou než neplatnou krátkou adresu URL nenalezenou adresu URL (Pokud nezadáte žádnou hodnotu, zobrazí se uživateli výchozí stránka „404 nenalezeno“): https://www.example.com

Aplikace

V možnostech aplikace můžete povolit bezpečnostní kontrolu, která nyní umožní smazat krátké adresy URL po určitém počtu návštěv spolu s nastavením cesty, ze které bude Shlink obsluhován, pokud ne kořenovou cestou:

Souhrnně zadané možnosti:

  • Chcete povolit bezpečnostní kontrolu, která neumožní smazání krátkých adres URL po určitém počtu návštěv?: ano
  • Jaký je počet návštěv, z nichž systém nedovolí smazat krátké adresy URL?: 15
  • Jaká je cesta, ze které bude shlink obsluhován? (Pokud plánujete poskytovat shlink z kořenového adresáře domény, ponechte prázdné):

Všimněte si, že 15 můžete upravit na něco většího nebo menšího v závislosti na vašem webu, zejména pokud jde o provoz.

Integrace

Shlink má pouze jednu integraci:Redis, kterou můžete nakonfigurovat níže v jedné nebo clusterové instanci. Doporučuje se používat pro Redis jeden server, dokud se dobře seznámíte s klastrováním, shardováním a replikací Redis, protože je to docela hloubka a průměrný malý až střední web by to neměl potřebovat, pokud není zatížen velkým provozem.

V průvodci jsme ji nechali prázdnou, ale pokud ji chcete použít na localhost, zadejte 127.0.1.1:6379.

Gratulujeme, nainstalovali jste Shlink na Ubuntu 20.04.

Příklad bloku serveru Nginx

Chcete-li používat Shlink s Nginx, budete muset nakonfigurovat blok serveru. Můžete to udělat zkopírováním a vložením následující konfigurace s úpravou tak, aby vyhovovala vašim potřebám s HTTPS nebo ne:

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

}

Před restartováním serveru Nginx proveďte zkušební provoz zadáním následujícího kódu:

sudo nginx -t

Měli byste obdržet následující výstup:

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

Pokud je vše v pořádku, restartujte server Nginx, jak je uvedeno níže:

sudo systemctl restart nginx

Vytvořit krátké odkazy

Chcete-li vytvořit krátké odkazy pomocí Shlink, musíte nejprve vytvořit klíč API spuštěním příkazu PHP:

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

Jakmile budete mít svůj klíč API, musíte navštívit Shlink.io a zaregistrovat svůj server.

Zadejte název serveru, adresu URL serveru a klíč API jako příklad níže:

Nyní můžete přidat krátké odkazy pomocí webového rozhraní Shlink, pokud chcete. Pamatujte, že jsou uloženy na vašem serveru:

Nejběžnější možností je použití terminálových příkazů pro generování krátkých URL.

Chcete-li to provést, spusťte následující příkaz:

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

Chcete-li vypsat krátké adresy URL, které se vygenerují, použijte následující příkaz:

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

Chcete-li vyhledat pomoc, spusťte následující příkaz:

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

Příklad výstupu:

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. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  2. Jak nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04

  3. Jak nainstalovat Shlink URL Shortener s Nginx na Ubuntu 20.04

  1. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Grav CMS s Nginx na Ubuntu 16.04

  3. Jak nainstalovat SuiteCRM s Nginx na Ubuntu 16.04

  1. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Redmine 3 s Nginx na Ubuntu 15.10