Shlink je open-source samostatně hostovaný zkracovač adres URL, který vám umožňuje zkracovat adresy URL a poskytovat je pod vaší vlastní krátkou doménou. Použití vlastní služby zkracování adres URL místo služby třetí strany, jako je bit.ly, může zvýšit povědomí o značce. Tento tutoriál vám ukáže, jak nainstalovat Shlink na Ubuntu 18.04 s webovým serverem Apache nebo Nginx.
Funkce Shlink
- Statistiky návštěv :Sledujte všechny návštěvy vašich krátkých adres URL, včetně statistik, jako je poloha, prohlížeč nebo referrer.
- Sledování e-mailů :Vygenerujte průhledný obrázek o velikosti 1 pixel, který lze použít ke sledování e-mailů.
- Integrace třetích stran :Snadno přimějte nástroje třetích stran používat shlink ke zkrácení adres URL pomocí koncového bodu API pro jeden požadavek.
- Vlastní slimáci :Zajistěte, aby vaše zkrácené adresy URL používaly vlastní slug pro snadnou identifikaci kampaní.
- QR kódy :Generujte QR kódy za běhu směřující na vaše krátké adresy URL
- Náhledy :Získejte náhledy ve formátu obrázku pro jakoukoli krátkou adresu URL
- Značky :Označte své krátké adresy URL a klasifikujte je pro pozdější analýzu
- Omezený přístup :Omezte přístup ke krátkým adresám URL, podle časového období a/nebo maximálního počtu návštěv.
- Dovozy třetích stran :Importujte své stávající krátké adresy URL od třetích stran, jako je bit.ly.
- Příkazový řádek a webové rozhraní.
Předpoklady instalace Shlink na Ubuntu 18.04 Server
Shlink je napsán v PHP a spoléhá na databázový server MySQL/MariaDB nebo PostgreSQL, takže musíte nastavit zásobník LAMP nebo zásobník LEMP. Pokud dáváte přednost webovému serveru Apache, nastavte zásobník LAMP.
- Jak nainstalovat LAMP Stack na Ubuntu 18.04 Server/Desktop
Pokud dáváte přednost webovému serveru Nginx, nastavte zásobník LEMP.
- Jak nainstalovat LEMP Stack (Nginx, MariaDB, PHP7.2) na Ubuntu 18.04 LTS
Potřebujete také název domény. Zaregistroval jsem své doménové jméno od NameCheap, protože cena je nízká a poskytují ochranu soukromí whois zdarma. V tomto tutoriálu používám svůj lnux.be název domény jako příklad. Bez dalších okolků nainstalujme Shlink na server Ubuntu 18.04.
Krok 1:Stáhněte si Shlink na svůj server Ubuntu 18.04
Přejděte na stránku Shlink Github a podívejte se na nejnovější stabilní verzi. Nejnovější stabilní verzi (2.6.2) si můžete stáhnout provedením následujícího příkazu na vašem serveru.
wget https://github.com/shlinkio/shlink/releases/download/v2.6.2/shlink2.6.2_php8.0_dist.zip
Poznámka :Pokud vyjde nová verze, jednoduše nahraďte 2.6.2 novým číslem verze.
Soubor bude uložen jako shlink2.6.2_php8.0_dist.zip
. Použijte unzip
příkaz rozbalte do /var/www/
adresář.
sudo apt install unzip sudo mkdir -p /var/www/ sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www/
Nyní jsou soubory uloženy pod /var/www/shlink2.6.2_php8.0_dist/
, přejmenujeme jej, aby byl jednodušší.
sudo mv /var/www/shlink2.6.2_php8.0_dist/ /var/www/shlink
Poté nastavte uživatele webového serveru (www-data
) jako vlastníka tohoto adresáře.
sudo chown -R www-data:www-data /var/www/shlink/
Krok 2:Vytvoření databáze MariaDB a uživatele pro Shlink
Nyní se musíme přihlásit do konzole MariaDB a vytvořit databázi a uživatele pro Shlink. Ve výchozím nastavení používá balíček MariaDB na Ubuntu unix_socket k ověření přihlášení uživatele, což v podstatě znamená, že můžete použít uživatelské jméno a heslo operačního systému pro přihlášení do konzoly MariaDB. Můžete tedy spustit následující příkaz a přihlásit se bez zadání hesla root MariaDB.
sudo mysql -u root
Dále vytvořte novou databázi pro Shlink pomocí následujícího příkazu. Tento tutoriál jej pojmenuje shlink
, můžete pro databázi použít jakýkoli název.
CREATE DATABASE shlink;
Následující příkaz vytvoří databázového uživatele a heslo a zároveň udělí veškerá oprávnění nové databáze novému uživateli, aby později mohl Shlink zapisovat do databáze. Nahraďte červené texty preferovaným názvem databáze, uživatelským jménem a heslem.
GRANT ALL ON shlink.* TO 'shlink'@'localhost' IDENTIFIED BY 'password';
Vyprázdněte tabulku oprávnění a ukončete konzolu MariaDB.
FLUSH PRIVILEGES; EXIT;
Krok 3:Nainstalujte PHP8.0 a některá rozšíření
Protože jsme si stáhli PHP 8 verzi Shlink, musíme nainstalovat PHP8. Úložiště Ubuntu 18.04 obsahuje PHP7.2. Chcete-li nainstalovat PHP8.0 na Ubuntu 18.04, musíme přidat PPA.
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php -y
Poté nainstalujte PHP8.0 a rozšíření požadovaná Shlinkem.
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
Pokud používáte Apache webový server, musíte spustit následující příkazy, aby používal PHP8.0-FPM.
sudo a2dismod mpm_prefork sudo a2enmod mpm_event proxy_fcgi setenvif sudo a2enconf php8.0-fpm
Poté restartujte Apache.
sudo systemctl restart apache2
Krok 4:Spusťte instalační skript Shlink
Přejděte na /var/www/shlink/bin/
adresář.
cd /var/www/shlink/bin/
Existuje PHP skript s názvem install
, spustíme skript jako www-data
uživatel.
sudo -u www-data php8.0 ./install
Poté vás průvodce nastavením požádá o zadání údajů o databázi. Vybírám tedy MariaDB jako typ databáze zadejte název databáze, uživatele a heslo. Hostitelem je localhost a port je 3306 .
Dále zadejte výchozí doménu pro váš zkracovač adres URL a vyberte typ schématu (https )
Poté nakonfigurujte přesměrování. Když návštěvníci narazí na moji základní adresu URL Shlink (https://lnux.be), budou přesměrováni na můj web. Můžete také vytvořit vlastní adresu URL pro stránku 404 nenalezeno. V tomto tutoriálu jednoduše stisknu Enter
přijmout výchozí nastavení.
Nakonec nakonfigurujte aplikaci. Jednoduše stisknu Enter
použít výchozí nastavení.
Krok 5:Vytvoření virtuálního hostitele Apache nebo konfiguračního souboru Nginx pro Shlink
Apache
Pokud používáte webový server Apache, vytvořte virtuálního hostitele pro Shlink.
sudo nano /etc/apache2/sites-available/shlink.conf
Do souboru vložte následující text. Nahraďte lnux.be
se svým skutečným názvem domény a nezapomeňte pro něj nastavit záznam DNS A.
<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> </VirtualHost>
Uložte a zavřete soubor. Poté povolte tohoto virtuálního hostitele pomocí:
sudo a2ensite shlink.conf
Znovu načtěte Apache, aby se změny projevily.
sudo systemctl reload apache2
Nginx
Pokud používáte webový server Nginx, vytvořte virtuálního hostitele pro Shlink.
sudo nano /etc/nginx/conf.d/shlink.conf
Do souboru vložte následující text. Nahraďte lnux.be
se svým skutečným názvem domény a nezapomeňte pro něj nastavit záznam DNS A.
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; } }
Uložte a zavřete soubor. Poté otestujte konfiguraci Nginx.
sudo nginx -t
Pokud je test úspěšný, znovu načtěte Nginx, aby se změny projevily.
sudo systemctl reload nginx
Krok 6:Povolení HTTPS
Pro šifrování HTTP provozu můžeme povolit HTTPS instalací bezplatného TLS certifikátu vydaného od Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na server Ubuntu 18.04.
sudo apt install certbot
Pokud používáte Apache, nainstalujte si plugin Certbot Apache.
sudo apt install python3-certbot-apache
A spusťte tento příkaz, abyste získali a nainstalovali certifikát TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be
Pokud používáte Nginx, musíte si také nainstalovat plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be
Kde
--nginx
:Použijte plugin nginx.--apache
:Použijte plugin Apache.--agree-tos
:Souhlas se smluvními podmínkami.--redirect
:Vynutit HTTPS přesměrováním 301.--hsts
:Ke každé odpovědi HTTP přidejte záhlaví Strict-Transport-Security. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.--staple-ocsp
: Povoluje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.
Certifikát by nyní měl být získán a automaticky nainstalován.
Krok 7:Vytvoření krátkých odkazů
Nejprve musíte vytvořit klíč API pomocí následujícího příkazu.
sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate
Poté přejděte na https://app.shlink.io/ a přidejte svůj server.
Jakmile přidáte svůj server, můžete vytvářet krátké odkazy.
Upozorňujeme, že se jedná pouze o webového klienta. Krátké adresy URL jsou uloženy na vašem vlastním serveru.
Můžete také generovat krátké adresy URL z příkazového řádku na vašem serveru.
sudo -u www-data /var/www/shlink/bin/cli short-url:generate
Seznam krátkých adres URL.
sudo -u www-data /var/www/shlink/bin/cli short-url:list
Spuštěním následujícího příkazu zobrazíte zprávu nápovědy.
sudo -u www-data php /var/www/shlink/bin/cli