shlink Shortlink auf Ubuntu 18.04 installieren

Du möchtest einen Shortlink Server haben, mit dem du ganz einfach über ein Webinterface Links auf deine Domain kürzen kannst? Dann bist du hier genau richtig! Wir empfehlen dir dafür „shlink.io“ . Du kannst dir shlink ganz einfach auf deinem Ubuntu Server installieren. Über einen API-Key, oder auch über die Shell kannst du dann Shortlinks erstellen. Natürlich kannst du shlink auch hinter einem Reverse Proxy verwenden.

shlink

| LXC Container |

CPU: 1x CPU-Core

RAM: 1024 MB

DISK: 8 GB

 

| klassische VM |

CPU: 1x CPU-Core

RAM: 1024 MB

DISK: 15 GB

Du musst die gesamte Anleitung als root ausführen. Schicke dazu den Command „sudo -s“ ab.

Ubuntu Updaten

Damit du gleich die neuesten Pakete installierst, solltest du Ubuntu aktualisieren.

sudo apt-get update && apt-get upgrade -y && apt autoremove -y 

LAMP-Stack installieren

PHP Repository hinzufügen

Um PHP installieren zu können, musst du ein paar wichtige Softwarepakete installieren und die PHP-Repository hinzufügen.

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

Pakete des LAMP-Stack installieren & Apache konfigurieren

Mit dem folgenden Command installierst du Apache, MariaDB und PHP. Außerdem wird noch eine Konfiguration an Apache vorgenommen

sudo apt install apache2 -y && apt install mariadb-server mariadb-client -y && apt install php7.4 libapache2-mod-php7.4 php7.4-common php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-imagick php7.4-bcmath -y && a2enmod rewrite && systemctl restart apache2 

mariaDB Erst-Konfiguration

Mit diesem Befehl starten wir den Konfigurationsprozess um den Admin Benutzer zu konfigurieren und um ein paar Einstellungen zu ändern. 

mysql_secure_installation 

Es öffnet sich folgender Dialog, den wir wie folgt durchgehen:

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: De1ns1cheresPassw0rt
Re-enter new password: De1ns1cheresPassw0rt
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y  

Nachdem wir die Konfiguration von MariaDB abgeschlossen haben, starten wir den gesamten Datenbank-Dienst neu.

sudo systemctl restart mariadb 

mariaDB Datenbank-Konfiguration

Als letzten Schritt, bevor wir shlink herunterladen, konfigurieren wir die shlink Datenbank und den Datenbank-Benutzer. Wir öffnen mit folgendem Befehl den MariaDB Dialog.

mysql  

Wir erstellen als ersten Schritt die Datenbank. Den Namen der Datenbank, Datenbank Benutzer und das Passwort muss später bei der shlink Installation angegeben werden.

CREATE DATABASE shlink; 

Mit diesem Befehl erstellen wir den shlink-Datenbank-Benutzer. Gebe hier anstatt „passwort_hier_eingeben“ ein sicheres Passwort.

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

Zum Schluss laden wir die Benutzerdaten neu und verlassen den MariaDB Dialog.

FLUSH PRIVILEGES; 
EXIT; 

shlink herunterladen

Nun lädst du die shlink-Installfiles herunter.

Da wir unsere Anleitungen nicht immer aktuell halten können, solltest du auf der GitHub Seite von shlink 🔗 den Link für die neueste Version kopieren.

cd /tmp && wget https://github.com/shlinkio/shlink/releases/download/v2.6.2/shlink2.6.2_php7.4_dist.zip 

Ersetze den Link nach „wget“ mit dem Link, den du kopiert hast.

Nun benötigst du noch „unzip“, um die zip-Datei zu entpacken.

sudo apt install unzip -y 

Mit dem folgenden Command entpackst du das shlink-Zip in den Apache-Webfolder. Außerdem werden die Berechtigungen des Ordners geändert.

sudo unzip shlink* -d /var/www && mv /var/www/shlink* /var/www/shlink && sudo chown -R www-data:www-data /var/www/shlink/ 

shlink mit install-script einrichten

Nun musst du shlink noch konfigurieren. Hierfür wird ein Script bereitgestellt, das wie folgt aufgerufen wird.

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

Nun startet das Script.

Welcome to Shlink!!
 This tool will guide you through the installation process.
DATABASE
========
 Select database type [MySQL]:
  [0] MySQL
  [1] MariaDB
  [2] PostgreSQL
  [3] MicrosoftSQL
  [4] SQLite
 > 1
 Database name [shlink]:
 > shlink
 Database host [localhost]:
 > localhost 
 Database port [3306]:
 > 3306
 Database username:
 > shlink
 Database password:
 > Y0urSafePassw0rd
 Unix socket (leave empty to not use a socket):
 > 

Hier kannst du alle Parameter, bis auf das Passwort, aus der oberen Ansicht übernehmen.

Beim Datenbank-Passwort musst du das Passwort angeben, dass du dem shlink-Datenbankbenutzer vergeben hast.

Das Passwort hast du hier vergeben.

