Froxlor 0.9.x auf Debian 9.x installieren

image_print

Zunächst das Debian-ISO herausladen und mit Rufus einen bootfähigen USB-Stick machen und damit Debian 9 Stretch mit Webserver, SSH-Server und Standard-Systemwerkzeugen installieren. Danach die Grundinstallation anpassen.

Apt

In der Datei sources.lst die Installations-DVD auskommentieren,

vi /etc/apt/sources.lst
# deb cdrom:[Debian GNU/Linux 9.8.0 _Stretch_ - Official amd64 DVD Binary-1 20190216-11:59]/ stretch contrib main

da ansonsten apt andauernd auf die Installations-DVD zugreift.

ssh-Server

Root-Login, Login ohne Password und sudo ohne Password erlauben.

vi /etc/ssh/sshd_config
Port 22
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
service ssh restart

Im Home-Verzeichnis von root und dem bei der Installation angelegten User einen Ordner .ssh anlegen und die Datei authorized_keys reinkopieren.

sudo visudo
username ALL=(ALL) NOPASSWD: ALL

username mit dem richtigen User ersetzen.

Fehlende Pakete nachinstallieren

apt install vim net-tools mlocate dirmngr apt-transport-https lsb-release ca-certificates webalizer awstats php libapache2-mod-php7.0 php-xml php-mbstring php-curl php-zip php-bcmath php-mysql mariadb-server

MariaDB

Password für MySQL-root setzen, anonyme Benutzer löschen, Zugriff von außen verbieten, Testdatenbank löschen (alle Fragen mit Y beantworten):

mysql_secure_installation

In der Standardinstallation von MariaDB ist das unix_socket-Plugin installiert. Es muß für Froxlor deaktiviert werden:

mysql -u root
MariaDB [(none)]> update mysql.user set plugin='' where user='root';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
service mysql restart

Weil jetzt das unix_socket-Plugin deaktiviert ist, muß das MySQL-root-Passwort in der debian.cnf eingetragen werden:

vi /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password = GEHEIMES_PASSWORT
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = GEHEIMES_PASSWORT
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

PhpMyAdmin

apt install phpmyadmin

PhpMyAdmin install

PhpMyAdmin install

PhpMyAdmin ist nun unter http://ip-adresse/phpmyadmin erreichbar, aber es ist eine denkbar schlechte Idee sich unverschlüsselt einzuloggen. Deshalb installieren wir https mit einem selbst signierten Zertifikat.

https

Das Paket ssl-cert sollte bereits installiert sein. Falls nicht, nachholen mit

apt install ssl-cert

Dadurch befindet sich ein selbst signiertes Zertifikat in

/etc/ssl/certs/ssl-cert-snakeoil.pem

und der dazugehörige private Schlüssel in

/etc/ssl/private/ssl-cert-snakeoil.key

Regenerieren mit

make-ssl-cert generate-default-snakeoil --force-overwrite

SSL aktivieren

a2enmod ssl
a2ensite default-ssl
service apache2 restart

Apache läuft nun mit SSL verschlüsselt auf Port 443. Testen mit

netstat -putan | grep apache
tcp6   0   0    :::80    :::*     LISTEN      19211/apache2
tcp6   0   0    :::443   :::*     LISTEN      19211/apache2

bzw. https://ip-adresse

Jetzt steht der Installation von Froxlor nichts mehr im Weg.

Froxlor installieren

Key für die Pakete hinzufügen

apt-key adv --keyserver pool.sks-keyservers.net --recv-key FD88018B6F2D5390D051343FF6B4A8704F9E9BBC

Alternativ kann statt pool.sks-keyservers.net der Keyserver keyserver.ubuntu.com benutzt werden.

Repo hinzufügen

echo "deb http://debian.froxlor.org $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/froxlor.list

Paketliste updaten, Packages upgraden und Froxlor installieren

apt-get update && apt-get upgrade
apt install froxlor

Froxlor installation

Webroot zu /var/www ändern

vi /etc/apache2/sites-enabled/000-default.conf
vi /etc/apache2/sites-enabled/default-ssl.conf
DocumentRoot /var/www

Apache neu starten

service apache2 restart

Webinstaller aufrufen

https://ip-adresse/froxlor

Froxlor installieren

Froxlor Installation

Froxlor Installation abschließen

Froxlor ist nun installiert, aber noch nicht konfiguriert und die Dienste sind noch nicht eingerichtet. Bevor die Dienste eingerichtet werden können, muß Froxlor zuerst konfiguriert werden!

Froxlor konfigurieren

Zuerst den Menüpunkt System | Einstellungen vollständig durcharbeiten und erst danach den Menüpunkt Konfiguration.

Einstellungen | Systemeinstellungen | Verwende libnss-extrausers anstatt libnss-mysql einstweilen auslassen

libnss-extrausers

Einstellungen | FCGID und Einstellungen | PHP-FMP einstweilen auslassen

FCGID und PHP-FPM einstweilen auslassen!

Froxlor installation

Dienstekonfiguration

Alle Dienste vorher konfigurieren bevor Kunden, Domains, Datenbanken etc. zu Froxlor hinzugefügt werden, da sonst Froxlor nicht richtig funktionieren wird.

Froxlor installation

Dienstekonfiguration

Froxlor installation

FCGID

Sort dafür, daß Froxlor bzw. die vHosts unter einem eigenen lokalen User laufen.

Nachdem im Menü Konfiguration bereits die Dienste libnss-extrausers, FCGID und PHP-FPM installiert wurden, kann FCGID im Menü Einstellungen aktiviert werden. Danach Verwende FCGID im Froxlor-Vhost aus dem Menü Einstellungen | Froxlor VirtualHost Einstellungen aktivieren und www-data als Lokale Gruppe für FCGID (Froxlor Vhost) angeben.

Verwende FCGID im Froxlor-Vhost

Speichern und den Froxlor Master-Cronjob ausführen

php /var/www/froxlor/scripts/froxlor_master_cronjob.php --force --debug

Nochmal die FCGI-Installation ausführen

FCGID Installation in Froxlor

Eine Gruppe für froxlorlocal anlegen

groupadd froxlorlocal

Der Froxlor-Mastercronjob muß fehlerfrei laufen, die Fehlermeldung

chown: ungültige Gruppe: „froxlorlocal:froxlorlocal“

darf nicht auftreten.

PHP wieder zum Leben erwecken mit

a2enmod php7.0

Fertig!

Jetzt nur noch Kunden, Domains und Datenbanken hinzufügen.