Shlink ist ein Open-Source- und selbst gehosteter URL-Shortener, der in PHP geschrieben ist. Es wird verwendet, um kurze URLs von der Befehlszeile aus zu generieren und zu verwalten. Es ermöglicht Ihnen, alle Besuche Ihrer Kurz-URLs zu verfolgen, einschließlich Standort, Browser oder Referrer. Es kann über die Shlink-API in Tools von Drittanbietern integriert werden. Es bietet eine Befehlszeilenschnittstelle zum Kürzen von URLs.
In diesem Tutorial zeige ich Ihnen, wie Sie Shlink unter Ubuntu 20.04 installieren.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Ein gültiger Domainname, auf den Ihre Server-IP verweist.
- Auf dem Server ist ein Root-Passwort konfiguriert.
Erste Schritte
Aktualisieren Sie zuerst die Systempakete auf die aktualisierte Version, indem Sie den folgenden Befehl ausführen:
apt-get update -y
Sobald alle Pakete aktualisiert sind, können Sie mit dem nächsten Schritt fortfahren.
LEMP-Server installieren
Installieren Sie zuerst Nginx, PHP, MariaDB und andere erforderliche Pakete mit dem folgenden Befehl:
apt-get install nginx mariadb-server php-apcu php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-common php7.4-curl php7.4-intl php7.4 -gmp php7.4-xml php-dev php-pear entpacken -y
Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Shlink-Datenbank erstellen
Shlink verwendet MariaDB als Datenbank-Backend. Sie müssen also eine Datenbank und einen Benutzer für Shlink erstellen. Verbinden Sie sich zunächst mit dem folgenden Befehl mit der MariaDB:
mysql
Sobald die Verbindung hergestellt ist, erstellen Sie eine Datenbank und einen Benutzer mit dem folgenden Befehl:
MariaDB [(keine)]> CREATE DATABASE shlink;
MariaDB [(keine)]> GRANT ALL ON shlink.* TO 'shlink'@'localhost' IDENTIFIED BY 'password';
Leeren Sie als Nächstes die Berechtigungen und beenden Sie die MariaDB mit dem folgenden Befehl:
MariaDB [(keine)]> FLUSH PRIVILEGES;
MariaDB [(keine)]> EXIT;
Shlink herunterladen
Laden Sie zunächst die neueste Version von Shlink von der offiziellen Download-Seite herunter:
wget https://github.com/shlinkio/shlink/releases/download/v2.7.1/shlink2.7.1_php7.4_dist.zip
Sobald der Download abgeschlossen ist, entpacken Sie die heruntergeladene Datei mit dem folgenden Befehl:
shlink2.7.1_php7.4_dist.zip entpacken
Verschieben Sie als Nächstes das extrahierte Verzeichnis in das Nginx-Webstammverzeichnis:
mv shlink2.7.1_php7.4_dist /var/www/html/shlink
Legen Sie als Nächstes die richtige Berechtigung und den Besitz mit dem folgenden Befehl fest:
chown -R www-data:www-data /var/www/html/shlink/
chmod -R 755 /var/www/html/shlink/
Shlink installieren
Führen Sie als Nächstes den folgenden Befehl aus, um die Installation zu starten:
sudo -u www-data php7.4 /var/www/html/shlink/bin/install
Sie werden aufgefordert, die Datenbank wie unten gezeigt auszuwählen:
Willkommen bei Shlink!! Dieses Tool führt Sie durch den Installationsprozess.DATABASE========Datenbanktyp auswählen [MySQL]:[0] MySQL [1] MariaDB [2] PostgreSQL [3] MicrosoftSQL [4] SQLite> 1Wählen Sie eine beliebige Option und drücken Sie die Eingabetaste. Sie werden aufgefordert, den Datenbanknamen wie unten gezeigt anzugeben:
Datenbankname [shlink]:>Geben Sie Ihren Datenbanknamen ein oder drücken Sie die Eingabetaste, um den Standard auszuwählen. Sie werden aufgefordert, den Datenbankhost anzugeben:
Datenbankhost [localhost]:>Geben Sie Ihren Datenbankhost an oder drücken Sie die Eingabetaste, um den Standard auszuwählen. Sie werden aufgefordert, den Datenbankport anzugeben:
Datenbankport [3306]:>Geben Sie Ihren Datenbankport an oder drücken Sie die Eingabetaste, um den Standard auszuwählen. Sie werden aufgefordert, Ihren Datenbank-Benutzernamen anzugeben:
Datenbankbenutzername:> shlinkGeben Sie Ihren Datenbank-Benutzernamen ein und drücken Sie die Eingabetaste. Sie werden aufgefordert, Ihr Datenbank-Benutzerkennwort einzugeben:
Datenbankpasswort:> PasswortGeben Sie Ihr Datenbank-Benutzerkennwort ein und drücken Sie die Eingabetaste. Sie werden aufgefordert, einen Unix-Socket anzugeben.
Unix-Socket (leer lassen, um keinen Socket zu verwenden):>Lassen Sie es leer und drücken Sie die Eingabetaste. Sie werden aufgefordert, den Domänennamen anzugeben:
URL SHORTENER=============Standarddomäne für generierte Kurz-URLs:> shlink.linuxbuz.comGeben Sie Ihren Domainnamen ein und drücken Sie die Eingabetaste. Sie werden aufgefordert, das Schema auszuwählen:
Schema für generierte Kurz-URLs [http] auswählen:[0] http [1] https> 0Wählen Sie eine Option und drücken Sie die Eingabetaste. Sie werden aufgefordert, lange URLs zu validieren:
Möchten Sie lange URLs anhand des HTTP-Statuscodes 200 als Antwort validieren? (ja/nein) [ja]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie werden aufgefordert, die Länge der generierten Shortcodes anzugeben:
Was ist die Standardlänge, die generierte Funktionscodes haben sollen? (Sie können dies weiterhin für jede erstellte Kurz-URL überschreiben) [5]:>Wählen Sie den Standardwert und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Möchten Sie, dass Shlink den kurzen URL-Titel basierend auf dem Titel-Tag der langen URL auflöst (falls vorhanden)? Andernfalls wird es leer gehalten, sofern nicht ausdrücklich angegeben. (ja/nein) [nein]:>Wählen Sie die Standardantwort und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Geben Sie einen GeoLite2-Lizenzschlüssel an. (Leer lassen, um den Standardschlüssel zu verwenden, aber es wird dringend empfohlen, sich einen eigenen zu besorgen. Gehen Sie zu https://shlink.io/documentation/geolite-license-key, um zu erfahren, wie Sie ihn erhalten):>Lassen Sie es leer und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Welche Art von Weiterleitung sollen Ihre Kurz-URLs haben? [Alle Besuche werden immer getrackt. Nicht so gut für SEO.]:[302] Alle Besuche werden immer getrackt. Nicht so gut für SEO. [301] Beste Option für SEO. Die Weiterleitung wird für kurze Zeit zwischengespeichert, wodurch einige Besuche nicht nachverfolgt werden.> 301Wählen Sie eine beliebige Option und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Wie lange (in Sekunden) sollen Ihre Weiterleitungen von Besuchern zwischengespeichert werden? [30]:>Wählen Sie Standardwerte und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
TRACKING========Möchten Sie verwaiste Besuche verfolgen? (Besuche der Basis-URL, ungültige Kurz-URLs oder andere "nicht gefundene" URLs) (ja/nein) [ja]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Geben Sie einen Parameternamen an, den Sie verwenden können, um das Tracking bei bestimmten Anfragen an kurze URLs zu deaktivieren (leer lassen und diese Funktion wird nicht aktiviert):>Drücken Sie einfach die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Möchten Sie das Besuchs-Tracking vollständig deaktivieren? (ja/nein) [nein]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Möchten Sie das Tracking von Besucher-IP-Adressen deaktivieren? (ja/nein) [nein]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Möchten Sie, dass die Remote-IP-Adressen der Besucher anonymisiert werden, bevor sie in der Datenbank gespeichert werden? (ja/nein) [ja]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Möchten Sie das Tracking der "User Agents" der Besucher deaktivieren? (ja/nein) [nein]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Möchten Sie das Tracking der "Referrer" der Besucher deaktivieren? (ja/nein) [nein]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
REDIRECTS=========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"):> http:/ /shlink.linuxbuz.comGeben Sie Ihren Domainnamen ein und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Benutzerdefinierte URL zur Umleitung, wenn ein Benutzer auf eine ungültige Kurz-URL trifft (Wenn kein Wert angegeben wird, sieht der Benutzer eine Standardseite "404 nicht gefunden"):> http://shlink.linuxbuz.comGeben Sie Ihren Domainnamen ein und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Benutzerdefinierte URL zur Umleitung, wenn ein Benutzer auf eine nicht gefundene URL trifft, die keine ungültige Kurz-URL ist (Wenn kein Wert angegeben wird, sieht der Benutzer eine Standardseite „404 nicht gefunden“):> http://shlink. linuxbuz.comGeben Sie Ihren Domainnamen ein und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
APPLICATION===========Möchten Sie eine Sicherheitsprüfung aktivieren, die verhindert, dass kurze URLs nach einer bestimmten Anzahl von Besuchen gelöscht werden? (ja/nein) [ja]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Bei wie vielen Besuchen lässt das System das Löschen von Kurz-URLs nicht zu? [15]:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
Von welchem Pfad aus wird Shlink bedient? (Leer lassen, wenn Sie Shlink vom Stammverzeichnis der Domain bereitstellen möchten) []:>Wählen Sie die Standardoption und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
INTEGRATIONS============Geben Sie eine durch Kommas getrennte Liste von Redis-Server-URIs an, die für gemeinsame Caching-Zwecke unter Shlink-Multi-Instanz-Kontexten verwendet werden (leer lassen, wenn Sie dies nicht möchten Redis-Cache verwenden):> Benutzerdefinierte Konfiguration korrekt generiert! Datenbank wird initialisiert... Erfolg! Datenbank wird aktualisiert... Erfolg! Proxys werden generiert... Erfolg! GeoLite2-DB-Datei wird heruntergeladen... Erfolg! [OK] Installation abgeschlossen!Nginx für Shlink konfigurieren
Als Nächstes müssen Sie eine virtuelle Nginx-Hostdatei für Shlink erstellen. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/nginx/conf.d/shlink.confFügen Sie die folgenden Zeilen hinzu:
server {listen 80; Servername shlink.example.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 / { # Versuch, Datei direkt bereitzustellen, Fallback auf app.php try_files $uri /index.php$is_args$args; } # einige ganze Ordner umleiten rewrite ^/(vendor|translations|build)/.* /index.php break; Ort ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; schließen Sie fastcgi_params ein; }}Speichern und schließen Sie die Datei und überprüfen Sie dann Nginx mit dem folgenden Befehl auf Fehler:
nginx -tSie sollten die folgende Ausgabe erhalten:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreichStarten Sie als Nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neuSie können den Status von Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginxSie sollten die folgende Ausgabe erhalten:
? nginx.service – Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server :28:30 UTC; vor 4s Dokumente:man:nginx(8) Prozess:25639 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process an; (code=beendet, status=0/SUCCESS) Prozess:25653 ExecStart=/usr/sbin/nginx -g daemon on; master_process an; (code=exited, status=0/SUCCESS) Main PID:25655 (nginx) Tasks:2 (limit:2353) Memory:2.6M CGroup:/system.slice/nginx.service ??25655 nginx:master process /usr/ sbin/nginx -g Daemon an; master_process an; ??25656 nginx:worker processJun 02 05:28:29 ubuntu2004 systemd[1]:Starten eines Hochleistungs-Webservers und eines Reverse-Proxy-Servers...Jun 02 05:28:30 ubuntu2004 systemd[1]:Gestartet Eine hohe Leistung Webserver und einen Reverse-Proxy-Server.
Sie können jetzt den Shlink-Client installieren, um die URL zu verkürzen.
Sie können die Kurz-URL auch auf Ihrem Server über die Befehlszeile generieren:
sudo -u www-data php7.4 /var/www/html/shlink/bin/cli short-url:generate
Führen Sie den folgenden Befehl aus, um alle Kurz-URLs aufzulisten:
sudo -u www-data php7.4 /var/www/html/shlink/bin/cli short-url:list
Führen Sie den folgenden Befehl aus, um Hilfeinformationen anzuzeigen:
sudo -u www-data php7.4 /var/www/html/shlink/bin/cli
Schlussfolgerung
Herzliche Glückwünsche! Sie haben den URL-Shortener Shlink erfolgreich auf Ubuntu 20.04 installiert. Sie können jetzt URLs über die CLI-Oberfläche oder den webbasierten Client verkürzen.