Categories
Tutorial

PHP 7.4 auf Debian installieren – So gehts

Dies ist ein Side-Tutorial einer größeren Tutorialreihe – Das Webdesigner Tutorial – Alles was du wissen musst. Folgen Sie den unten beschriebenen Schritten, um PHP 7.4 auf der Linux-Distribution Debian 10 & Debian 9 zu installieren. Die neuesten Versionen von PHP für Debian sind im SURY PHP PPA-Repository verfügbar. Wir fügen das Repository als Voraussetzung hinzu und installieren dann PHP 7.4 auf Debian 10 / Debian 9 von dort aus.

PHP Logo bei PHP 7.4 auf Debian installieren
CC BY-SA 4.0 Levi Morrison

Schritt 1: Als root das System aktualisieren

Wir führen alle Befehle als ROOT aus, oder gegebenen falls,mit dem vorangestllten befehl sudo

$ su root
apt update
apt upgrade -y && reboot

Schritt 2: Die SURY PHP PPA repository hinzufügen

Als erstes laden wir die GPG-Keyfile herunter:

apt -y install lsb-release apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Dann installieren wir den GPG-Schlüssel:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Schritt 3: PHP 7.4 auf Debian installieren

Noch einmal Updaten:

apt update

Jetzt ist PHP 7.4 bereit um auf dem Server/ Desktop installeirt zu werden.

apt -y install php7.4

Die ausgabe sieht etwa so aus:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.4 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1
  libcurl4 libgdbm-compat4 libgdbm6 libjansson4 libldap-2.4-2 libldap-common liblua5.2-0 libnghttp2-14 libpcre2-8-0 libperl5.28 librtmp1
  libsasl2-2 libsasl2-modules libsasl2-modules-db libsodium23 libssh2-1 perl perl-modules-5.28 php-common php7.4-cli php7.4-common php7.4-json
  php7.4-opcache php7.4-readline psmisc ssl-cert
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser php-pear libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
  libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make
  libb-debug-perl liblocale-codes-perl openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.4 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1
  libcurl4 libgdbm-compat4 libgdbm6 libjansson4 libldap-2.4-2 libldap-common liblua5.2-0 libnghttp2-14 libperl5.28 librtmp1 libsasl2-2
  libsasl2-modules libsasl2-modules-db libsodium23 libssh2-1 perl perl-modules-5.28 php-common php7.4 php7.4-cli php7.4-common php7.4-json
  php7.4-opcache php7.4-readline psmisc ssl-cert
The following packages will be upgraded:
  libpcre2-8-0
1 upgraded, 36 newly installed, 0 to remove and 7 not upgraded.
Need to get 15.0 MB of archives.
After this operation, 76.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Schritt 4: Wichtige Pakete/Module für PHP 7.4 auf Debian installieren

Zusatzlich können jetzt zusätzliche Pakete mit apt-get install php7.4-xxx installiert werden.

Die gängisten davon einfach mit folgendem Befehl installieren:

apt install php7.4 php7.4-cli php7.4-curl php7.4-gd php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml php7.4-xsl php7.4-zip php7.4-bz2 -y

Schritt 5: PHP 7.4 für Apache verfürgbar machen

apt install libapache2-mod-php7.4 -y
systemctl reload apache2

So, jetzt sollte PHP 7.4 auf deinem Debiansystem installiert sein und auch im Apache Verwendung finden.

Leider ist PHP 7.4 nur über die Sury Repo installierbar, und nicht über die standard Paketquellen. Achte immer darauf, dass du eine aktuelle Version deines PHP laufen hast. Leider sind einige Webanwendungen nur mit älteren PHP-Versionen betriebsfähig und werden bei neueren nicht unterstützt. Dies liegt daran, dass einige Funktionen dieser Sprache nicht mehr verfügbar sind. Von den alten Versionen sollte ebenfalls abstand genommen werden, da auch Sicherheitsbedenken eine Rolle spielen.


Viele Tutorials haben ein Erklärvideo. Sollte im Tutorial etwas Verwirrend oder Unklar sein, dann hinterlasse doch bitte eine Nachricht in den Kommentaren, ich versuche ständig den Inhalt zu verbessern. Auch wenn dir Fehler auffallen, lass es mich bitte wissen. Damit nicht andere entwickler die selben Fehler machen.

Und ganz wichtig: Aboniere einen (oder alle 😎 ) meiner sozialen Kanäle von My-Shops.eu, damit du bei Änderungen und Updates informiert wirst. So bleibst auch du immer UpToDate 😉

Categories
Tutorial

Das Webdesigner Tutorial – Alles was du wissen musst

Die ist ein komplettes Webdesigner Tutorial für absolute Anfänger, im zweiten Teil werden auch Tutorials für Fortgeschrittene angeboten.

Wir behandeln Design genau so, wie Programmierung. Ziel ist es, für eine Übersicht für Einsteiger zu geben. Die Hauptteile sind unabhängig von einander. Wenn du dich also nur für PHP oder Datenbanken interessierst, dann kannst du einfach die entsprechenden Tutorials absolvieren.

Einleitung ins Webdesigner Tutorial

