So installieren Sie den selbst gehosteten URL-Kürzer YOURLS auf CentOS 8

YOURLS ist ein kostenloser, quelloffener und selbst gehosteter URL-Kürzer, der in PHP geschrieben ist. Er ist TinyURL oder Bitly sehr ähnlich und erlaubt Ihnen, Ihren eigenen URL-Kürzungsdienst zu betreiben. Es ermöglicht Ihnen auch, Ihren Kurz-URLs ein Branding hinzuzufügen. Er bietet eine reichhaltige Palette 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 Domänenname, der auf Ihre Server-IP zeigt.
  • Ein Root-Passwort ist für den Server konfiguriert.

LEMP-Server installieren

Zuerst müssen Sie Nginx, MariaDB, PHP und die erforderlichen PHP-Erweiterungen auf Ihrem Server installieren. Sie können sie 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 -y

Sobald alle Pakete installiert sind, bearbeiten Sie die PHP-FPM-Konfigurationsdatei /etc/php-fpm.d/wwww.conf und ändern den Benutzer von apache zu nginx:

nano /etc/php-fpm.d/www.conf

Ändern Sie die folgenden Zeilen:

user = nginx
group = nginx

Speichern und schließen Sie die Datei, starten Sie dann Nginx, MariaDB, 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-fpm

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Erstellen Sie eine Datenbank für YOURLS

Als nächstes müssen Sie eine Datenbank und einen Benutzer für YOURLS erstellen. Loggen Sie sich zunächst mit folgendem Befehl in die MariaDB ein:

mysql

Sobald Sie sich angemeldet haben, erstellen Sie eine Datenbank und einen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> CREATE DATABASE yourlsdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON yourlsdb.* TO 'yourlsuser'@'localhost' IDENTIFIED BY 'password';

Als nächstes müssen Sie die Privilegien aufheben und die MariaDB mit dem folgenden Befehl verlassen:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Zu diesem Zeitpunkt ist MariaDB installiert und konfiguriert.

YOURLS installieren

Ändern Sie zunächst das Verzeichnis in Nginx web root und laden Sie die neueste Version von YOURLS mit dem folgenden Befehl herunter:

cd /var/www/html
git clone https://github.com/YOURLS/YOURLS.git

Anschließend benennen Sie die Beispielkonfigurationsdatei mit folgendem Befehl um:

cd YOURLS/user/
cp config-sample.php config.php

Als nächstes bearbeiten Sie die Datei config.php und definieren Ihre Datenbankeinstellungen:

nano config.php

Ändern Sie die folgenden Zeilen:

/** MySQL database username */
define( 'YOURLS_DB_USER', 'yourlsuser' );
 
/** MySQL database password */
define( 'YOURLS_DB_PASS', 'password' );
 
/** The name of the database for YOURLS
 ** Use lower case letters [a-z], digits [0-9] and underscores [_] only */
define( 'YOURLS_DB_NAME', 'yourlsdb' );
 
/** MySQL hostname.
 ** If using a non standard port, specify it like 'hostname:port', eg. 'localhost:9999' or '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );
 
/** MySQL tables prefix
 ** YOURLS will create tables using this prefix (eg `yourls_url`, `yourls_options`, ...)
 ** Use lower case letters [a-z], digits [0-9] and underscores [_] only */
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 folgendem Befehl: Erstellen Sie als Nächstes eine .htaccess-Datei mit folgendem Befehl

nano /var/www/html/YOURLS/.htaccess

Fügen Sie die folgenden Zeilen hinzu:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
</IfModule>

Speichern und schließen Sie die Datei und erteilen Sie dann die entsprechenden Berechtigungen und Besitzrechte mit dem folgenden Befehl:

chown -R nginx:nginx /var/www/html/YOURLS
chmod -R 775 /var/www/html/YOURLS

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Nginx für IHRE

Als Nächstes erstellen Sie eine neue Nginx-Konfigurationsdatei für den virtuellen Nginx-Host für YOURLS:

nano /etc/nginx/conf.d/yourls.conf

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

  location ~ \.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 restart nginx
systemctl restart php-fpm

Sie können den Status von Nginx auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe erhalten:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Tue 2020-10-20 09:37:40 EDT; 5min ago
  Process: 12864 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 12862 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 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 process

Oct 20 09:37:40 centos systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Oct 20 09:37:40 centos systemd[1]: Starting The nginx HTTP and reverse proxy server...
Oct 20 09:37:40 centos nginx[12862]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Oct 20 09:37:40 centos nginx[12862]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Oct 20 09:37:40 centos systemd[1]: Started The nginx HTTP and reverse proxy server.

Konfigurieren Sie SELinux und 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

Als nächstes lassen Sie Port 80 und 443 durch die Firewall mit folgendem Befehl zu:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Wenn 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 die YOURLS zu. Sie sollten die folgende Seite sehen:

IHR

Klicken Sie auf die Schaltfläche Install YOURLS. Sie sollten die folgende Seite sehen: Klicken Sie auf die Schaltfläche Install YOURLS:

YOURLS Installer

Klicken Sie auf die “ YOURLSAdministration Page„. Sie sollten die YOURLS-Anmeldeseite sehen: Klicken Sie auf YOURLS login page:

Anmeldung

Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein, das Sie in der config.php definiert haben, und klicken Sie dann auf die Schaltfläche Login. Sie sollten das YOURLS-Dashboard auf der folgenden Seite sehen:

YOURLS Verwaltungs-Dashboard

Sichern Sie YOURLS mit Let’s Encrypt SSL

Als Nächstes müssen Sie das Certbot-Dienstprogramm in 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 müssen Sie mit dem folgenden Befehl ein SSL-Zertifikat für Ihre YOURLS-Website beziehen und installieren:

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 den unten aufgeführten Nutzungsbedingungen zuzustimmen:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to

cancel): hitjethva@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourls.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourls.conf

Wählen Sie, ob Sie HTTP-Verkehr zu HTTPS umleiten möchten oder nicht, wie unten gezeigt:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for

new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Geben Sie 2 ein und drücken Sie Enter, um fortzufahren. Sobald die Installation erfolgreich abgeschlossen ist, sollten Sie die folgende Ausgabe erhalten:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourls.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourls.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourls.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/yourls.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/yourls.example.com/privkey.pem
   Your cert will expire on 2020-06-11. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Sie können nun über die URL https://yourls.example.com sicher auf die YOURLS-Website zugreifen.

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben YOURLS mit Nginx und Let’s Encrypt SSL auf CentOS 8 erfolgreich installiert. Sie können jetzt Ihren eigenen URL-Kürzer ganz einfach mit YOURLS hosten. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Das könnte dich auch interessieren …