Willkommen bei Profoxi

Hier erfahrt ihr alle neuesten Neuigkeiten, Tipps und Tricks rund um das Thema IT. Auf verständliche Art werden hier in regelmäßigen Abständen berichtet.

LAMP auf Debian Stretch

LAMP auf Debian Stretch

Nun für was steht eigentlich LAMP? LAMP steht für Linux, Apache, MySQL und PHP. Jedoch zeige ich euch wie man statt MySQL, MariaDB installiert. Dies sollte jedoch keine Auswirkung auf eure Anwendung haben. LAMP wird häufig noch mit einem Mailserver betrieben. Diese werde ich jedoch in einem anderen Tutorial zeigen. LAMP ist die perfekte Basis für alle PHP basierten Webseiten, Blogs oder Shops.

 

Vorrausetzungen

  • Debian Stretch (Da die Installation eines Debian Stretch Systems sehr einfach ist, überspringen wir hier den Teil)
  • Root Benutzer

Apache installieren

Unser geliebter Apache wird nun installiert. Dies erledigen wir mit der Paketverwaltung APT. Mit folgenden Befehlen installieren wir den Apache:

apt-get install apache2

Nach der Installation sollten wir schon die Standard Webseite des Apache Webservers sehen. Dazu rufen wir unsere IP Adresse im Browser auf

http://<ip-adresse>

Unter dem Verzeichnis /var/www/ finden wir nun unser Verzeichnis, dass Standardmäßig Angezeigt bzw. Angelegt wird.

Unter /etc/apache2/ finden wir alle Konfigurationsdateien für unser Webserver. Unter anderen auch das Verzeichnis sites-enabled und sites-available.

 

Sites-Available

Unter dem Verzeichnis sites-available speichern wir alle Vhosts für Webseiten ab. Wollen wir eine Webseite aktivieren bzw. veröffentlichen genügt es, mit dem befehl a2ensite <confname> die Webseite zu aktivieren. Mit a2dissite <confname> deaktivieren wir wieder die Webseite.

a2ensite <confname> # Webseite/Konfiguration aktivieren
a2dissite <confname> # Webseite/Konfiguration wieder deaktivieren

 

Sites-Enabled

Hier sollten wir wenig bis gar nicht, Dateien anlegen. Denn mit dem a2ensites <confname>-Befehl legt Apache automatisch ein Symbolischen Link zur sites-avaible an. 

 

Module

Apache arbeitet mit Modulen zusammen. So ist das Unterstützen von PHP auch „nur“ eine Modul. Module können in der Paketverwaltung gesucht werden und können auch mit apt-get install installisert werden. 

apt-cache search libapache2*

Mit dem Befehl a2enmod <modname> aktiviert man dann das Modul.

a2enmod <modname>

Will man das Modul wieder entfernen, genügt es dies wieder zu deaktivieren:

a2dismod <modname>

Status

Mit dem Befehl systemctl überprüfen wir den Status des Apache Servers.

systemctl status apache2

Der Output sollte in etwa so aussehen:

apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-23-05 13:01:42 UTC; 12min ago
 Main PID: 12885 (apache2)
   CGroup: /system.slice/apache2.service
           ├─12885 /usr/sbin/apache2 -k start
           ├─12886 /usr/sbin/apache2 -k start
           └─12887 /usr/sbin/apache2 -k start

Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server...
Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.

Nützliche Befehle

Starten/Stoppen/Restart

systemctl stop apache2 #Stoppen
systemctl start apache2 #Starten
systemctl restart apache2 #Stoppen/Starten
systemctl reload apache2 #Konfigurationen werden neu geladen; Ohne Unterbrechung

vHost erstellen

Wir erstellen unter /var/www/ einen Ordner mit dem Namen der Domain an:

 

mkdir /var/www/<domainnamen>
chown -R www-data:www:data /var/www/<domainnamen>

