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

So installieren Sie Shlink URL Shortener auf Ubuntu 20.04 Server

Shlink ist ein selbst gehosteter Open-Source-URL-Shortener, mit dem Sie URLs kürzen und unter Ihrer eigenen kurzen Domain bereitstellen können. Die Verwendung Ihres eigenen URL-Shortner-Dienstes anstelle eines Drittanbieterdienstes wie bit.ly kann die Markenbekanntheit steigern. Dieses Tutorial zeigt Ihnen, wie Sie Shlink auf Ubuntu 20.04 mit dem Apache- oder Nginx-Webserver installieren.

Shlink-Funktionen

  • Besuchsstatistiken :Verfolgen Sie alle Besuche Ihrer Kurz-URLs, einschließlich Statistiken wie Standort, Browser oder Referrer.
  • E-Mail-Verfolgung :Generieren Sie ein transparentes 1-Pixel-Bild, das zum Verfolgen von E-Mails verwendet werden kann.
  • Integrationen von Drittanbietern :Lassen Sie Tools von Drittanbietern einfach Shlink verwenden, um URLs zu verkürzen, indem Sie einen Single-Request-API-Endpunkt verwenden.
  • Benutzerdefinierte Slugs :Lassen Sie Ihre verkürzten URLs einen benutzerdefinierten Slug verwenden, um Kampagnen einfach zu identifizieren.
  • QR-Codes :Generieren Sie spontan QR-Codes, die auf Ihre Kurz-URLs verweisen
  • Vorschau :Erhalten Sie Vorschauen im Bildformat für beliebige Kurz-URLs
  • Tags :Taggen Sie Ihre Kurz-URLs und klassifizieren Sie sie für spätere Analysen
  • Eingeschränkter Zugriff :Beschränken Sie den Zugriff auf kurze URLs, nach Datumsbereich und/oder maximaler Anzahl von Besuchen.
  • Drittanbieter-Importe :Importieren Sie Ihre bestehenden Kurz-URLs von Drittanbietern wie bit.ly.
  • Befehlszeile und Webschnittstelle.

Voraussetzungen für die Installation von Shlink auf Ubuntu 20.04 Server

Shlink ist in PHP geschrieben und stützt sich auf einen MySQL/MariaDB- oder PostgreSQL-Datenbankserver, daher müssen Sie einen LAMP-Stack oder LEMP-Stack einrichten. Wenn Sie den Apache-Webserver bevorzugen, richten Sie den LAMP-Stack ein.

  • So installieren Sie LAMP Stack auf Ubuntu 20.04 Server/Desktop

Wenn Sie den Nginx-Webserver bevorzugen, richten Sie den LEMP-Stack ein.

  • So installieren Sie LEMP Stack (Nginx, MariaDB, PHP7.4) auf Ubuntu 20.04 LTS

Außerdem benötigen Sie einen Domänennamen. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und Whois-Datenschutz lebenslang kostenlos ist. In diesem Tutorial verwende ich meine lnux.be Domainname als Beispiel. Lassen Sie uns ohne weiteres Shlink auf dem Ubuntu 20.04-Server installieren.

Schritt 1:Laden Sie Shlink auf Ihren Ubuntu 20.04-Server herunter

Gehen Sie zur Shlink-Github-Seite, um die neueste stabile Version zu überprüfen. Sie können die neueste stabile Version (2.6.2) herunterladen, indem Sie den folgenden Befehl auf Ihrem Server ausführen.

wget https://github.com/shlinkio/shlink/releases/download/v2.6.2/shlink2.6.2_php8.0_dist.zip

Hinweis :Wenn eine neue Version herauskommt, ersetzen Sie einfach 2.6.2 durch die neue Versionsnummer.

Die Datei wird als shlink2.6.2_php8.0_dist.zip gespeichert . Verwenden Sie unzip Befehl zum Entpacken nach /var/www/ Verzeichnis.

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www/

Jetzt werden die Dateien unter /var/www/shlink2.6.2_php8.0_dist/ gespeichert , wir benennen es um, um es einfacher zu machen.

