Werden sowohl der LAMP Stack als Einzelprogramme (Apache, MySQL/MariaDB, PHP) als auch das LAMPP/XAMPP Package installiert, beeinflussen sich u.U. die beiden Apache Installationen. Daher muss ein Webserver deaktiviert werden.
Option 1: XAMPP Package
- Linux (XAMPP for Linux), Apache, MariaDB, PHP, Perl
- XAMPP ist nicht für den Produktiveinsatz, sondern nur als Testumgebung gedacht,
da es sehr offen vorkonfiguriert ist
Option 2: LAMP Stack als Einzelprogramme
- Da das alles noch nicht 100% verstanden ist wird im Augenblick NICHTS gelöscht.
Der LAMPP Stack arbeitet nur korrekt, wenn alle LAMPP Services bei Start von LAMPP aktiviert werden. Wurde Apache separat installiert, wird er i.d.R. beim Boot von Linux automatisch mitgestartet. Das führt zu einem Fehler (anderer Web Server läuft bereits o.ä.). In diesem Fall muss Apache manuell gestoppt werden. Empfohlen wird, Apache generell nicht beim Boot mitstarten zulassen (disable apache)
# Linux Apache Kommandos
$ sudo systemctl start apache2
$ sudo systemctl stop apache2
$ sudo systemctl restart apache2
$ sudo systemctl status apache2
# Verhindern, dass Apache bei jedem Boot automatisch startet
$ sudo systemctl disable apache2
#
# https://www.apachefriends.org/index.html
#
# gute Internetseiten:
# - https://de.wikihow.com/XAMPP-unter-Linux-installieren
# - https://wiki.ubuntuusers.de/XAMPP/
#
# Download von Seite
# https://www.apachefriends.org/index.html
# starten
$ cd Downloads
$ chmod +x xampp-linux-x64-8.2.4-0-installer.run
$ sudo ./xampp-linux-x64-8.2.4-0-installer.run
#
# Nach Installation: Häkchen bei „Launch XAMPP“ rausnehmen
#
$ sudo apt update
$ sudo apt install tasksel
$ sudo tasksel install lamp-server
# Der LAMPP Stack wird im Directory
#
# /opt/lampp
#
# installiert. Die dortige Datei xampp ist ein Shell Skript
$ cd /opt/lampp
$ sudo ./xampp start
$ sudo ./xampp stop
$ sudo ./xampp <weitere>
#
# oder mit graphischer Oberfläche
#
$ cd /opt/lampp
$ sudo ./manager-linux-x64.run
#
# Im Tab „Manage Servers“ „Start All“ drücken
#
# Neues Projekt im Projektverzeichnis (Beispiel Grassau):
$ cd /home/michael/Schreibtisch/Michael-Projekte
$ mkdir Grassau
# Wordpress muss wp-config.php und .htaccess anlegen können
#
# Todo: überprüfen. Beim Test (23.11.25) hat nicht WP die wp-config angelegt
# sondern wurde von mir als Kopie der wp-config-sample modifiziert.
# Gilt evtl. nur für die .htaccess ?
$ chmod 777 Grassau
# Im Verzeichnis
#
# /opt/lampp/htdocs
#
# einen symbolischen Link zu dem neuen Projekt erzeugen. Der Name des Links
# entspricht dann der URL /localhost/grassau
$ sudo ln -s /home/michael/Schreibtisch/Michael-Projekte/Grassau grassau
# alle Dateien unter /opt/lampp gehören root
#
# Daher
$ cd /opt/lampp/htdocs
$ find . -exec chown michael:michael {} +
$ chmod michael:michael htdocs
Bei Initialisierung von Wordpress wird u.a. der Name der Datenbank abgefragt. Existiert die DB nicht, legt Wordpress die Datenbank nicht automatisch an und bricht mit "Fehler beim Aufbau einer Datenbankverbindung" ab.
# Eingabe im Browser (nach Start von XAMPP)
#
# localhost/phpmyadmin
#
# danach Anlegen der Datenbank in MySQL mit DB neu (Beispiel grassau)
#
# oder über die graphische Oberfläche
#
# bei mir startet der DB Prozess nicht, da er offensichtlich bereits läuft:
# localost/grassau und localhost/phpmyadmin funktionieren aber.
#
# Wenn das mal funktionieren sollte, Beschreibung aktualisieren:
#
# Startbildschirm von XAMPP: im Browser localhost oder 127.0.0.1 eintippen
# Tab phpMyAdmin
# Menü links (neu)
# Neue Datenbank (z.B. wordpress)
# Reiter „Rechte“
# Nutzername „root“ -> kein Passwort
#
# - Existierende (blanke) Kopie verwenden oder als ZIP File von
# wordpress.org runterladen (deutsche Version ?)
# - Im Ordner
# /home/michael/Schreibtisch/Michael-Projekte/Grassau
# entpacken oder im Terminal ins Zieldirectory kopieren
#
$ cd $HOME/Downloads
$ sudo cp -r wordpress/* /opt/lampp/htdocs/wordpress
# Dateistruktur:
#
# wp-admin
# wp-content
# wp-includes
# index.php
# ...
# Falls es Probleme mit den Zugriffsrechten geben sollte, kann man
# die Werte auf Wordpress-Standard zurücksetzen.
#
# Ist in MichiPedia
#
# Development - Wordpress -Setup & Analyse
#
# beschrieben
# - Kopieren der Datei wp-config-sample.php nach wp-config.php
# - Setzen der Werte
# define( 'DB_NAME', 'grassau' );
# /** Database username */
# define( 'DB_USER', 'root' );
# /** Database password */
# define( 'DB_PASSWORD', '' );
# /** Database hostname */
# define( 'DB_HOST', '127.0.0.1' );
# Eingabe im Browser (Beispiel: Projekt Grassau)
#
# localhost/grassau
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-on-debian-10#step-4-creating-a-virtual-host-for-your-website
oder
https://www.digitalocean.com/community/tutorials/how-to-install-lamp-stack-on-ubuntu
oder
https://cloudspinx.com/how-to-install-lamp-stack-on-linux-mint/
in
/etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html abwandeln zu
DocumentRoot /var/www
apache aktualisieren mit
sudo systemctl restart apache2
dann wird bei Aufruf von localhost NICHT die Apache Site gezeigt sondern eine Index-Seite mit z.B.
html/
test/
/****************
Apache absichern, damit man nicht von aussen zugreifen kann
In Datei /etc/apache2/ports.conf ersetze "Listen 80" durch "Listen 127.0.0.1:80".
**********/
We want Apache to run as our own user account to avoid any permission problems or conflicts when running drush or editing config files. Edit /etc/apache2/envvars and change the user to your account name. Example:
export APACHE_RUN_USER=michael
export APACHE_RUN_GROUP=michael
PEnable the Rewrite mod and restart Apache.
sudo a2enmod rewrite ??? wieso ???
sudo service apache2 restart
SHell Skript von https://klau.si/sites/default/files/deploy-site.sh_.txt
#!/bin/bash
if [[ $# -lt 1 || $1 == "--help" || $1 == "-h" ]]
then
echo "Usage:"
echo " sudo `basename $0` SITENAME"
echo "Examples:"
echo " sudo `basename $0` drupal-8"
exit
fi
WORKDIR="/home/klausi/workspace"
APACHEDIR="/etc/apache2/sites-available"
HOSTSFILE="/etc/hosts"
echo "<VirtualHost *:80>
ServerAlias $1.localhost
DocumentRoot $WORKDIR/$1
<Directory \"$WORKDIR/$1\">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>" > $APACHEDIR/$1.conf
a2ensite $1
service apache2 restart
grep -q "127.0.0.1 $1.localhost" $HOSTSFILE
if [ $? -ne 0 ]; then
echo "127.0.0.1 $1.localhost" >> $HOSTSFILE
fi
Sollte zu etwas führen wie z.B.
<VirtualHost *:80>
ServerAlias drupal-8.localhost
DocumentRoot /home/klausi/workspace/drupal-8
<Directory "/home/klausi/workspace/drupal-8">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
sudo apt-get install mariadb-server (phpmyadmin)
??? Installation mariadb fragt Nutzer -> root Passwort keines ??? (oder root)
In Terminal einloggen mit
$ sudo mariadb -u root
Passwort kann geändert werden
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'ROOTPASSWORD';
> exit;
Ab sofort ist die passwortlose Anmeldung im Terminal nicht mehr möglich und erfolgt daher mit dem Befehl mariadb -u root -p -h localhost.
WICHTIG:
Anmeldung hat nicht funktioniert. Änderungen in /opt/lamp/phpmyadmin/config.inc.php"
1)
$cfg['Servers'][$i]['host'] = 'localhost'; wird zu
$cfg['Servers'][$i]['host'] = '127.0.0.1';
2)
$cfg['Servers'][$i]['controluser'] = 'pma'; wird zu
$cfg['Servers'][$i]['controluser'] = 'phpmyadmin';
3)
$cfg['Servers'][$i]['controlpass'] = ''; wird zu
$cfg['Servers'][$i]['controlpass'] = 'root';
mysql CLI-Befehle:
(https://stackoverflow.com/questions/36864206/sqlstatehy000-1698-access-denied-for-user-rootlocalhost)
> select user [, host, password] from mysql.user;
> show databases;
DROP USER root@pediatest.munichsustain.de;
CREATE USER root@pediatest.munichsustain.de IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
4)
$cfg['Servers'][$i]['user'] = 'root'; bleibt
5)
$cfg['Servers'][$i]['password'] = ''; bleibt
<?php
##
## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include
##
## by default this file is managed via ucf, so you shouldn't have to
## worry about manual changes being silently discarded. *however*,
## you'll probably also want to edit the configuration file mentioned
## above too.
##
$dbuser='phpmyadmin';
$dbpass='root';
$basepath='';
$dbname='phpmyadmin';
$dbserver='pediatest.munichsustain.de';
$dbport='3306';
$dbtype='mysql';
Wir zunehmend mit mariadb genutzt
sudo apt-get install phpmyadmin
fragt nach Passwort (-> root)
Wenn phpmyadmin nicht mit "localhost/phpmyadmin" gestartet werden kann muss phpmyadmin in apache bekannt gemacht werden:
1) so habe ich es gemacht
sudo ln -s /etc/phpmyadmin/apache.conf
/etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
sudo systemctl restart apache2
"localhost/phpmyadmin" sollte jetzt funktionieren. Wenn nur die <PHP Datei angezeigt wird muss noch PHP installiert werden
2) Alternativvorschlag (nicht getestet)
Include /etc/phpmyadmin/apache.conf
in Datei /etc/apache2/apache2.conf einfügen und apache neu starten
<?php
##
## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include
##
## by default this file is managed via ucf, so you shouldn't have to
## worry about manual changes being silently discarded. *however*,
## you'll probably also want to edit the configuration file mentioned
## above too.
##
$dbuser='phpmyadmin';
$dbpass='root';
$basepath='';
$dbname='phpmyadmin';
$dbserver='pediatest.munichsustain.de';
$dbport='3306';
$dbtype='mysql';