Damit der Apache nun die Webseite anzeigen kann, müssen wir nun eine Kofigurationsdatei erstellen. Diese machen wir unter /etc/init.d/sites-avaibles. Dort erstellen wir eine Datei mit dem Namen der Domain. Beispiel: <domainnamen>.conf

Folgendes schreiben wir nun in die Konfigurationsdatei rein:

<VirtualHost *:80>
    ServerAdmin admin@<domain>
    ServerName <domainnamen>.de
    ServerAlias www.<domainnamen>.de
    DocumentRoot /var/www/<domainnamen>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
 
<Directory /var/www/<domainnamen>/>
    AllowOverride All
</Directory>

Zur Erklärung:

  • <VirtualHost *80> Beginn eines VHosts
  • ServerAdmin Bei einem Fehler des Servers, wird die E-mail Adresse dem Besucher angezeigt. Besucher haben dann die Möglichkeit, eine E-Mail zu der gezeigten E-mail Adresse zu schicken.
  • ServerName Die Domain, die dann der Apache-Dienst benutzt, um die Anfragen zu DocumentRoot zu leiten.
  • ServerAlias Ein Alias zum vHost. Wird meistens verwendet, um auch den Aufruf der Domain mit dem kürzel www. zu ermöglichen.
  • ErrorLog Pfad zum Error Log. Dort werden Webseitenfehler aufgezeichnet.
  • CustomLog Pfad zum Access Log. Dort werden alle Zugriffe/Aufrufe aufgezeichnet.
  • AllowOverride All Ermöglicht, das der vHost auch eine eigene .htaccess Datei benutzen darf. Wird von vielen CMS vorrausgesetzt.

Die Datei speichern wir ab und aktivieren die Wesbeite mit dem a2ensite <domainnanmen>.conf Befehl:

a2ensite <domainnamen>.conf

MariaDB installieren

Viele Wesbseiten benutzen Datenbanken, um Daten abzuspeichern. Um eine Datenbank zu installieren ist nicht viel notwendig. Ich zeige euch jetzt hier wie man leicht und unkompliziert MariaDB mithilfe des Paketverwalungsprogramms APT installiert.

 

apt-get install mariadb-server

Um wichtige Konfigurationen vorzunehmen rufen wir nun den Befehl mysql_secure_installation auf:

mysql_secure_installation

Wir übernehmen alle Standardkonfigurationen und beantworten alle Fragen mit einem yes.

Mit dem Befehl mysql können wir in die CLI wechseln. Nun erstellen wir ein User mit allen Rechten, erstellen eine dazugehörige Datenbank und verknüpfen User und Datenbank miteinander. Zum Schluss speichern wir alle Änderungen und beenden die CLI.

 

CREATE DATABASE beispieldb;
GRANT ALL ON beispieldb.* TO 'userdb'@'localhost' IDENTIFIED BY 'passwort' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

PHP installieren

Da ich schon im vorherigen Artikel geschrieben -> PHP auf Debian Stretch Installieren habe, wie man PHP auf einen Debian bassiertem System installiert, schreibe ich euch hier den kürzesteten Weg der Installation:

 

apt install ca-certificates apt-transport-https 
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/php.list
apt-update
apt-get install php7.3 php7.3-fpm php7.3-cli php7.3-zip php7.3-mbstring php7.3-json php7.3-mysql php7.3-gd php7.3-json php7.3-curl php7.3-xml php7.3-bcmath php7.3-pdo libapache2-mod-php7.3

Nun starten wir den Apache neu und testen den Apache Server mit einer PHP Datei. Sollten wir die PHP Seite sehen, wissen wir, dass PHP richtig installiert worden ist.

nano /var/www/<domainnamen>/php.php

Inhalt:

<?php

phpinfo();

Viel Erfolg

Triopsi
Triopsi

Hi, mein Name ist Daniel R. Baumann. Ich bin seit 2007 Webseitenentwickler und entwickle bzw. administriere verschiedene Webprojekte. Ich berichte hier alle wichtigen News, Tipps und Tricks rund um das Thema IT.