sudo mv /var/www/shlink2.6.2_php8.0_dist/ /var/www/shlink

Machen Sie dann den Webserver-Benutzer (www-data ) als Eigentümer dieses Verzeichnisses.

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

Schritt 2:Erstellen Sie eine MariaDB-Datenbank und einen Benutzer für Shlink

Jetzt müssen wir uns bei der MariaDB-Konsole anmelden und eine Datenbank und einen Benutzer für Shlink erstellen. Standardmäßig verwendet das MariaDB-Paket auf Ubuntu unix_socket um die Benutzeranmeldung zu authentifizieren, was im Grunde bedeutet, dass Sie den Benutzernamen und das Passwort des Betriebssystems verwenden können, um sich bei der MariaDB-Konsole anzumelden. Sie können also den folgenden Befehl ausführen, um sich anzumelden, ohne das MariaDB-Root-Passwort anzugeben.

sudo mysql -u root

Erstellen Sie als Nächstes mit dem folgenden Befehl eine neue Datenbank für Shlink. Dieses Tutorial nennt es shlink , können Sie einen beliebigen Namen für die Datenbank verwenden.

CREATE DATABASE shlink;

Der folgende Befehl erstellt einen Datenbankbenutzer und ein Passwort und gewährt dem neuen Benutzer gleichzeitig alle Berechtigungen für die neue Datenbank, damit Shlink später in die Datenbank schreiben kann. Ersetzen Sie rote Texte durch Ihren bevorzugten Datenbanknamen, Benutzernamen und Passwort.

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

Berechtigungstabelle leeren und MariaDB-Konsole verlassen.

FLUSH PRIVILEGES;

EXIT;

Schritt 3:Installieren Sie PHP8.0 und einige Erweiterungen

Da wir die PHP 8-Version von Shlink heruntergeladen haben, müssen wir PHP8 installieren. Das Ubuntu 20.04-Repository enthält PHP7.2. Um PHP8.0 auf Ubuntu 20.04 zu installieren, müssen wir ein PPA hinzufügen.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

Installieren Sie dann PHP8.0 und die von Shlink benötigten Erweiterungen.

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

Wenn Sie Apache verwenden Webserver müssen Sie die folgenden Befehle ausführen, damit er PHP8.0-FPM verwendet.

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event proxy_fcgi setenvif
sudo a2enconf php8.0-fpm

Starten Sie dann Apache neu.

sudo systemctl restart apache2

Schritt 4:Führen Sie das Shlink-Installationsskript aus

Führen Sie das PHP-Installationsskript als www-data aus Benutzer.

sudo -u www-data php8.0 /var/www/shlink/bin/install

Der Einrichtungsassistent fordert Sie auf, Datenbankdetails einzugeben. Also wähle ich MariaDB als Datenbanktyp, geben Sie dann den Datenbanknamen, den Benutzer und das Passwort ein. Der Host ist localhost und der Port ist 3306 . Shlink kann sich auch über einen Unix-Socket mit dem Datenbankserver verbinden. Wenn Sie MariaDB verwenden, ist der Socket-Speicherort /var/run/mysqld/mysqld.sock auf dem Ubuntu-Server.

Geben Sie als Nächstes die Standarddomain für Ihren URL-Shortener ein und wählen Sie den Schematyp (https ). Beantworten Sie dann einige einfache Fragen.

Wenn Sie die Geolokalisierung von Besuchern analysieren möchten, müssen Sie Ihren eigenen GeoLite2-Lizenzschlüssel verwenden, der kostenlos ist. Um einen Lizenzschlüssel zu erhalten, erstellen Sie ein Konto bei MaxMind. Maxmind sendet Ihnen eine E-Mail. Klicken Sie auf den Link in der E-Mail, um ein Passwort festzulegen, und melden Sie sich dann bei Ihrem MaxMind-Konto an. Wählen Sie als Nächstes My License Key auf der linken Leiste.

Klicken Sie auf Neuen Lizenzschlüssel generieren Schaltfläche.

Geben Sie Ihrem Lizenzschlüssel einen Namen. Wählen Sie dann No , weil wir das geoipupdate nicht verwenden müssen Programm. Klicken Sie dann auf Confirm Schaltfläche.

