shlink Shortlink auf Ubuntu 18.04 installieren
Veröffentlicht am | Keine Kommentare |
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.

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

SSL Zertifikat installieren
Fertig!
Zufrieden? Dann schreib gerne einen Kommentar.
Schreibe einen Kommentar