====== Installation ======
===== Systemvoraussetzungen =====
* PHP 7.3 oder neuer
* MySQL 8.0
==== bekannte Installationen ====
^ Hardware ^ Betriebssystem ^ PHP ^ Datenbank ^
| Raspberry PI | Raspbian GNU/Linux 10 (buster) | 7.3.31 | MariaDB 10.3.34 |
===== Variablen / Pfadangaben =====
Diese Anleitung verwendet Variablen zur Bestimmung der Verzeichnisse. Die Verzeichnisse sind abhängig vom individuellen System und Wünschen
^ Variable ^ Wert ^
| $X2_HOME | /var/www/html/x2 |
| $APACHE_DIR | /var/www/html |
===== Benötigte Pakete =====
* graphviz
* php-ssh2
* php-phpseclib
* libphp-phpmailer
apt install graphviz php-ssh2 php-phpseclib ibphp-phpmailer
===== GraphViz =====
GraphViz wird zur Erstellung der Graph-Elemente von X2 verwendet. Dazu muss das Paket für PHP installiert werden
- pear installieren, falls nicht vorhanden
wget http://pear.php.net/go-pear.phar
php go-pear.phar
- Das PHP-Modul für GraphViz installieren
sudo pear install Image_GraphViz
- in der Datei ''/etc/php/7.3/apache2/php.ini'' muss ggf. der include-Pfad angpasst werden
include_path = ".:/usr/share/pear:/usr/share/php"
- Apache neu starten
===== Datenbank =====
- Erstellen einer Datenbankcreate database x2;
- Erstellen eines Benutzerscreate user x2 identified by 'x2';
- Vergeben der Rechte an den neuen Benutzergrant all privileges on x2.* to x2;
- Einstellungen in der DB ladenflush privileges;
===== X2 =====
- Laden der Quellen der X2 Software
cd $X2_HOME
git clone git@github.com:michdip/x2.git
- Erstellen von Arbeitsverzeichnissen
mkdir -p $X2_HOME/log
mkdir -p $X2_HOME/tmp
mkdir -p $X2_HOME/templates/templates_c
mkdir -p $X2_HOME/templates/cache
- Sollte das Verzeichnis ''$X2_HOME'' nicht dem User gehören, mit dem der Apache ausgeführt wird, so müssen die Verzeichnisse für diesen zum Schreiben frei gegeben werden
chmod 777 $X2_HOME/log
chmod 777 $X2_HOME/tmp
chmod 777 $X2_HOME/templates/templates_c
chmod 777 $X2_HOME/templates/cache
- Konfiguration von
- ''$X2_HOME/conf.d/base.conf''
- ''$X2_HOME/conf.d/databases.conf''
- ''$X2_HOME/conf.d/x2_host.conf'' :!: local muss definiert sein
- ''$X2_HOME/conf.d/mail.conf''
- ''$X2_HOME/database/execute.sh''
===== Smarty =====
Smarty wird zur Erstellung der HTML-Ausgabe verwendet.
- Laden der Quellen aus dem Git von Smarty
cd $APACHE_DIR
git clone https://github.com/smarty-php/smarty.git
- Smarty mit dem X2 verlinken
cd $X2_HOME/lib
ln -s $APACHE_DIR/smarty/libs smarty
===== X2 Setup =====
- Einen SSH-Key für das X2 erstellen
$ cd $X2_HOME/conf.d
$ ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa): $X2_HOME/conf.d/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in $X2_HOME/conf.d/id_rsa.
Your public key has been saved in $X2_HOME/conf.d/id_rsa.pub.
The key fingerprint is:
SHA256:QxrATJPO0xR/rtu0cLKLeL8PwZDuEYmDzHOAvBMRn6Q pi@raspberrypi
The key's randomart image is:
+---[RSA 1024]----+
|.++=+... |
|.=+o=+.+ |
| EB=+o* o . |
| o o+o.B o |
| . .+ S . |
| . . + |
| . = o |
| ... X . |
| ....*++ |
+----[SHA256]-----+
- Die Verbindung zu local herstellen
ssh -i ./id_rsa @
- Erstellen der Datenbanktabellen
cd $X2_HOME/database
./createDatabase.sh
- Import der Datei ''$X2_HOME/database/x2_system.json''
- Die Gruppe ''X2 System'' hat als Variable ''$X2_HOME'' definiert. Diese muss angepasst werden
- Alle Templates in der Gruppe ''X2 System'' müssen aktiviert werden
- Festlegen des ''getLog''-Template
- In der Gruppe ''X2 System'' befindet sich ein Template mit dem Namen ''getLogs''. Die ID dieses Template muss in folgendes Statement eingegeben werden und an die DB gesendet werden
insert into SEQUENCE (SEQ_NAME, SEQ_VALUE)
values ( 'X2_MASHINE_ROOM_getLogs', );
- Erstellen der crontab
0-59 * * * * cd $X2_HOME && ./x2Deamon.watchdoc.sh
1 0 * * * kill -USR1 `cat $X2_HOME/x2Deamon.pid`