URL SHORTENER
=============
 Default domain for generated short URLs:
 > mydomain.com
 Select schema for generated short URLs [http]:
  [0] http
  [1] https
 > 1
 Do you want to validate long urls by 200 HTTP status code on response? (yes/no) [yes]:
 > yes
 What is the default length you want generated short codes to have? (You will still be able to override this on every created short URL) [5]:
 > 5
 Do you want Shlink to resolve the short URL title based on the long URLs title tag (if any)? Otherwise, it will be kept empty unless explicitly provided. (yes/no) [no]:
 > no
 Do you want track orphan visits? (visits to the base URL, invalid short URLs or other "not found" URLs) (yes/no) [yes]:
 > yes
 Provide a GeoLite2 license key. (Leave empty to use default one, but it is strongly recommended to get your own. Go to https://shlink.io/documentation/geolite-license-key to know how to get it):
 > abcdefg1234567
 Do you want visitors' remote IP addresses to be anonymized before persisting them to the database? (yes/no) [yes]:
 > yes
 What kind of redirect do you want your short URLs to have? [All visits will always be tracked. Not that good for SEO.]:
  [302] All visits will always be tracked. Not that good for SEO.
  [301] Best option for SEO. Redirect will be cached for a short period of time, making some visits not to be tracked.
 > 302 

Hier solltest du folgende Parameter ändern:

  • „mydomain.com“ austauschen durch deine Domain, welche für die Shortlinks verwendet werden soll.
  • „[1] https“ hier kannst du festlegen, ob du HTTP oder HTTPS verwendest.
  • „abcdefg1234567“ Hier musst du einen GeoLite2 License Key angeben. Wie du diesen erhältst, erfährst du etwas weiter unten.

Die restlichen Werte, kannst du aus der oberen Ansicht übernehmen.

REDIRECTS
=========
 Custom URL to redirect to when a user hits Shlink's base URL (If no value is provided, the user will see a default "404 not found" page):
 > https://mypage.com
 Custom URL to redirect to when a user hits an invalid short URL (If no value is provided, the user will see a default "404 not found" page):
 > https://mypage.com/error
 Custom URL to redirect to when a user hits a not found URL other than an invalid short URL (If no value is provided, the user will see a default "404 not found" page):
 > https://mypage.com/error 

Hier solltest du folgende Parameter ändern:

  • „https://mypage.com“ austauschen durch eine beliebige Domain, an die ein User weitergeleitet wird, wenn er die Stammdomain deines Shortlink-Servers aufruft.
  • „https://mypage.com/error“ austauschen durch eine beliebige Domain, an die ein User weitergeleitet wird, wenn er eine falsche Shortlink-URL aufruft.
  • „https://mypage.com/error“ austauschen durch eine beliebige Domain, an die ein User weitergeleitet wird, wenn er eine Shortlink-URL aufruft, die einen 404 zurückmeldet.
APPLICATION
===========
 Provide a parameter name that you will be able to use to disable tracking on specific request to short URLs (leave empty and this feature won't be enabled):
 > 
 Do you want to enable a safety check which will not allow short URLs to be deleted after receiving a specific amount of visits? (yes/no) [yes]:
 > 
 What is the amount of visits from which the system will not allow short URLs to be deleted? [15]:
 > 
 What is the path from which shlink is going to be served? (Leave empty if you plan to serve shlink from the root of the domain) []:
 > 

Hier musst du nichts angeben und kannst alle Parameter mit Enter bestätigen.

INTEGRATIONS
============
 Provide a comma-separated list of redis server URIs which will be used for shared caching purposes under shlink multi-instance contexts (Leave empty if you don't want to use redis cache):
 > 
 Custom configuration properly generated!
Initializing database... Success!
Updating database... Success!
Generating proxies... Success!
                                                                                                                        
 [OK] Installation complete! 

Hier musst du ebenfalls nichts angeben und kannst den Parameter mit Enter bestätigen.

Die Installation von shlink ist mit diesem Schritt abgeschlossen.

Apache konfigurieren

Nun musst du noch Apache konfigurieren.

sudo nano /etc/apache2/sites-available/shlink.conf 
<VirtualHost *:80>
  ServerName mypage.com
  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> 

Ersetze „mypage.com“ durch deine Domain.

Mit dem folgenden Command aktivierst du die Website, deaktivierst die Apache-Default Page und startest Apache neu.

sudo a2ensite shlink.conf && sudo a2dissite 000-default.conf && sudo systemctl reload apache2 

shlink API-Key generieren

Nun musst du dir noch einen API-Key generieren.

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

Kopiere dir den generierten Key und gehe auf https://app.shlink.io.

Hier kannst du unter „Add-Server“ einen neuen Shortlink-Server hinzufügen. Die Daten musst du dann wie folgt eintragen.

  • „Name“ kannst du frei wählen
  • „URL“ hier muss die URL des Shortlink-Servers mit HTTP oder HTTPS angegeben werden.
  • „API key“ hier muss der kopierte API-Key eingefügt werden.

Anschließend kannst du auf „Create server“ klicken. Nun landest du in deinem Dashboard und kannst Shortlinks erstellen.

shlink shortlink add server app

SSL Zertifikat installieren

Fertig!

Zufrieden? Dann schreib gerne einen Kommentar.

Diesen Beitrag teilen:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben