GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie den Shlink-URL-Shortener mit Nginx unter Ubuntu 20.04

Schlink ist ein kostenloser, selbst gehosteter Open-Source-URL-Shortener, der in PHP geschrieben ist und sowohl eine REST- als auch eine CLI-Schnittstelle bietet, um mit ihm zu interagieren, um kurze URLs zu generieren und zu verwalten. Eine der Hauptfunktionen beim URL-Shorting ist, dass Sie alle Besuche dieser generierten URLs wie Standort, Browser, Referrer und vieles mehr nachverfolgen können. Darüber hinaus verwendet ein offizieller Shlink-Webclient die REST-API von Shlink und stellt dem Benutzer eine optionale WebUI zur Verfügung.

Am Ende der Anleitung erfahren Sie, wie Sie Shlink URL Shortner auf Ihrem Ubuntu-Server 20.04 LTS Focal Fossa mit Nginx installieren . Das gleiche Prinzip funktioniert für die neuere Version Ubuntu 21.04 (Hirsute Hippo) Server.

Voraussetzungen

  • Empfohlenes Betriebssystem: Ubuntu 20.04 – optional (Ubuntu 21.04 und Linux Mint 20).
  • Benutzerkonto: Ein Benutzerkonto mit Sudo- oder Root-Zugriff.
  • Erforderliche Pakete: mariadb php7.4 oder php8.0 installiert und konfiguriert.
  • Zusätzliche Pakete: curl wget entpacken.

Überprüfen und aktualisieren Sie Ihr Ubuntu-Betriebssystem.

sudo apt update && sudo apt upgrade -y

Installieren Sie als Nächstes die erforderlichen Pakete für diese Anleitung:

sudo apt install curl wget unzip

Shlink-Archiv herunterladen

Der erste Schritt besteht darin, die Shlink-Github-Seite zu besuchen und sich die neueste stabile Version anzusehen. Zum Zeitpunkt dieses Handbuchs ist die aktuelle stabile Version 2.7.1. Dies wird sich jedoch in Zukunft ändern. Shlink gibt es in 3 Versionen für PHP 7.4, PHP 8.0 und den Quellcode.

Um Shlink, 2.7.1 herunterzuladen, führen Sie den folgenden Befehl aus:

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

Quellcode:

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

Als Leitfaden folgt es dem Download-Beispiel von PHP 7.4. Der nächste Schritt ist die Verwendung von (unzip) Befehl, um das Archiv in Ihr (/var/www/html) zu extrahieren Verzeichnis.

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

Sie sollten den extrahierten Ordner umbenennen, um sich das Leben zu erleichtern, indem Sie den folgenden Befehl ausführen:

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

Bevor Sie fortfahren, wird empfohlen, die Berechtigungen des Verzeichnisses auf (www-data) festzulegen Benutzer, da er derzeit als (root) festgelegt ist . Geben Sie dazu das folgende (chown) ein und geben Sie es ein Befehl:

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

Neue MariaDB-Datenbank und Benutzer für Shlink erstellen

Der nächste Schritt besteht darin, eine neue Datenbank und einen dedizierten neuen Benutzer mit nur der Berechtigung zum Zugriff auf diese Datenbank zu erstellen. Es wird nicht empfohlen, root oder dasselbe Benutzerkonto für mehrere Datenbanken zu verwenden, wenn eine kompromittiert ist.

Der Leitfaden hat MariaDB installiert und ist mit der folgenden Terminologie vertraut.

Rufen Sie die MariaDB/MySQL-Terminalkonsole auf, indem Sie den Root-Befehl ausführen:

sudo mysql -u root

Erstellen Sie als Nächstes die neue Datenbank für Shlink mit dem folgenden Terminalbefehl:

CREATE DATABASE shlink;

