Dieses Handbuch enthält eine schrittweise Installationsprozedur für den bekannten LAMP-Stack (Linux, Apache, MySQL und PHP / PhpMyAdmin) unter Verwendung einer Gentoo-Installationsumgebung.
Auszug Wikipedia:
LAMP ist ein Akronym für den kombinierten Einsatz von Programmen auf Basis von Linux, um dynamische Webseiten zur Verfügung zu stellen. Dabei stehen die einzelnen Buchstaben des Akronyms für die verwendeten Komponenten:
Betriebssystem | Linux |
---|---|
Webserver | Apache |
Datenbank | MySQL |
Programmiersprache | PHP |
Diese Programmkombination definiert im Sinne einer Software-Distribution eine Infrastruktur, in deren Rahmen dynamische Webseiten und -anwendungen entwickelt und bereitgestellt werden können.
Schritt 1: Konfigurieren Sie die statische IP-Adresse
1. Bevor wir mit der Installation des LAMP-Stacks fortfahren, muss das System mit einer statischen IP-Adresse konfiguriert werden, was im Falle eines Servers ein „Muss“ ist. Bevor Sie jedoch mit der Konfiguration der statischen Netzwerkeinstellungen beginnen, verwenden Sie den Befehl ifconfig, um die Namen der Netzwerkschnittstellenkarten anzuzeigen.
#ifconfig -a
Wie Sie sehen, kann sich der Name der Netzwerkkarte von anderen unter Linux gebräuchlichen Namen wie ethX, ensXX oder anderen unterscheiden. Notieren Sie sich diesen Namen für weitere Einstellungen.
2. Wenn Sie zuvor einen DHCP-Server für Ihr Netzwerk verwendet haben, stellen Sie sicher, dass Sie den DHCP-Client auf Ihrem System mit den folgenden Befehlen herunterfahren und deaktivieren (ersetzen Sie IPs und Geräte durch Ihre Einstellungen).
# rc-update del dhcpcd default
# /etc/init.d/dhcpcd stop
# ifconfig enp3s0 down
# ifconfig enp3s0 del 192.168.178.40 netmask 255.255.255.0
3. Erstellen Sie dann eine symbolische Verbindung vom Netzwerk-Loopback-Gerät mit dem Namen der verbundenen Schnittstelle Ihrer Netzwerkkarte und erstellen Sie eine statische Konfigurationsdatei für dieses Gerät im Pfad /etc/conf.d/.
# ln -s /etc/init.d/net.lo /etc/init.d/net.enp3s0
# nano -w /etc/conf.d/net.enp3s0
/etc/init.d/net.enp3s0:
config_enp3s0="192.168.1.25 netmask 255.255.255.0 brd 192.168.1.255"
routes_enp3s0="default via 192.168.1.1"
dns_servers_enp3s0="192.168.1.1 8.8.8.8"
4. Nachdem Sie die statischen Konfigurationen der Netzwerkkarte bearbeitet haben, starten Sie die Netzwerkschnittstelle und überprüfen Sie die Netzwerkeinstellungen und die Verbindung mit den Befehlen ifconfig und ping. Wenn alles erfolgreich konfiguriert wurde, fügen Sie sie zum Starten hinzu.
# /etc/init.d/net.enp3s0 start
# ifconfig
# ping -c2 domain.tld
# rc-update add net.enp3s0 default
Wenn Sie möchten, dass DNS-Nameserver systemweit konfiguriert sind, bearbeiten Sie die Datei /etc/resolv.conf und fügen Sie für jede DNS-IP-Adresse eine Nameserver-Zeichenfolge hinzu.
Schritt 2: Installieren Sie LAMP
Jetzt ist es Zeit, mit der Installation von LAMP fortzufahren. Bearbeiten Sie die Datei make.conf und fügen Sie das USE-Flag apache2 hinzu, bevor Sie versuchen, zu installieren. Beispieldatei /etc/portage/make.conf :
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
L10N="de"
LC_CTYPE="en_US.UTF-8"
USE="X, alsa, jpg, jpeg, jpeg2k, png, gif, tk, apache2 php mysql"
# emerge -av www-servers/apache
2
Führen Sie vor dem Starten des Apache-Dienstes den folgenden Befehl aus, um einen Servernamenfehler zu vermeiden, und starten Sie dann den httpd-Dämon.
# echo “ServerName localhost” >> /etc/apache2/httpd.conf
Bitte beachten: bei Verwendung von MySQL muss der Domainname geändert werden
sysvorOrt /home/michi # nano -w /etc/hosts
# IPv4 and IPv6 localhost aliases
127.0.0.1 sysvorOrt sysvorOrt
::1 sysvorOrt
Nun den Apache starten:
# /etc/init.d/apache2 start
bzw.
# systemctl apache2 start
Über die folgenden Befehle wird unter systemd der Apache gestartet und geprüft:
sysvorOrt /home/michi # systemctl start apache2
sysvorOrt /home/michi # systemctl status apache2
Bearbeiten Sie anschließend die Datei /etc/portage/make.conf und verwenden Sie die folgenden USE-Flags für PHP (USE-Flags müssen sich in einer einzelnen Zeile befinden). Beispieldatei:
USE="apache2 php pam berkdb bzip2 cli crypt ctype exif fileinfo filter gdbm hash iconv ipv6 json -ldap nls opcache phar posix readline session simplexml spell ssl tokenizer truetype unicode xml zlib -bcmath calendar -cdb cgi -cjk curl -debug -embed -enchant -firebird -flatfile -fpm (-frontbase) ftp gd -gmp imap -inifile -intl -iodbc -kerberos -ldap-sasl -libedit libmysqlclient -mhash -mssql mysql mysqli -oci8-instant-client -odbc -pcntl pdo -postgres -qdbm -recode (-selinux) -sharedmem -snmp -soap -sockets -sqlite (-sybase-ct) -systemd -sysvipc -threads -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xslt zip jpeg png pcre session unicode"
PHP_TARGETS="php7.4"
PHP installieren
Installieren Sie im nächsten Schritt die dynamische PHP-Skriptsprache.
# emerge -av php
Der aufkommende PHP-Prozess kann abhängig von Ihren Systemressourcen eine Weile dauern. Weisen Sie Apache nach Abschluss des Vorgangs an, PHP-Module zu verwenden, indem Sie die Datei /etc/conf.d/apache2 bearbeiten und PHP5 in der Anweisung APACHE2_OPTS hinzufügen.
# nano -w /etc/conf.d/apache2
Die selbst erstellten Dateien, die vom Apache verarbeitet werden sollen müssen im Verzeichnis /var/www/localhost/htdocs/
gespeichert werden.
MySQL installieren
Überprüfen Sie vor der Installation der MySQL-Datenbank die USE-Flags des Pakets und bearbeiten Sie bei Bedarf die Portage make.conf.
Verwenden Sie die folgenden Befehle, um die MySQL-Server-Datenbank zu überprüfen und zu installieren.
emerge --config =dev-db/mysql-version
Wenn der obige Befehl abbricht, weil der Hostname auf localhost lautet, kann man diesen auf einen anderen Wert z.B. gentoo ändern. Dazu ist /etc/conf.d/hostname zu ändern und /etc/init.d/hostname neu zu starten.
Hier wird die Authentifizierungsmethode festgelegt, danach das Passwort für die Datenbank.
Bevor Sie den MySQL-Server starten, stellen Sie mit dem folgenden Befehl sicher, dass die MySQL-Datenbank auf Ihrem System installiert ist.
# /usr/bin/mysql_install_db
Wenn kein Fehler kommt sondern der nächste Prompt ist alles ok.
Starte nun die MySQL-Datenbank und sichere sie mit mysql_secure_installation, indem du das Root-Passwort änderst, die Root-Anmeldung außerhalb von localhost deaktivierst, anonyme Benutzer entfernst und die Datenbank testest
Wenn Sie OpenRC verwenden, geben Sie diesen Befehl ein: root #/etc/init.d/mysql start
* Re-caching dependency info (mtimes differ)…
* Starting mysqld (/etc/mysql/my.cnf) … [ ok ]
Bei der Benutzung von systemd kommt das folgende Kommando zur Anwendung:
root #systemctl restart mysqld.service
Danach ist das root Passwort zu setzen:
root #
/usr/bin/mysqladmin -u root -h localhost password 'new-password'
Die Infos zur Datenbank können nach erfolgreichem Login über Status abgerufen
Um eine Datenbank zu erstellen wird
mysql> create database test;
eingeben. Jeder SQL Befehl wird mit einem Semikolon beendet. Tipp: Auch in der SQL-History kann mit den Tasten Pfeil-Auf und Pfeil-Ab gearbeitet werden
Datenbank wird mit use ausgewählt
mysql> use test;
Database changed
Tabelle anlegen:
Syntax:
CREATE TABLE tabellenname (feldname datentyp [NOTNULL] PRIMARY KEY], [feldname2 datentyp2 [NOT NULL] ...]
tabellenname = Name der Tabelle; tabellenname kann auch als zu einer bestimmten DB gehörig spezifiziert werden: CREATE TABLE 'datenbankname'.'tabellenname'
feldname = “Spalte” einer Tabelle, soll aussagekräftig sein
datentyp = siehe
NOT NULL = Wert des Feldes darf nicht 0 sein
AUTO_INCREMENT = Zahl wird bei jedem neuen Datensatz automatisch um eins erhöht
PRIMARY KEY = Feld wird zum Primärschlüssel und referenziert damit jeden Datensatz eindeutig
UNIQUE KEY = Feldinhalt darf nicht doppelt vorkommen (z.B. “Artikelnummer”).
CREATE TABLE kunden (
kunde_id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, kunde_name VARCHAR(50)
);
Mit der Funktion DROP kann eine MySQL Tabelle gelöscht werden. Dabei werden auch alle darin befindenden Datensätze gelöscht.
mysql> DROP table kunden;
Query OK, 0 rows affected (0,02 sec)
Informationen zur Tabelle ruft describe ab:
Mit exit verlässt man SQL
PHPmyAdmin
phpMyAdmin st eine freie Webanwendung zur Administration von MySQL-Datenbanken und deren ForkMariaDB. Die Software ist in PHP implementiert; daher kommt der Name phpMyAdmin. Die meisten Funktionen können ausgeführt werden, ohne selbst SQL-Anweisungen zu schreiben, wie z. B. Datensätze auflisten, Tabellen anlegen/löschen, Spalten hinzufügen, Datenbanken anlegen/löschen und Benutzer verwalten.
Die Installation unter Gentoo erfolgt über #emerge -av phpmyAdmin
Die meisten Provider mit Datenbank SQL haben auch PHPmyAdmin aktiv.
Über SQL Vorschau kann man schauen wie die SQL Befehle lauten:
CREATE TABLE `dbs4932437`.`Maschenzaehler` ( `name` TEXT NOT NULL , `projekt` TEXT NOT NULL , `reihe-runde` INT(100) NOT NULL ) ENGINE = InnoDB;