[Raspberry Pi] Apache2, PHP5, MySQL, FTP einrichten

Der Raspberry Pi 2 aufgrund seiner potenteren Hardware ggü. dem Rapberry Pi sehr gut als kleiner Server.

Apache2

  • Benutzergruppe www-data anlegen, evtl. auftretender Fehler kann ignoriert werden
    sudo groupadd www-data
    
  • Konto anpassen
    sudo usermod -a -G www-data www-data
    
  • Repository update
    sudo apt-get update
    
  • Repository upgrade
    sudo apt-get dist-upgrade
    
  • Apache2 installieren
    sudo apt-get install apache2 apache2-utils
    
  • Web-Dateien können in folgendem Verzeichnis abgelegt werden
    /var/www
    

PHP5

  • PHP5 installieren
    sudo apt-get install php5
    
  • PHP-Erweiterungen installieren
    sudo apt-get install libapache2-mod-perl2 php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mysql php5-odbc
    
  • Alternative PHP Cache installieren
    sudo apt-get install php-pear php-apc php5-xcache
    
  • PHP testen
    cd /var/www
    sudo nano phpinfo.php
    
  • Code einfügen
    <?php
    phpinfo();
    ?>
    
  • mit STRG+X, j, Enter Datei schließen, speichern
  • Datei aufrufen
    http://<raspberry-ip-eintragen>/phpinfo.php
    
  • Neustart durchführen
    sudo reboot
    

MySQL

  • MySQL installieren
    sudo apt-get install mysql-server mysql-client
    
  • Neustart durchführen
    sudo reboot
    

PHPMyAdmin

  • PHPMyAdmin installieren
    sudo apt-get install libapache2-mod-auth-mysql phpmyadmin
    
  • Webserver „Apache2“
  • Erstellung von internen Verwaltungsdatenbanken: Yes
  • anschließend Passwort des vorher für MySQL angelegten Root-Users angeben
  • anschließend neues Passwort (plus Bestätigung) für den phpMaAdmin User eingeben
  • PHPMyAdmin mit Apache2 verknüpfen
    sudo nano /etc/php5/apache2/php.ini
    
  • in der Section „extensions“ folgendes eintragen
    extension=mysql.so
    
  • mit STRG+X, j, Enter Datei schließen, speichern
  • PHPMyAdmin im Browser aufrufen
    http://<raspberry-ip-eintragen>/phpmyadmin/
    
  • Benutzer: root, vorher eingegebenes Passwort für den phpMaAdmin User

Weiterführende Links: manfred-steger.de und kriwanek.de

[MySQL] SQL-Dump einer MySQL-Datenbank einspielen (Restore)

Voraussetzung für folgendes Beispiel ist, dass ein SQL-Dump vorliegt, in welchem zuerst folgende Anweisungen stehen:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `datenbankname`;
USE datenbankname;

Die Datenbank „datenbankname“ ist also auf dem Server evtl. noch nicht existent und wird ggf. angelegt und benutzt.

Zum Einspielen der Daten wird im MySQL-Ordner „bin“ das Tool „mysql“ genutzt. Es gibt zwei Möglichkeiten:

  1. per Konsole als Admin (root) die Datenbank „datenbankname“ anlegen:
    mysql -hlocalhost -uroot -e "CREATE DATABASE Datenbankname"
    

    danach das Script einspielen

    mysql -hHostrechner -uBenutzer -pPasswort Datenbankname < Datenbankfile.sql
    
  2. auf die bestenhende Datenbank „mysql“ einloggen und das Script sofort ausführen:
    mysql -hHostrechner -uBenutzer -pPasswort mysql < Datenbankfile.sql
    

[MySQL] SQL-Dump einer MySQL-Datenbank erstellen (Dump)

MySQL liefert im Ordner „bin“ ein Kommandozeilentool mit, mit dessen Hilfe mal leicht und schnell SQL-Dumps von bestehenden Datenbanken erzeugen kann. Um eine komplette Datenbank „Datenbankname“ mit allen Tabellen, Schlüsselbeziehungen, Datensätzen und zus. Anweisungen (CREATE DATABASE, USE, LOCK TABLES …) in eine Textdatei „Datenbankfile.sql“ zu speichern, muss man auf Kommandozeile folgendes eingeben:

mysqldump --databases --add-drop-table --add-locks --lock-tables --quote-names -hHostrechner -uBenutzer -pPasswort Datenbankname > Datenbankfile.sql

Hinweis: Zwischen -hHostrechner usw. darf kein Leerzeichen stehen, um sich z.B. auf Localhost einzuloggen, muss mann somit -hlocalhost eingeben

Datenbanksysteme

MySQL

  • komplexes, weit verbreitetes Datenbanksystem

MariaDB

  • freie Weiterentwicklung von MySQL (Fork)

Firebird

  • kompaktes Datenbanksystem

PostgreSQL

  • komplexes, weit verbreitetes Datenbanksystem

Oracle Database Express Edition

  • freie, abgespeckte Version der Oracle Datenbank

Apache CouchDB

  • Dokumentenorientierten Datenbank

PouchDB

  • In JavaScript geschriebene, mit CouchDB API-kompatible Datenbank

MongoDB

  • Dokumentenorientierte NoSQL-Datenbank

riak

  • linear skalierbare NoSQL-Datenbank

Redis

  • In-Memory-Datenbank mit einer einfachen Schlüssel-Werte-Datenstruktur

Neo4j

  • in Java implementierte Open-Source-Graphdatenbank