Jetzt noch eine Einleitung und dann gehts auch schon direkt los.
Diese Tutorialreihe baut auf XAMP auf, also
X = Windows, Linux oder Mac (Das betriebssystem, welches ihr zum entwickeln benutzen wollt)
A = Apache (Ein HTTP Webserver)
M = MySQL / MariaDB (Ein Datenbankserver)
P = PHP (Die Programmiersprache, mit der wir unserer Webseite leben einhauchen)

Webseiten werden typischer weise in HTML geschrieben, das ist eine MarkUp Language.
Wir verwenden für unsere Tutorials:
HTML5 & CSS – nach Stand der Technik

HTML und CSS Logo für Webdesigner Tutorial
daPhyre / CC BY (https://creativecommons.org/licenses/by/3.0)

Viele Tutorials haben ein Erklärvideo. Sollte im Tutorial etwas Verwirrend oder Unklar sein, dann hinterlasse doch bitte eine Nachricht in den Kommentaren, ich versuche ständig den Inhalt zu verbessern. Auch wenn dir Fehler auffallen, lass es mich bitte wissen. Damit nicht andere entwickler die selben Fehler machen.

Inhaltsverzeichnis:

Ok, Let’s CODE!

Fangen wir gleich mit dem wichtigsten an:
Die Werkzeuge

Wir benötigen einen Editor, der uns das Arbeiten vereinfacht und eine Umgebung, in der wir unsere Programme / Webseiten entwickeln können.


Und ganz wichtig: Aboniere einen (oder alle 😎 ) meiner sozialen Kanäle von My-Shops.eu, damit du bei Änderungen und Updates informiert wirst. So bleibst auch du immer UpToDate 😉

Categories
Sicherheit

JWT in PHP erstellen

Hier zeigen wir, wie man einen Javascript Web Token (JWT) in PHP erstellt. Weiter unten wird erklärt, wie der Token aufgebaut ist und funktioniert.

Warum ein JWT Sinnvoll ist um die Leistung des Webservers zu steigern, erkläre ich in diesem Artikel.

JWT ist ein eine gute Möglichkeit, Daten permanent und sicher im Browser zu speichern. Gute Erfahrungen habe ich mit einer PHP-Lib namens REALLYSIMPLEJWT von https://github.com/RobDWaller/ReallySimpleJWT gemacht.

Installation mit COMPOSER:

composer require rbdwllr/reallysimplejwtin

oder in composer.json folgenden Eintrag in die requirements setzen

"require": {
    "rbdwllr/reallylsimplejwt": "^2.0"
}

JWT Token in PHP erstellen/generieren

in deinem Projekt kannst du einfach einen JWT erstellen mit:

<?php
use ReallySimpleJWT\Token;

require 'vendor/autoload.php';

$userId = 123;					// Bsp UID
$secret = 'MyShopseu123!';		// Geheimer Schlüssel
$expiration = time() + 3600;	// Ablaufdatum
$issuer = 'localhost';			// Benutzerprüfung

$token = Token::create($userId, $secret, $expiration, $issuer);

WICHTIG: $secret MUSS! mindestens12 Zeichen lang sein, mit großen und kleinenZeichen, so wie Zahlen und mindestens eines dieser Sonderzeichen beinhalten  *&!@%^#$

//Schlechtes Secret
myshops123

//Gutes Secret
MyShopseu123!

$token sieht dann in etwa so aus:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 .eyJ1c2VyX2lkIjoxMjMsImV4cCI6MTU3NDUzMDYxOSwiaXNzIjoibG9jYWxob3N0IiwiaWF0IjoxNTc0NTI3MDE5fQ .BWRUr55Uz8YImUdBxYBkoPOe8lb_RHQL6lKTANyDzCg

Entwickler können die Methode customPayload() verwenden um einen benutzerdefinierteren Token zu erstellen. Dies ermöglicht die Erstellung eines Token basierend auf einem Array von Schlüsselwertpaaren.

<?php
use ReallySimpleJWT\Token;

require 'vendor/autoload.php';

$payload = [
    'iat' => time(),
    'uid' => 123,
    'exp' => time() + 120,
    'iss' => 'localhost.local'
];

$secret = 'TestSecReT&ofMyShopsXYZ';

$token = Token::customPayload($payload, $secret);

JWT Token in PHP prüfen/validieren

use ReallySimpleJWT\Token;

require 'vendor/autoload.php';

$token = 'aaa.bbb.ccc';
$secret = 'MyShopseu123!';

$valid = Token::validate($token, $secret); //TRUE oder FALSE
$header = 	Token::getHeader($token, $secret);
$payloead = Token::getPayload($token, $secret);

Wie ein JWT Token aufgebaut ist

Ein JWT (JSON WebToken) ist in drei Teile untergliedert, und durch Punkte getrent und mit Base64 verschlüsselt:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 . 							<------ HEADER
eyJ1c2VyX2lkIjoxMjMsImV4cCI6MTU3NDUzMiaWF0IjoxNTc0NTI3MDE5fQ .  <--- 	PAYLOAD
BWRUr55Uz8YImUdBxYBkoPOe8lb_RHQL6lKTANyDzCg						<------ SIGNATUR