In Exoscale Website hochfahren

Manchmal muss man vorübergehend eine Webseite oder App im Internet zur Verfügung stellen, damit Nutzer, die keinen lokalen Zugang haben, darauf zugreifen können. Es gibt verschiedene Möglichkeiten, dies zu tun – zum Beispiel mit Vercel, wenn die Webseite mit Git versioniert ist und ohne Datenbank auskommt, oder mit On-Demand-Compute-Instanzen wie Exoscale. Im folgenden Beispiel mussten wir eine WordPress-Webseite mit einer SQL-Datenbank kurzfristig hochfahren.

Warum Exoscale? Es ist bei wenig Trafic extrem günstig und man kann die Sever jederzeit einfach ausschalten

  1. Konto erstellen bei Exoscale
  • Ssh-Key (Pub) hinzufügen (COMPUTE -> SSH KEYS)
  • 2FA aktvieren (Account Details -> Password and Security)
  • Compute Instance erstellen (In unserem Fall: Ein kleiner Debian 12 Container) (COMPUTE -> INSTANCES -> ADD)
  • Security Group und Rules erstellen: ssh, http und https (COMPUTE -> SECURITY GROUPS) ssh: Type: INGRESS Protocol: TCP Source: 0.0.0.0/0 Start Port: 22 End Port: 22 http: Create a new security group called frontend Add a first rule: INGRESS, TCP, CIDR 0.0.0.0/0, port 80-80 https: Add another rule: ingress, TCP, CIDR 0.0.0.0/0, port 443-443
  1. Worpress Backup in wsl entpacken

  2. mit rsync files auf server kopieren:

rsync -avz --rsh='ssh' wordpress debian@194.182.188.236:/home/debian/fachsymposium
  1. Server konfigurieren a. Datenbankserver installieren mariadb(mysql):
sudo apt install mariadb-server

b. webserver installieren, nginx oder apache

sudo apt install nginx

c. DB und Webseite services aktivieren und starten

sudo systemctl enable nginx
sudo systemtl start nginx

Gleiches Vorgehen für mariadb-server und andere Dienste falls nötig

d. mariadb server sichern

sudo mysql_secure_installation

MariaDB als root-Benutzer öffnen

sudo mysql -u root -p

Neue Datenbank erstellen

CREATE DATABASE meinedb;

Neuen Benutzer mit Passwort erstellen

CREATE USER 'meinuser'@'localhost' IDENTIFIED BY 'meinpasswort';

Dem Benutzer alle Rechte für die Datenbank geben

GRANT ALL PRIVILEGES ON meinedb.* TO 'meinuser'@'localhost';

Änderungen übernehmen

FLUSH PRIVILEGES;

MariaDB verlassen

EXIT;

  1. php für nginx installieren
sudo apt install php-fpm
sudo systemctl enable php8.2-fpm.service
sudo systemctl start php8.2-fpm.service
  1. nginx für php-fpm konfigurieren
sudo vi /etc/nginx/sites-available/default
server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;  # Adjust version if needed
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Achtung! Auf dem config server nur den relevanten ersetzen, nicht alles überschreiben