YOURLS ist ein kostenloser, quelloffener und selbst gehosteter URL-Shortener, der in PHP geschrieben ist. Es ist TinyURL oder Bitly sehr ähnlich und ermöglicht es Ihnen, Ihren eigenen URL-Kürzungsdienst zu betreiben. Außerdem können Sie Ihren Kurz-URLs Branding hinzufügen. Es bietet eine Vielzahl von Funktionen, darunter private und öffentliche Links, benutzerdefinierte URL-Schlüsselwörter, historische Klickberichte, Ajaxed-Schnittstelle, Jsonp-Unterstützung und vieles mehr.
In diesem Tutorial zeigen wir Ihnen, wie Sie YOURLS auf CentOS 8 mit Let's Encrypt SSL installieren.
Voraussetzungen
- Ein Server mit CentOS 8.
- Ein gültiger Domainname, auf den Ihre Server-IP verweist.
- Ein Root-Passwort wird auf dem Server konfiguriert.
LEMP-Server installieren
Zuerst müssen Sie Nginx, MariaDB, PHP und die erforderlichen PHP-Erweiterungen auf Ihrem Server installieren. Sie können alle mit dem folgenden Befehl installieren:
dnf install nginx mariadb-server php php-fpm php-json php-common php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath git unzip wget -ySobald alle Pakete installiert sind, bearbeiten Sie die PHP-FPM-Konfigurationsdatei /etc/php-fpm.d/www.conf und ändern Sie den Benutzer von Apache auf nginx:
nano /etc/php-fpm.d/www.confÄndern Sie die folgenden Zeilen:
user =nginxgroup =nginxSpeichern und schließen Sie die Datei, starten Sie dann den Nginx-, MariaDB- und PHP-FPM-Dienst und ermöglichen Sie ihnen, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpmWenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Erstelle eine Datenbank für DEINEN
Als nächstes müssen Sie eine Datenbank und einen Benutzer für YOURLS erstellen. Melden Sie sich zunächst mit dem folgenden Befehl bei der MariaDB an:
mysqlErstellen Sie nach der Anmeldung eine Datenbank und einen Benutzer mit dem folgenden Befehl:
MariaDB [(keine)]> ERSTELLE DATENBANK yourlsdb;
MariaDB [(keine)]> GEWÄHRE ALLE PRIVILEGIEN AUF yourlsdb.* AN 'yourlsuser'@'localhost' IDENTIFIZIERT DURCH 'password';Leeren Sie als Nächstes die Berechtigungen und beenden Sie die MariaDB mit dem folgenden Befehl:
MariaDB [(keine)]> FLUSH-RECHTE;
MariaDB [(keine)]> \qAn diesem Punkt ist MariaDB installiert und konfiguriert.
Installieren Sie YOURLS
Wechseln Sie zunächst in das Nginx-Web-Root-Verzeichnis und laden Sie die neueste Version von YOURLS mit dem folgenden Befehl herunter:
cd /var/www/html
git-Klon https://github.com/YOURLS/YOURLS.gitBenennen Sie als Nächstes die Beispielkonfigurationsdatei mit dem folgenden Befehl um:
cd YOURLS/user/
cp config-sample.php config.phpBearbeiten Sie als Nächstes die Datei config.php und definieren Sie Ihre Datenbankeinstellungen:
nano-config.phpÄndern Sie die folgenden Zeilen:
/** Benutzername der MySQL-Datenbank */define( 'YOURLS_DB_USER', 'yourlsuser' ); /** Passwort der MySQL-Datenbank */define( 'YOURLS_DB_PASS', 'password' ); /** Der Name der Datenbank für YOURLS ** Verwenden Sie nur Kleinbuchstaben [a-z], Ziffern [0-9] und Unterstriche [_] */define( 'YOURLS_DB_NAME', 'yourlsdb' ); /** MySQL-Hostname. ** Wenn Sie einen nicht standardmäßigen Port verwenden, geben Sie ihn wie „Hostname:Port“ an, z. 'localhost:9999' oder '127.0.0.1:666' */define( 'YOURLS_DB_HOST', 'localhost' ); /** Präfix für MySQL-Tabellen ** YOURLS erstellt Tabellen mit diesem Präfix (z. B. `ihre_url`, `ihre_optionen`, ...) ** Verwenden Sie Kleinbuchstaben [a-z], Ziffern [0-9] und Unterstriche [_] nur */define( 'YOURLS_DB_PREFIX', 'yourls_' ); define( 'YOURLS_SITE', 'http://yourls.example.com' );$yourls_user_passwords =array( 'admin' => 'yourpassword',Speichern und schließen Sie die Datei, wenn Sie fertig sind. Erstellen Sie als Nächstes eine .htaccess-Datei mit dem folgenden Befehl:
nano /var/www/html/YOURLS/.htaccessFügen Sie die folgenden Zeilen hinzu:
RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^.*$ /yourls-loader.php [L] Speichern und schließen Sie die Datei und geben Sie dann mit dem folgenden Befehl die richtigen Berechtigungen und Eigentumsrechte:
chown -R nginx:nginx /var/www/html/YOURLS
chmod -R 775 /var/www/html/YOURLSWenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Nginx für YOURLS konfigurieren
Erstellen Sie als Nächstes eine neue virtuelle Nginx-Host-Konfigurationsdatei für YOURLS:
nano /etc/nginx/conf.d/yourls.confFügen Sie die folgenden Zeilen hinzu:
server {listen 80; server_name yourls.example.com; root /var/www/html/YOURLS; index index.php index.html index.htm; location / { try_files $uri $uri/ /yourls-loader.php$is_args$args; } Ort ~ \.php$ {include fastcgi.conf; fastcgi_index index.php; fastcgi_pass unix:/run/php-fpm/www.sock; }}Speichern und schließen Sie die Datei und starten Sie dann den Nginx- und PHP-FPM-Dienst mit dem folgenden Befehl neu:
systemctl nginx neu starten
systemctl php-fpm neu startenSie können den Status von Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginxSie sollten die folgende Ausgabe erhalten:
? nginx.service – Der HTTP- und Reverse-Proxy-Server von nginx Geladen:geladen (/usr/lib/systemd/system/nginx.service; deaktiviert; Herstellervoreinstellung:deaktiviert) Drop-In:/usr/lib/systemd/system/nginx. service.d ??php-fpm.conf Aktiv:aktiv (läuft) seit Di 2020-10-20 09:37:40 EDT; Vor 5min Prozess:12864 ExecStart=/usr/sbin/nginx (Code=beendet, Status=0/SUCCESS) Prozess:12862 ExecStartPre=/usr/sbin/nginx -t (Code=beendet, Status=0/SUCCESS) Prozess:12860 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID:12871 (nginx) Tasks:3 (limit:12523) Memory:5.5M CGroup:/ system.slice/nginx.service ??12871 nginx:master process /usr/sbin/nginx ??12872 nginx:worker process ??12873 nginx:worker processOct 20 09:37:40 centos systemd[1]:Stopped The nginx HTTP und Reverse-Proxy-Server. 20. Oktober 09:37:40 Centos Systemd [1]:Starten des nginx-HTTP- und Reverse-Proxy-Servers ... 20. Oktober 09:37:40 Centos nginx [12862]:nginx:die Konfigurationsdatei /etc/ nginx/nginx.conf-Syntax ist okOkt 20 09:37:40 Centos nginx[12862]:nginx:Konfigurationsdatei /etc/nginx/nginx.conf Test ist erfolgreichOkt 20 09:37:40 Centos Systemd[1]:Gestartet Die nginx HTTP- und Reverse-Proxy-Server.
Konfigurieren Sie SELinux und die Firewall
Standardmäßig ist SELinux in CentOS 8 aktiviert. Sie müssen es also für Ihre YOURLS-Website konfigurieren.
Sie können SELinux mit dem folgenden Befehl konfigurieren:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/YOURLS
Lassen Sie als Nächstes Port 80 und 443 mit dem folgenden Befehl durch die Firewall:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Zugriff auf YOURLS
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://yourls.example.com/admin auf YOURLS zu. Sie sollten die folgende Seite sehen:
Klicken Sie auf DEINEN installieren Taste. Sie sollten die folgende Seite sehen:
Klicken Sie auf die „YOURLS-Verwaltungsseite “. Sie sollten die Anmeldeseite von YOURLS sehen:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein, die Sie in der config.php definiert haben, und klicken Sie dann auf Anmelden Taste. Sie sollten das YOURLS-Dashboard auf der folgenden Seite sehen:
Sichern Sie IHR mit Let's Encrypt SSL
Als nächstes müssen Sie das Dienstprogramm Certbot auf Ihrem System installieren, um Let's Encrypt SSL für Ihre YOURLS-Website herunterzuladen und zu installieren.
Sie können den Certbot-Client mit dem folgenden Befehl installieren:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot- auto
chmod 0755 /usr/local/bin/certbot-auto
Als nächstes erhalten und installieren Sie ein SSL-Zertifikat für Ihre YOURLS-Website mit dem folgenden Befehl:
certbot-auto --nginx -d yourls.example.com
Der obige Befehl installiert zunächst alle erforderlichen Abhängigkeiten auf Ihrem Server. Nach der Installation werden Sie aufgefordert, eine E-Mail-Adresse anzugeben und die Nutzungsbedingungen wie unten gezeigt zu akzeptieren:
Speichern des Debug-Protokolls in /var/log/letsencrypt/letsencrypt.logAusgewählte Plugins:Authenticator nginx, Installer nginxE-Mail-Adresse eingeben (wird für dringende Verlängerungs- und Sicherheitshinweise verwendet) (Geben Sie „c“ zum Abbrechen ein):[email protected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitte lesen Sie die Nutzungsbedingungen unter https://letsencrypt.org /documents/LE-SA-v1.2-November-15-2017.pdf. Sie müssen zustimmen, um sich beim ACME-Server unter https://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - zu registrieren - - - - - - - - - - - - - - -(A)gree/(C)cancel:A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wären Sie bereit, Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des Let's Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot entwickelt, zu teilen? Wir möchten Ihnen E-Mails über unsere Arbeit zur Verschlüsselung des Internets, EFF-Nachrichten, Kampagnen und Möglichkeiten zur Unterstützung der digitalen Freiheit senden.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(Y)es/(N)o:YErhalten eines neuen ZertifikatsAusführen der folgenden Challenges:http-01 Challenge für yourls.example.comWarten auf Verifizierung...Reinigung upherausforderungenBereitstellen des Zertifikats auf VirtualHost /etc/nginx/conf.d/yourls.conf
Wählen Sie aus, ob Sie HTTP-Datenverkehr auf HTTPS umleiten möchten oder nicht, wie unten gezeigt:
Bitte wählen Sie aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht, und den HTTP-Zugriff entfernen.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1:Keine Umleitung – Nehmen Sie keine weiteren Änderungen an der Webserver-Konfiguration vor.2:Umleitung – Alle Anfragen werden auf sicheren HTTPS-Zugriff umgeleitet. Wählen Sie dies für neue Websites oder wenn Sie sicher sind, dass Ihre Website auf HTTPS funktioniert. Sie können diese Änderung rückgängig machen, indem Sie die Konfiguration Ihres Webservers bearbeiten. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wählen Sie die entsprechende Nummer [1-2] und dann [enter] (drücken Sie 'c' zum Abbrechen):2
Geben Sie 2 ein und drücken Sie die Eingabetaste, um fortzufahren. Nach erfolgreicher Installation sollten Sie folgende Ausgabe erhalten:
Umleitung des gesamten Datenverkehrs auf Port 80 zu SSL in /etc/nginx/conf.d/yourls.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Herzliche Glückwünsche! Sie haben https://yourls.example.com erfolgreich aktiviert. Testen Sie Ihre Konfiguration unter:https://www.ssllabs.com/ssltest/analyze.html?d=yourls.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -WICHTIGE HINWEISE:- Herzlichen Glückwunsch! Ihr Zertifikat und Ihre Kette wurden gespeichert unter:/etc/letsencrypt/live/yourls.example.com/fullchain.pem Ihre Schlüsseldatei wurde gespeichert unter:/etc/letsencrypt/live/yourls.example.com/privkey.pem Ihre Das Zertifikat läuft am 11.06.2020 ab. Um in Zukunft eine neue oder optimierte Version dieses Zertifikats zu erhalten, führen Sie einfach certbot-auto erneut mit der Option „certonly“ aus. Um *all* Ihre Zertifikate nicht interaktiv zu erneuern, führen Sie „certbot-auto renew“ aus – Wenn Sie Certbot mögen, erwägen Sie bitte, unsere Arbeit zu unterstützen, indem Sie:Spenden an ISRG / Let’s Encrypt:https://letsencrypt.org/donate Spenden an EFF:https://eff.org/donate-le
Sie können nun über die URL https://yourls.example.com.
sicher auf YOURLS Website zugreifenSchlussfolgerung
Herzliche Glückwünsche! Sie haben YOURLS erfolgreich mit Nginx und Let’s Encrypt SSL auf CentOS 8 installiert. Sie können jetzt Ihren eigenen URL-Shortener ganz einfach mit YOURLS hosten. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.