Kako instalirati Shlink URL Shortener s Nginxom na Ubuntu 20.04

Shlink je besplatan, open-source self-hosted URL skraćivač napisan u PHP-u koji pruža i REST i CLI sučelje za interakciju s njim radi generiranja i upravljanja kratkim URL-ovima. Jedna od glavnih značajki i skraćenja URL-ova je da možete pratiti sve posjete tim generiranim URL-ovima kao što su lokacija, preglednik, preporuka i još mnogo toga. Osim toga, službeni Shlink web klijent koristi Shlinkov REST API i pruža korisniku izborni WebUI.

Na kraju vodiča znat ćete kako instalirati Shlink URL Shortner na vaš Ubuntu poslužitelj 20.04 LTS Focal Fossa koristeći Nginx. Isti princip će raditi i za noviju verziju Ubuntu 21.04 (Hirsute Hippo) poslužitelj.

Preduvjeti

  • Preporučeni OS: Ubuntu 20.04 – neobavezno (Ubuntu 21.04 i Linux Mint 20).
  • Korisnički račun: Korisnički račun sa sudo ili root pristupom.
  • Potrebni paketi: instaliran i konfiguriran mariadb php7.4 ili php8.0.
  • Dodatni paketi: curl wget raspakirajte.

Provjerite i nadogradite svoj Ubuntu operativni sustav.

sudo apt update && sudo apt upgrade -y

Zatim instalirajte potrebne pakete za ovaj vodič:

sudo apt install curl wget unzip

Oglas


Preuzmite Shlink arhivu

Prvi korak je posjetiti stranicu Shlink Github i provjeriti najnoviju stabilnu verziju. U vrijeme ovog vodiča, trenutna stabilna verzija je 2.7.1. Međutim, to će se promijeniti u budućnosti. Shlink dolazi u 3 verzije za PHP 7.4, PHP 8.0 i izvorni kod.

Da biste preuzeli Shlink, 2.7.1, izvedite sljedeću naredbu:

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

Izvorni kod:

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

Za svrhu vodiča, slijedit će primjer preuzimanja PHP 7.4. Sljedeći korak je korištenje (otvoriti rajsfešlus) naredba za ekstrahiranje arhive u svoju (/var/www/html) katalog.

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

Trebali biste preimenovati ekstrahiranu mapu da biste olakšali život izvršavanjem sljedeće naredbe:

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

Prije nego krenete dalje, savjetuje se da postavite dozvole imenika na (www-podaci) korisnik kakav je trenutno postavljen (Root). Da biste to učinili, upišite i unesite sljedeće (cown) naredba:

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

Napravite novu MariaDB bazu podataka i korisnika za Shlink

Sljedeći korak je stvaranje nove baze podataka i novog namjenskog korisnika s samo dopuštenjem za pristup ovoj bazi podataka. Ne preporučuje se korištenje root ili istog korisničkog računa na više baza podataka ako je jedna ugrožena.

Vodič je instalirao MariaDB i upoznat je s terminologijom u nastavku.

Uđite u MariaDB/MySQL terminalsku konzolu izvršavanjem naredbe root:

sudo mysql -u root

Zatim stvorite novu bazu podataka za Shlink pomoću sljedeće terminalske naredbe:

CREATE DATABASE shlink;

Nakon izrade baze podataka, kreirajte novi korisnički račun i dodijelite mu pristup bazi podataka Shlink. Ako hostirate Nginx, PHP i MariaDB na istom poslužitelju, zadržite (lokalni host). Ako koristite sekundarni poslužitelj za hostiranje MariaDB na internom ili vanjskom, unesite (IP adresa) na mjestu (lokalni host).

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

Da bi promjene bile aktivne, morate isprazniti privilegije:

FLUSH PRIVILEGES;

Za izlaz iz MariaDB terminala izvedite sljedeću naredbu:

EXIT;

Oglas


Instalirajte najnoviju verziju PHP 7.4 i proširenja

Kao dio zahtjeva potreban je PHP 7.4 ili 8.0. Shlink treba određena proširenja kako bi softver mogao raditi pomoću PHP-a. Idealan je da provjerite je li PHP ažuriran. Prilagođeni PPA od Ondreja, održavatelja i PHP-a za Debian, toplo se preporučuje.

U nastavku će vodič dodati spremište i instalirati PHP proširenja potrebna za PHP 7.4. Ako želite instalirati PHP 8.0, promijenite 7.4 u 8.0 ili posjetite naš službeni Kako instalirati PHP 8.0 na Ubuntu 20.04 Vodič.

Instalirajte prilagođeni PHP PPA od strane ondreyja:

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

Nakon dodavanja spremišta, izvršite sljedeću naredbu da ažurirate ili instalirate najnoviji PHP 7.4 softver:

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

Kako biste bili sigurni da PHP 7.4 radi ispravno nakon instalacije ili ažuriranja, unesite sljedeće:

sudo systemctl status php7.4-fpm

Primjer rezultata:

PHP-FPM 7.4 koji radi na Ubuntu 20.04 instalirajte Shlink

Instalacija Shlink-a

Sada možete nastaviti s instaliranjem instalacijske skripte PHP Shlink kao (www-korisnik) izvršavanjem sljedeće PHP naredbe u vašem Ubuntu terminalu:

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

Odmah ćete se naći u novom zaslonu koji će od vas tražiti da unesete podatke baze podataka.

kako instalirati shlink uz ubuntu i nginx

Baza podataka

U vodiču ćete odabrati MariaDB; međutim, ako se više volite vratiti i postaviti drugi izborni softver baze podataka, to svakako možete učiniti.

Kao što je navedeno u nastavku, primjer kreiranja Shlink postavlja pomoću MariaDB:

kako instalirati shlink uz ubuntu i nginx

Opcije unesene u sažetku:

  • Odaberite vrstu baze podataka: 1 (MariaDB)
  • Naziv baze podataka: shlink
  • Port baze podataka: 3306
  • Korisničko ime baze podataka: shlinkuser
  • Lozinka baze podataka:
  • Unix utičnica:

URL Shortner

Na sljedećem zaslonu pronaći ćete drugu stranicu s opcijama. Ovdje ćete pronaći određeni HTTP ili HTTPS, naziv domene i neke Shlink URL opcije. Primjer postavki u nastavku:

kako instalirati shlink uz ubuntu i nginx

Opcije unesene u sažetku:

  • Zadana domena za generirane kratke URL-ove:
  • Odaberite shemu za generirane kratke URL-ove: HTTPS (Koristite HTTP ako ne koristite SSL)
  • Želite li potvrditi dugačke URL-ove pomoću 200 HTTP statusnog koda na odgovor? (da ne): Da
  • Koja je zadana duljina koju želite da imaju generirani kratki kodovi? (I dalje ćete to moći nadjačati na svakom kreiranom kratkom URL-u): 5
  • Želite li da Shlink razriješi kratki naslov URL-a na temelju oznake naslova dugog URL-a (ako postoji)? U suprotnom, ostat će prazan osim ako nije izričito navedeno. (da ne): Da
  • Navedite GeoLite2 licencni ključ. (Ostavite prazno da biste koristili zadani, ali se toplo preporučuje da nabavite svoj vlastiti. Idite na https://shlink.io/documentation/geolite-license-key da biste saznali kako ga dobiti): ključ licence

Ako želite koristiti GeoLite2, morat ćete stvoriti račun na MaxMind i kreirajte ključ. Vodič za to možete pronaći u MaxMind GeoLite2 dokumentacija. Kada završite, zamijenite i unesite svoj ključ u Shlink postavke.

Nakon toga, imat ćete opciju da postavite 301 ili 302 preusmjeravanje. Morate koristiti 301, inače vaš SEO, kao što softver sugerira, doista može biti povrijeđen na različite načine.

kako instalirati shlink uz ubuntu i nginx

Praćenje

Nakon što postavite 301 kao svoje trajno preusmjeravanje, sljedeća stranica koju ćete vidjeti je praćenje. Većina zadanih postavki je u redu, a ako ste u EU ili imate posjetitelje iz EU, morate anonimizirati svoje podatke što Shlink srećom može učiniti za vas.

Primjer postavki u nastavku:

kako instalirati shlink uz ubuntu i nginx

Opcije unesene u sažetku:

  • Želite li pratiti posjete siročadi? (posjeti osnovnom URL-u, nevažećim kratkim URL-ovima ili drugim "nepronađenim" URL-ovima): Da
  • Navedite naziv parametra koji ćete moći koristiti za onemogućavanje praćenja na određeni zahtjev kratkim URL-ovima (ostavite prazno i ​​ova značajka neće biti omogućena):
  • Želite li potpuno onemogućiti praćenje posjeta?: Ne
  • Želite li onemogućiti praćenje IP adresa posjetitelja?: Ne
  • Želite li onemogućiti praćenje "korisničkih agenata" posjetitelja?: Da
  • Želite li da se udaljene IP adrese posjetitelja anonimiziraju prije nego što ih potraju u bazi podataka?: Da
  • Želite li onemogućiti praćenje "korisničkih agenata" posjetitelja?: ne
  • Želite li onemogućiti praćenje "Preporuka" posjetitelja? (da ne): ne

preusmjeravanja

Postavljanje preusmjeravanja je prilično jednostavno. Najbolja opcija je povezati sve natrag na svoju početnu stranicu za sve pogreške 404 / not found koje se mogu pojaviti na vašoj web stranici. Primjer u nastavku:

kako instalirati shlink uz ubuntu i nginx

Opcije unesene u sažetku:

  • Prilagođeni URL za preusmjeravanje kada korisnik dotakne Shlinkov osnovni URL (ako nije navedena vrijednost, korisnik će vidjeti zadanu stranicu "404 nije pronađeno"): https://www.example.com
  • Prilagođeni URL za preusmjeravanje kada korisnik pogodi nevažeći kratki URL (ako nije navedena vrijednost, korisnik će vidjeti zadanu stranicu "404 nije pronađeno"): https://www.example.com
  • Prilagođeni URL na koji se preusmjerava kada korisnik pogodi URL koji nije pronađen osim nevažećeg kratkog URL-a (ako nije navedena vrijednost, korisnik će vidjeti zadanu stranicu "404 nije pronađeno"): https://www.example.com

primjena

U opcijama aplikacije možete omogućiti sigurnosnu provjeru, koja će sada omogućiti brisanje kratkih URL-ova nakon određenog broja posjeta, uz postavljanje puta s kojeg će se Shlink posluživati ​​ako ne i korijenski put:

kako instalirati shlink uz ubuntu i nginx

Opcije unesene u sažetku:

  • Želite li omogućiti sigurnosnu provjeru koja neće dopustiti brisanje kratkih URL-ova nakon primanja određene količine posjeta?: Da
  • Koliki je broj posjeta s kojih sustav neće dopustiti brisanje kratkih URL-ova?: 15
  • Koji je put s kojeg će shlink biti opslužen? (Ostavite prazno ako planirate posluživati ​​shlink iz korijena domene):

Napomena, 15 možete promijeniti u nešto veće ili manje ovisno o vašoj web-lokaciji, uglavnom oko prometa.

Integracije

Shlink ima samo jednu integraciju: Redis, koji možete konfigurirati u nastavku u jednoj ili klaster instanci. Preporuča se korištenje jednog poslužitelja za Redis dok ne budete dobro upoznati s Redisovim klasteriranjem, dijeljenjem i replikacijom jer je prilično dubinski, a prosječnom malom i srednjem web-mjestu to ne bi trebalo trebati osim ako ne prima velika opterećenja prometa.

kako instalirati shlink uz ubuntu i nginx

U vodiču smo ga ostavili praznim, ali ako biste ga koristili na lokalnom hostu, upišite 127.0.1.1:6379.

Čestitamo, instalirali ste Shlink na Ubuntu 20.04.

kako instalirati shlink uz ubuntu i nginx

Oglas


Primjer bloka Nginx poslužitelja

Da biste koristili Shlink s Nginxom, morat ćete konfigurirati blok poslužitelja. To možete učiniti tako da kopirate i zalijepite sljedeću konfiguraciju i modificirate je tako da odgovara vašim potrebama s HTTPS-om ili 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;
   }

}