Erstellen Sie nach dem Erstellen der Datenbank ein neues Benutzerkonto und gewähren Sie ihm Zugriff auf die Shlink-Datenbank. Wenn Sie Nginx, PHP und MariaDB auf demselben Server hosten, behalten Sie (localhost) bei . Wenn Sie einen sekundären Server verwenden, um MariaDB intern oder extern zu hosten, geben Sie die (IP-Adresse) ein statt (localhost) .

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

Um Änderungen live zu machen, müssen Sie die Berechtigungen löschen:

FLUSH PRIVILEGES;

Um das MariaDB-Terminal zu verlassen, führen Sie den folgenden Befehl aus:

EXIT;

Installieren Sie die neueste Version und Erweiterungen von PHP 7.4

Als Teil der Anforderungen wird PHP 7.4 oder 8.0 benötigt. Shlink benötigt bestimmte Erweiterungen, damit die Software mit PHP funktioniert. Es ist ideal, um sicherzustellen, dass PHP auf dem neuesten Stand ist. Das benutzerdefinierte PPA von Ondrej, dem Betreuer von PHP für Debian, wird dringend empfohlen.

Im Folgenden fügt der Leitfaden das Repository hinzu und installiert die für PHP 7.4 erforderlichen PHP-Erweiterungen. Wenn Sie PHP 8.0 installieren möchten, ändern Sie 7.4 auf 8.0 oder besuchen Sie unser offizielles How to install PHP 8.0 on Ubuntu 20.04 Tutorial .

Installieren Sie das benutzerdefinierte PHP PPA von ondrey:

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

Führen Sie nach dem Hinzufügen des Repositorys den folgenden Befehl aus, um die neueste PHP 7.4-Software zu aktualisieren oder zu installieren:

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

Um sicherzustellen, dass PHP 7.4 nach der Installation oder Aktualisierung korrekt läuft, geben Sie Folgendes ein:

sudo systemctl status php7.4-fpm

Beispielausgabe:

Shlink installieren

Jetzt können Sie mit der Installation des PHP-Shlink-Installationsskripts als (www-user) fortfahren indem Sie den folgenden PHP-Befehl in Ihrem Ubuntu-Terminal ausführen:

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

Sofort sehen Sie einen neuen Bildschirm, der Sie auffordert, die Datenbankdetails einzugeben.

Datenbank

In der Anleitung wählen Sie MariaDB; Wenn Sie jedoch lieber zurückgehen und eine andere optionale Datenbanksoftware einrichten möchten, können Sie dies selbstverständlich tun.

Wie unten gezeigt, ein Beispiel für die Erstellung von Shlink, das mit MariaDB eingerichtet wurde:

Die eingegebenen Optionen zusammengefasst:

  • Datenbanktyp auswählen: 1 (MariaDB)
  • Datenbankname: schlink
  • Datenbankport: 3306
  • Datenbank-Benutzername: Shlinkuser
  • Datenbankpasswort:
  • Unix-Socket:

URL-Shortner

Auf dem nächsten Bildschirm finden Sie eine weitere Seite mit Optionen. Hier finden Sie spezifisches HTTP oder HTTPS, den Domänennamen und einige Shlink-URL-Optionen. Beispieleinstellungen unten:

Die eingegebenen Optionen zusammengefasst:

  • Standarddomäne für generierte Kurz-URLs:
  • Schema für generierte Kurz-URLs auswählen: HTTPS (Verwenden Sie HTTP, wenn Sie kein SSL verwenden)
  • Möchten Sie lange URLs anhand des HTTP-Statuscodes 200 als Antwort validieren? (ja/nein): ja
  • Was ist die Standardlänge, die generierte Funktionscodes haben sollen? (Sie können dies weiterhin für jede erstellte Kurz-URL überschreiben): 5
  • Möchten Sie, dass Shlink den Titel der kurzen URL basierend auf dem Titel-Tag der langen URL (falls vorhanden) auflöst? Andernfalls wird es leer gehalten, sofern nicht ausdrücklich angegeben. (ja/nein): ja
  • Geben Sie einen GeoLite2-Lizenzschlüssel an. (Leer lassen, um den Standardschlüssel zu verwenden, aber es wird dringend empfohlen, einen eigenen zu erwerben. Gehen Sie zu https://shlink.io/documentation/geolite-license-key, um zu erfahren, wie Sie ihn erhalten): Lizenzschlüssel

Wenn Sie GeoLite2 verwenden möchten, müssen Sie ein Konto bei MaxMind erstellen und einen Schlüssel erstellen. Eine Anleitung dazu finden Sie in der Dokumentation von MaxMind GeoLite2. Wenn Sie fertig sind, ersetzen Sie Ihren Schlüssel und geben Sie ihn im Shlink-Setup ein.

Anschließend haben Sie die Möglichkeit, eine 301- oder 302-Weiterleitung einzurichten. Sie müssen 301 verwenden, sonst kann Ihr SEO, wie die Software vorschlägt, tatsächlich auf verschiedene Weise beeinträchtigt werden.

Verfolgung

Nachdem Sie 301 als permanente Weiterleitung festgelegt haben, sehen Sie als nächste Seite Tracking. Die meisten Standardeinstellungen sind in Ordnung, und wenn Sie sich in der EU befinden oder EU-Besucher haben, müssen Sie Ihre Daten anonymisieren, was Shlink glücklicherweise für Sie tun kann.

Beispieleinstellungen unten:

Die eingegebenen Optionen zusammengefasst:

  • Möchten Sie verwaiste Besuche nachverfolgen? (Besuche der Basis-URL, ungültige Kurz-URLs oder andere „nicht gefundene“ URLs): ja
  • Geben Sie einen Parameternamen an, den Sie verwenden können, um das Tracking bei bestimmten Anfragen an Kurz-URLs zu deaktivieren (leer lassen und diese Funktion wird nicht aktiviert):
  • Möchten Sie das Besuchs-Tracking vollständig deaktivieren?: nein
  • Möchten Sie das Tracking von Besucher-IP-Adressen deaktivieren?: nein
  • Möchten Sie das Tracking der „User Agents“ der Besucher deaktivieren?: ja
  • Möchten Sie, dass die Remote-IP-Adressen der Besucher anonymisiert werden, bevor sie in der Datenbank gespeichert werden?: ja
  • Möchten Sie das Tracking der „User Agents“ der Besucher deaktivieren? :nein
  • Möchten Sie die Nachverfolgung der „Referrer“ der Besucher deaktivieren? (ja/nein) :nein

Weiterleitungen

Die Einrichtung der Umleitung ist ziemlich einfach. Die beste Option ist, alles zurück zu Ihrer Homepage zu verlinken, um alle 404 / nicht gefundenen Fehler zu finden, die auf Ihrer Website auftreten können. Beispiel unten:

Die eingegebenen Optionen zusammengefasst:

  • Benutzerdefinierte URL zur Weiterleitung, wenn ein Benutzer auf die Basis-URL von Shlink klickt (Wenn kein Wert angegeben wird, sieht der Benutzer eine Standardseite „404 nicht gefunden“): https://www.example.com
  • Benutzerdefinierte URL zur Weiterleitung, wenn ein Nutzer auf eine ungültige Kurz-URL trifft (wenn kein Wert angegeben wird, sieht der Nutzer eine Standardseite „404 nicht gefunden“): https://www.example.com
  • Benutzerdefinierte URL zur Weiterleitung, wenn ein Benutzer auf eine nicht gefundene URL trifft, die keine ungültige Kurz-URL ist (wenn kein Wert angegeben ist, sieht der Benutzer eine Standardseite „404 nicht gefunden“): https://www.example.com

Bewerbung

In den Anwendungsoptionen können Sie eine Sicherheitsprüfung aktivieren, die es jetzt ermöglicht, kurze URLs nach einer bestimmten Anzahl von Besuchen zu löschen, und den Pfad festlegen, von dem aus Shlink bereitgestellt wird, wenn nicht der Stammpfad:

Die eingegebenen Optionen zusammengefasst:

  • Möchten Sie eine Sicherheitsprüfung aktivieren, die verhindert, dass kurze URLs nach einer bestimmten Anzahl von Besuchen gelöscht werden?: ja
  • Wie viele Besuche lassen das System nicht zu, dass Kurz-URLs gelöscht werden?: 15
  • Was ist der Pfad, von dem aus Shlink bedient wird? (Leer lassen, wenn Sie Shlink vom Stammverzeichnis der Domain bereitstellen möchten):

Beachten Sie, dass Sie die 15 abhängig von Ihrer Website in etwas größer oder kleiner ändern können, hauptsächlich in Bezug auf den Verkehr.

Einbindungen

Shlink hat nur eine Integration:Redis, die Sie unten in einer Einzel- oder Clusterinstanz konfigurieren können. Es wird empfohlen, einen einzelnen Server für Redis zu verwenden, bis Sie mit Redis-Clustering, -Sharding und -Replikation sehr vertraut sind, da dies ziemlich tiefgreifend ist und die durchschnittliche kleine bis mittlere Website dies nicht benötigen sollte, es sei denn, sie erhält große Verkehrslasten.

In der Anleitung haben wir es leer gelassen, aber wenn Sie es auf dem Localhost verwenden würden, geben Sie 127.0.1.1:6379 ein.

Herzlichen Glückwunsch, Sie haben Shlink auf Ubuntu 20.04 installiert.

Nginx-Server-Blockbeispiel

Um Shlink mit Nginx zu verwenden, müssen Sie Ihren Serverblock konfigurieren. Sie können dies tun, indem Sie die folgende Konfiguration kopieren und einfügen und sie an Ihre Anforderungen mit oder ohne HTTPS anpassen:

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

}

