Kurzanleitung Setup Programmierkurs

LAMP Software installieren in Debian Linux

 apt install apache2 mariadb-server php libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml

Setup Datenbank

 mysql_secure_installation

Anweisungen befolgen, Passwort setzen, alles andere bestätigen

Dann:

 su --login
 mysql -uroot
 
 In mysql:

 CREATE DATABASE atze;
 
CREATE USER 'atze'@'localhost' IDENTIFIED BY 'awaHg-1';

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, FILE, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, EVENT, TRIGGER, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON *.* TO 'atze'@'localhost' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; 
 

Datenbank einspielen

In datenbank.sql muss eventuell noch der Befehl "USE datenbankname;" eingefügt werden.


su --login 

mysql -uroot < datenbank.sql

Apache Setup

Die Konfiguration liegt unter /etc/apache2

In sites-available liegen sog VirtualHost Direktiven:

Entscheidend sind darin diese Zeilen:

	ServerName erste.atz 

	ServerAdmin webmaster@localhost
	DocumentRoot /home/atze/webseiten/erste

ServerName ist ein gültiger Domainname, DocumentRoot ein Verzeichnis im Dateisystem.

Der Nutzer, der mit dem Code arbeiten soll, muss Schreibrecht auf den Ordner haben.


chown -Rv nutzer:nutzer /var/www/html

Erlaubt nutzer die Arbeit im voreingestellten DocumentRoot

PHP Setup


vim /etc/php/7.4/apache/php.ini

Suchen Sie nach "display_errors" und setzen Sie den Wert dahinter auf On

Apache neu starten:

systemctl restart apache2

Simple Basisapplikation


session_start();
header('Content-Type: text/html; charset=utf-8');

//Erst einmal ein paar Voreinstellungen
$login=false;
$timestamp=time();
if(isset($_GET['out'])){
	$_SESSION=array();	
}
if (isset($_SESSION['login'])){
	if ($_SESSION['login'] === true){
		$login=true;
	}	
}
 require ("dbkram.php");
//login abwickeln
if (isset($_POST['login'])){
 $user=str_replace("'","",$_POST['nutz']);
 $pass=str_replace("'","",$_POST['pass']);
 $login = db_checkLogin($user,$pass);
 if (!$login){
  $loginMessage="<p>Login fehlgeschlagen</p>";
 }
 else{
 
  $_SESSION['login'] = true;
 
  $loginMessage="<p>Login erfolgreich</p>";
 }
}