Prije ponovnog pokretanja Nginx poslužitelja, izvršite suho pokretanje unosom sljedećeg koda:

sudo nginx -t

Trebali biste primiti sljedeći izlaz:

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

Ako je sve u redu, ponovno pokrenite Nginx poslužitelj na sljedeći način:

sudo systemctl restart nginx

Stvorite kratke veze

Da biste stvorili kratke veze sa Shlinkom, prvo morate stvoriti API ključ izvršavanjem PHP naredbe:

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

Nakon što dobijete svoj API ključ, morate posjetiti Shlink.io za registraciju vašeg poslužitelja.

kako instalirati shlink uz ubuntu i nginx

Unesite naziv poslužitelja, URL poslužitelja i API ključ kao primjer u nastavku:

kako instalirati shlink uz ubuntu i nginx

Sada možete dodati kratke veze pomoću Shlinkovog WebUI-ja ako želite. Zapamtite da su ovi pohranjeni na vašem poslužitelju:

kako instalirati shlink uz ubuntu i nginx

Najčešća opcija je korištenje naredbi terminala za generiranje kratkih URL-ova.

Da biste to učinili, izvršite sljedeću naredbu:

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

Za popis kratkih URL-ova koji se generiraju, koristite sljedeću naredbu:

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

Da biste potražili pomoć, pokrenite sljedeću naredbu:

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

Primjer rezultata:

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.

Oglas


Komentari i zaključak

Naučili ste kako instalirati Shlink na Ubuntu 20.04 s preuzimanjem arhive, ekstrahiranjem, postavljanjem baze podataka i korisnika s MariaDB-om, pokretanjem kroz instalacijski program Shlink, stvaranjem ili modificiranjem bloka Nginx poslužitelja i na kraju, učenjem kako stvoriti kratke URL-ove u ovom vodiču .

Općenito, Shlink je vjerojatno jedna od boljih opcija URL-a trenutno i treba ga razmotriti ako više volite zadržati kratke URL-ove u vlastitoj domeni i kontroli. Za više informacija posjetite službena dokumentacija od Shlinka.

Ako imate pitanja, slobodno ostavite komentar ispod.

Ostavite komentar