Führen Sie vor dem Neustart Ihres Nginx-Servers einen Probelauf durch, indem Sie den folgenden Code eingeben:

sudo nginx -t

Sie sollten die folgende Ausgabe erhalten:

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

Wenn alles in Ordnung ist, starten Sie Ihren Nginx-Server wie folgt neu:

sudo systemctl restart nginx

Kurzlinks erstellen

Um kurze Links mit Shlink zu erstellen, müssen Sie zuerst einen API-Schlüssel erstellen, indem Sie den PHP-Befehl ausführen:

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

Sobald Sie Ihren API-Schlüssel haben, müssen Sie Shlink.io besuchen, um Ihren Server zu registrieren.

Geben Sie den Namen des Servers, die URL des Servers und den API-Schlüssel wie im folgenden Beispiel ein:

Jetzt können Sie kurze Links mit der WebUI von Shlink hinzufügen, wenn Sie dies bevorzugen. Denken Sie daran, dass diese auf Ihrem Server gespeichert sind:

Die gebräuchlichste Option ist die Verwendung der Terminalbefehle zum Generieren von Kurz-URLs.

Führen Sie dazu den folgenden Befehl aus:

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

Um die generierten Kurz-URLs aufzulisten, verwenden Sie den folgenden Befehl:

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

Führen Sie den folgenden Befehl aus, um Hilfe zu suchen:

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

Beispielausgabe:

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. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  2. So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04

  3. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  4. So installieren Sie Grav CMS mit Nginx unter Ubuntu 16.04

  5. So installieren Sie den Shlink-URL-Shortener mit Nginx unter Ubuntu 20.04

So installieren Sie den Polr-URL-Shortener unter Ubuntu 20.04

So installieren Sie Nginx mit ModSecurity unter Ubuntu 15.04

So installieren Sie WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie Shlink URL Shortener auf Ubuntu 20.04 Server

So installieren Sie Shlink URL Shortener auf Ubuntu 18.04 Server

So installieren Sie Nextcloud 13 auf Ubuntu 16.04 mit Nginx