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:
Klicken Sie auf die Schaltfläche Install YOURLS. Sie sollten die folgende Seite sehen: Klicken Sie auf die Schaltfläche Install YOURLS:
Klicken Sie auf die “ YOURLSAdministration Page„. Sie sollten die YOURLS-Anmeldeseite sehen: Klicken Sie auf YOURLS login page:
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:
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.