Sobald der Lizenzschlüssel erstellt ist, kopieren Sie den Lizenzschlüssel und fügen Sie ihn in den Shlink-Setup-Assistenten ein. Dann können Sie die IP-Adressen der Besucher anonymisieren und den Weiterleitungstyp (302 oder 301) festlegen.

Konfigurieren Sie dann Umleitungen für Anomaliefälle. Wenn Besucher auf die Basis-URL meines Shlinks (https://lnux.be) klicken, werden sie auf meine Website weitergeleitet. Sie können auch eine benutzerdefinierte URL für die Seite „404 nicht gefunden“ erstellen.

Konfigurieren Sie abschließend die Anwendung. Ich drücke einfach Enter um die Standardeinstellungen zu verwenden.

Schritt 5:Apache Virtual Host oder Nginx-Konfigurationsdatei für Shlink erstellen

Apache

Wenn Sie den Apache-Webserver verwenden, erstellen Sie einen virtuellen Host für Shlink.

sudo nano /etc/apache2/sites-available/shlink.conf

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie lnux.be mit Ihrem echten Domainnamen und vergessen Sie nicht, dafür einen DNS-A-Eintrag festzulegen.

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

Include /etc/apache2/conf-available/php8.0-fpm.conf

</VirtualHost>

Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host mit:

sudo a2ensite shlink.conf

Laden Sie Apache neu, damit die Änderungen wirksam werden.

sudo systemctl reload apache2

Nginx

Wenn Sie den Nginx-Webserver verwenden, erstellen Sie einen virtuellen Host für Shlink.

sudo nano /etc/nginx/conf.d/shlink.conf

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie lnux.be mit Ihrem echten Domainnamen und vergessen Sie nicht, dafür einen DNS-A-Eintrag festzulegen.

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

}

Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Schritt 6:HTTPS aktivieren

Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu 20.04-Server zu installieren.

sudo apt install certbot

Wenn Sie Apache verwenden , installieren Sie das Certbot-Apache-Plugin.

sudo apt install python3-certbot-apache

Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

Wenn Sie Nginx verwenden , dann müssen Sie auch das Certbot Nginx-Plugin installieren.

sudo apt install python3-certbot-nginx

Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

Wo

  • --nginx :Verwenden Sie das nginx-Plugin.
  • --apache :Verwenden Sie das Apache-Plugin.
  • --agree-tos :Nutzungsbedingungen akzeptieren.
  • --redirect :HTTPS durch 301-Umleitung erzwingen.
  • --hsts :Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.
  • --staple-ocsp :Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.

Das Zertifikat sollte nun abgerufen und automatisch installiert werden.

Schritt 7:Kurzlinks erstellen

Zuerst müssen Sie mit dem folgenden Befehl einen API-Schlüssel erstellen.

sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate

Gehen Sie dann zu https://app.shlink.io/, um Ihren Server hinzuzufügen.

Sobald Sie Ihren Server hinzugefügt haben, können Sie kurze Links erstellen.

Beachten Sie, dass dies nur ein Webclient ist. Kurz-URLs werden auf Ihrem eigenen Server gespeichert.

Sie können auch kurze URLs über die Befehlszeile auf Ihrem Server generieren.

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

Kurze URLs auflisten.

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

Führen Sie den folgenden Befehl aus, um die Hilfenachricht anzuzeigen.

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

Ubuntu
  1. So installieren Sie MySQL unter Ubuntu 18.04

  2. So installieren Sie Minecraft Server auf Ubuntu 18.04

  3. So installieren Sie Nginx unter Ubuntu 20.04

  4. So installieren Sie Zimbra 8.6 auf einem Ubuntu 14.04-Server

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

So installieren Sie Ubuntu Server 18.04 LTS

So installieren Sie Ubuntu 20.04 LTS-Server

So installieren Sie Cockpit unter Ubuntu 20.04

So installieren Sie den VNC-Server unter Ubuntu 20.04

So installieren Sie Shlink URL Shortener auf Ubuntu 18.04 Server

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