Basic
Dieses Produkt erfordert ein gewisses Level an Expertise. Bei Fragen sind wir über Ticket oder E-Mail erreichbar.
Wilkommen zu dieser Installationsanleitung.
Dieser Guide soll dir helfen, alles für die Installation unsere Produkte vorzubereiten.
Du brauchst die folgenden Sachen:
Als Testserver benutzen wir hier Debian "bullseye" 11 64 bit. Diese Anleitung sollte auch auf anderen Betriebssystemen funktionieren, muss dann aber ggf. entsprechend angepasst werden.
Wir haben die Option die Produkte über nginx oder Apache laufen zu lassen. In beiden Fällen brauchen wir aber trotzdem PHP.
Stell sicher, dass das System up-to-date ist indem du folgenden Befehl
ausführst sudo apt-get update -y && sudo
apt-get upgrade -y
.
Da die PHP8 Pakete nicht in den Bullseye-Repositories enthalten sind, müssen wir das Repository von "survy" hinzufügen.
root@server:~# sudo apt install ca-certificates apt-transport-https software-properties-common gnupg2 git unzip -y root@server:~# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list root@server:~# wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add - root@server:~# sudo apt update -y
Danach können wir alle Pakete installieren welche wir benötigen.
root@server:~# sudo apt install -y php8.1-zip php8.1-common php8.1-mysql php8.1-ssh2 php8.1-xml php8.1-curl php8.1-gd php8.1-imagick php8.1-mbstring
s.h. oben stehende PHP Installation.
root@server:~# sudo apt install -y apache2 libapache2-mod-php8.1 root@server:~# sudo a2enmod rewrite
Also nächstes muss apache2 konfiguriert werden, sodass wir unsere eigene .htaccess Datei nutzen könenn. Dies wird wie gefolgt gemacht:
Öffne die Apache-2 config-datei mit sudo nano
/etc/apache2/apache2.conf
und finde den folgenden Absatz:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
Jetzt, ändere das folgende AllowOverride
von None
auf
All
. Die Zeile sollte dann so aussehen: AllowOverride All
.
Verlasse den Editor mit ctrl + x
und bestätige mit y
Starte apache mit sudo systemctl restart apache2
neu und wir sind
fertig.
Installieren tun wir nginx mit dem folgenden Befehl:
root@server:~# sudo apt install nginx
Da es kein PHP-Module fuer nginx gibt, mössen wir auch PHP-FPM installieren:
root@server:~# sudo apt install php8.1-fpm
Nun koennen wir die Konfiguration in /etc/nginx/sites-enable/default
anpassen oder eine neue Daten mit der Konfiguration in
/etc/nginx/sites-available/
anlegen.
## # Default server configuration # server { listen 80 default_server; listen [::]:80 default_server; # document root root /var/www/html; # Add index.php to the list if you are using PHP index index.php; # Website-Name server_name _; # PHP Handler via FPM location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; } # Assets zu _views rewriten location ~* ^\/(assets|css|png|img|imgs|images|js)\/(.*) { rewrite (.*) /_views/$1 break; return 301; } # mit PHP Versuchen wenn's die Datein nicht gibt. location / { try_files $uri $uri/ /index.php?$args; } # config Direktzugriff verbieten location /config.json { deny all; } # Zugriff fuer .well-known erlauben wegen ACME location ~ /\.(?!well-known).* { deny all; access_log off; log_not_found off; } }
Die Seite aktivieren und nginx einmal mit sudo systemctl reload nginx
neustarten und alles sollte funktionieren.
Solange nicht anders angegeben, braucht das Produkt eine MySQL Datenbank. Wir benutzen MariaDB und dieser Guide wird die Einrichtung und Erstellung eines neuen Nutzer zeigen.
root@server:~# sudo apt install mariadb-server mariadb-client
Also nächtest müssen wir MySQL richtig einrichten. Führen wir
sudo mysql_secure_installation
aus.
root@server:~# sudo mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Wir bestätigen erstmal mit enter, da wir noch kein Passwort für den
root-Nutzer haben. Danach antworten wir immer mit Y
und wenn wir nach
einem root-passwort gefragt werden, geben wir einfach root
ein.
Es sollte angemerkt werden, das dies keine Sicherheitslücke ist, da wird dem
root-Nutzer den login nur von localhost (dem Server selber) erlauben. Wenn du planst
ein Programm wie phpmyadmin oder etwas ähnliches zu verwenden, ist es empfholen
ein sicheres Passwort zu wählen.
Jetzt wollen wir einen Nutzer für das Produkt erstellen.
Führe die mysql shell aus indem du sudo mysql
im Terminal
eingibst. Du solltest eine Ausgabe ählich zu dieser erhalten:
root@server:~# sudo mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 57 Server version: 10.3.23-MariaDB-0+deb10u1 Debian 10 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Das heißt, dass wir uns erfolgreich mit der Datenbank verbunden haben.
MariaDB [(none)]> CREATE USER 'CP'@'localhost' IDENTIFIED BY 'CP';
Wieder, wir erlauben dem Nutzer den login nur von localhost, deswegen ist
CP
als Password ausreichend.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON * . * TO 'CP'@'localhost';
Dies gibt dem Nutzer Rechte für alle Datenbank, da wir keine Datenbank spezifisch für das Produkt erstellt haben. Dieser Schritt kann auch nach dem importieren der Datenbank ausgeführt werden um die Rechte des Nutzer nur für die spezifische Datenbank zu setzen.
MariaDB [(none)]> FLUSH PRIVILEGES;
Dieser Befehl lädt die Rechte-tabelle neu und unser Nutzer ist damit einsatzfähig.
Dies schließt die Einrichtung ab. Du kannst nun mit der Einrichtung des Produkts forfahren.