Raspberry Pi
EDOMI läuft auf einem Raspberry Pi ab der Version 3, da EDOMI mindestens die 64 Bit Unterstützung benötigt.
Die EDOMI Installation auf einem Rapsberry Pi verwendet entweder die Linux-Distribution Ubuntu oder (seitdem CentOS-7 auch vernünftig auf dem RasPi funktioniert) die Linux-Distribution CentOS-7.
CentOS-7 ist die native und vom Entwickler bevorzugte Distribution, aber auf dem RasPi noch nicht so gut getestet. Außerdem fehlt auf ARM64 noch die aktuelle PHP Version (7.2) und es steht nur die veraltete Version 5.6 zur Verfügung.
Diese Installationsanleitung besteht daher aus zwei unterschiedlichen Anleitungen:
Installation (Ubuntu)
Die Installation von EDOMI2 unter Ubuntu 18.04 läuft wie folgt:
1. Image herunterladen:
wget -c http://cdimage.ubuntu.com/releases/bionic/release/ubuntu-18.04.3-preinstalled-server-arm64+raspi3.img.xz (siehe auch: https://wiki.ubuntu.com/ARM/RaspberryPi)
2. Image entpacken:
unxz ubuntu-18.04.3-preinstalled-server-arm64+raspi3.img.xz
3. Image auf SD-Card installieren:
dd if=ubuntu-18.04.3-preinstalled-server-arm64+raspi3.img of=/dev/mmcblk0 bs=1M status=progress
4. SD Karte einsetzen und Ubuntu starten.
Einloggen mit ubuntu und ubuntu.
Nach dem Einloggen wird ein neues Passwort abgefragt!
(Eventuell braucht das System einen kleinen Augenblick, 1-2 Minuten, bis der Login funktioniert...)
Gegebenfalls mit ip addr aktuelle IP-Adresse abfragen.
5. Installationskript ubuntu-edomi-install.sh auf den Raspberry Pi kopieren:
scp ubuntu-edomi-install.sh ubuntu@<IP-ADDR>:~
6. Installation starten:
chmod +x ubuntu-edomi-install.sh ./ubuntu-edomi-install.sh
Sollte diese Meldung kommen, so muss man einfach etwas warten:
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 3176 (unattended-upgr) - open (11: Resource temporarily unavailable) N: Be aware that removing the lock file is not a solution and may break your system. E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Im Hintergrund läuft dann ein System-Update-Prozess, der die Installation blockiert. Dies kann bis zu 15 Minuten dauern...
7. Wenn die Installation erfolgreich war, den RasPi neu booten.
8. Mit Web-Browser auf http://<IP-ADDR>/admin verbinden.
Installationsskript
Das folgende Skript dient zu Installation von EDOMI auf einem Ubuntu 18.04 LTS System (getestet) und kann auch auf neueren Ubuntu-Systemen installiert werden (noch ungetestet). Das Skript passt das Grundsystem an, lädt EDOMI herunter und installiert dieses. Nach einem anschließendem Reboot kann EDOMI sofort genutzt werden.
Das Skript sollte als ubuntu-edomi-install.sh abgespeichert werden.
#!/bin/bash set -e # Lade OS version . /etc/os-release # Entscheide, welche PHP Version zu installieren ist PHPVER=7.2 [ ${VERSION_ID%.*} -gt 19 -o ${VERSION_ID#*.} -gt 4 ] && PHPVER=7.3 # Cloud Pakete deinstallieren sudo apt -y purge snapd cloud-init sudo rm -rf /etc/cloud/cloud.cfg.d/ # Paketlisten aktualisieren sudo apt-get update sudo apt -y autoremove # Nötige Pakete installieren sudo apt-get -y install ntp vsftpd \ mariadb-server apache2 \ libapache2-mod-php$PHPVER php$PHPVER-cli \ php$PHPVER-bz2 php$PHPVER-common php$PHPVER-dba php$PHPVER-gd php$PHPVER-json \ php$PHPVER-mbstring php$PHPVER-mysql php$PHPVER-soap php$PHPVER-xml php$PHPVER-curl \ joe rfkill sudo apt-get -y dist-upgrade # Automatische Updates deaktivieren sudo sed -i -e 's/Update-Package-Lists "1"/Update-Package-Lists "0"/' /etc/apt/apt.conf.d/10periodic sudo sed -i -e 's/Update-Package-Lists "1"/Update-Package-Lists "0"/' /etc/apt/apt.conf.d/20auto-upgrades sudo chmod -x /etc/cron.daily/apt-compat sudo systemctl stop unattended-upgrades.service sudo systemctl disable unattended-upgrades.service # Dienste aktivieren sudo systemctl enable ntp sudo systemctl enable vsftpd sudo ln -sf /lib/systemd/system/ntp.service /etc/systemd/system/ntpd.service # Set Timezone sudo timedatectl set-timezone Europe/Berlin # VSFTP konfigurieren sudo sed -i -e '/listen=/ s/=.*/=YES/' /etc/vsftpd.conf sudo sed -i -e '/listen_ipv6=/ s/=.*/=NO/' /etc/vsftpd.conf # MySQL/MariaDB konfigurieren # Verwendete MariaDB Version feststellen TMP1=`mariadb -V`; TMP2=${TMP1#*Distrib }; MVER=${TMP2%-MariaDB*} [ "${MVER%.*}" = "10.3" -a ${MVER##*.} -gt 4 ] && NEWDB=1 echo "MariaDB Version: $MVER" # Test DB entfernen if [ -d /var/lib/mysql/test ]; then sudo mysql -e "DROP DATABASE test;" sudo mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" sudo mysql -e "FLUSH PRIVILEGES;" sudo mysql -e "GRANT ALL ON *.* TO mysql@'%';" fi # MariaDB konfigurieren echo "[mysqld]" > /tmp/tmp.txt echo "key_buffer_size=256M" >> /tmp/tmp.txt echo "sort_buffer_size=8M" >> /tmp/tmp.txt echo "read_buffer_size=16M" >> /tmp/tmp.txt echo "read_rnd_buffer_size=4M" >> /tmp/tmp.txt echo "myisam_sort_buffer_size=4M" >> /tmp/tmp.txt echo "join_buffer_size=4M" >> /tmp/tmp.txt echo "query_cache_limit=8M" >> /tmp/tmp.txt echo "query_cache_size=8M" >> /tmp/tmp.txt echo "query_cache_type=1" >> /tmp/tmp.txt echo "wait_timeout=28800" >> /tmp/tmp.txt echo "interactive_timeout=28800" >> /tmp/tmp.txt echo "innodb_file_per_table=ON" >> /tmp/tmp.txt echo "character-set-server=latin1" >> /tmp/tmp.txt echo "collation-server=latin1_swedish_ci" >> /tmp/tmp.txt [ -n "$NEWDB" ] && echo 'sql-mode="ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"' >> /tmp/tmp.txt sudo cp /tmp/tmp.txt /etc/mysql/mariadb.conf.d/99-edomi.cnf # EDOMI Benutzer für DB setzen if [ -z "$NEWDB" ]; then # (altes DB "user" Tabellen Format) echo "Using old DB user table format" cat >/tmp/mysql-add-users.sql <<EOF LOCK TABLES \`user\` WRITE; REPLACE INTO \`user\` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0.000000); REPLACE INTO \`user\` VALUES ('localhost','ubuntu','*3CD53EE62F8F7439157DF288B55772A2CA36E60C','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0.000000); REPLACE INTO \`user\` VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0.000000); UNLOCK TABLES; FLUSH PRIVILEGES; EOF else # (neues DB "user" Tabellen Format, ab MariaDB Version 10.3.5) echo "Using new DB user table format" cat >/tmp/mysql-add-users.sql <<EOF LOCK TABLES \`user\` WRITE; REPLACE INTO \`user\` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0.000000); REPLACE INTO \`user\` VALUES ('localhost','ubuntu','*3CD53EE62F8F7439157DF288B55772A2CA36E60C','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0.000000); REPLACE INTO \`user\` VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0.000000); UNLOCK TABLES; FLUSH PRIVILEGES; EOF fi sudo mysql -u root mysql </tmp/mysql-add-users.sql # Apache konfigurieren cat >/tmp/001-edomi.conf <<EOF <VirtualHost *:80> ServerName edomi ServerAdmin webmaster@localhost DocumentRoot /usr/local/edomi/www <Directory /usr/local/edomi/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> EOF sudo cp /tmp/001-edomi.conf /etc/apache2/sites-available/001-edomi.conf sudo ln -sf /etc/apache2/sites-available/001-edomi.conf /etc/apache2/sites-enabled/001-edomi.conf sudo rm -f /etc/apache2/sites-enabled/000-default.conf # PHP konfigurieren cat >/tmp/edomi.ini << EOF short_open_tag = On post_max_size = 100M upload_max_filesize = 100M max_file_uploads = 1000 EOF sudo cp /tmp/edomi.ini /etc/php/$PHPVER/edomi.ini sudo ln -sf /etc/php/$PHPVER/edomi.ini /etc/php/$PHPVER/cli/conf.d/99-edomi.ini sudo ln -sf /etc/php/$PHPVER/edomi.ini /etc/php/$PHPVER/apache2/conf.d/99-edomi.ini # EDOMI Download cd /tmp; wget -c http://www.edomi.de/download/install/EDOMI_201.tar # EDOMI Installation mkdir -p edomi tar -C edomi -xf /tmp/EDOMI_201.tar # EDOMI Autostart konfigurieren cat >/tmp/edomi.service << EOF [Unit] Description=EDOMI Before=getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service After=httpd.service mysqld.service network.target Conflicts=getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service [Service] Type=simple ExecStart=/bin/bash /usr/local/edomi/main/start.sh TimeoutStartSec=0 StandardInput=tty-force StandardOutput=inherit StandardError=inherit [Install] WantedBy=default.target EOF sudo cp /tmp/edomi.service /etc/systemd/system/edomi.service sudo systemctl daemon-reload sudo systemctl enable edomi # EDOMI selbst installieren MAIN_PATH="/usr/local/edomi" # EDOMI installieren sudo systemctl stop mysqld sudo mkdir -p $MAIN_PATH sudo tar -xf edomi/edomi.edomiinstall -C $MAIN_PATH sudo chmod 777 -R $MAIN_PATH # edomi Start-Skript anpassen sed -i -e "s#/bin/sh#/bin/bash#" $MAIN_PATH/main/start.sh # edomi.ini anpassen sed -i -e "s#global_serverIP.*#global_serverIP='auto'#" $MAIN_PATH/edomi.ini sed -i -e "s#global_sqlHost.*#global_sqlHost=''#" $MAIN_PATH/edomi.ini
Installation (CentOS)
Die Installation von EDOMI2 unter CentOS-7 läuft wie folgt:
1. Image herunterladen:
wget -c http://mirror.ehv.weppel.nl/centos-altarch/7.8.2003/isos/aarch64/images/CentOS-Userland-7-aarch64-RaspberryPI-Minimal-4-2003-sda.raw.xz (siehe auch: https://wiki.centos.org/SpecialInterestGroup/AltArch und https://wiki.centos.org/SpecialInterestGroup/AltArch/Arm32/RaspberryPi3)
2. Image entpacken:
unxz CentOS-Userland-7-aarch64-RaspberryPI-Minimal-4-2003-sda.raw.xz
2. Image auf SD-Card installieren:
dd if=CentOS-Userland-7-aarch64-RaspberryPI-Minimal-4-2003-sda.raw of=/dev/mmcblk0 bs=1M status=progress
3. SD Karte einsetzen und Ubuntu starten.
Einloggen mit root und centos.
Gegebenfalls mit ip addr aktuelle IP-Adresse abfragen.
4. EDOMI herunterladen und auspacken
5. Änderungen am Installationsscript durchführen:
sed -i 's/.*grub/#&/' install.sh sed -i 's/.*remi/#&/' install.sh
6. Nach Anweisung installieren.
7. Gegebenenfalls noch fehlende Packete nachinstallieren:
yum -y install file yum -y install joe