Skip to main content
Home
Schatzchaeschtli 2026

Main navigation

  • Home
User account menu
  • Log in

Breadcrumb

  1. Home

Deployment bei Metanet einrichten

By PierreAdmin , 24 September 2026

Step by Step durch den kompletten Einrichtungsprozess für stage und live bei Metanet.

Voraussetzung

  • Aktuelle Drupal-Konfiguration nach config/sync exportiert (drush cex)
  • Alle vorgesehenen Änderungen im lokalen Git-Repository committet
  • Branch main auf GitLab auf demselben Stand wie lokal (git push)
  • composer.lock mit versioniert
  • Stage-Subdomain auf Metanet eingerichtet
  • Eigene Stage-Datenbank auf Metanet eingerichtet
  • SSH-Zugang und Lesezugriff vom Server auf das GitLab-Repository vorhanden
  • Passende PHP-Version und Composer auf dem Server verfügbar
  • Für die Erstübernahme: aktueller Datenbank-Dump und hochgeladene Dateien bereit

Metanet einrichten (für Subdomain stage.[domain.ch])

  • Subdomain stage.modestia.ch einrichten
  • DB einrichten: [domainname]_drupal_stage 
    • User modestia26Admin_stage
    • PW erstellen lassen
    • Daten auf settings.stage.php eintragen
  • PHP Einstellungen:
    • PHP: 8.3 
    • PHP ausführen als: FPM-Anwendung (Apache)1
    • Display errors: off
    • Log errors: on
    • WICHTIG!!!! andere Einstellung killt feedimport
      open_basedir: none
    • Rest auf Default lassen
  • Dokumentenstamm: stage.[domain]/
    Projektverzeichnis muss für git clone leer sein. Nachdem wir die Site mit git geklont haben, den Dokumentenstamm auf .stage.[domain]/public/web ändern
  • SSH einrichten:
    • Begrifflichkeiten:
      • Terminal 
        Programm auf dem Rechner, in dessen Fenster du Befehle eingibst und Ausgaben siehst.
      • SSH
        Die verschlüsselte Verbindung vom lokalen Rechner zum Server.
      • Shell
        Programm, das die Befehle interpretiert und ausführt: lokal bei mir Zsh, auf Metanet Bash.
    • In Plesk auf Hauptdomain wechseln > Hosting und DNS > Hosting
      • SSH-Zugriff: Wenn hier /bin/bash (chrooted) steht, ist SSH freigeschaltet.

SSH Verbindungen zu Metanet und Gitlab einrichten.

Falls noch kein Key erzeugt ist, um schnell und ohne PW-Abfrage anmelden zu können und die Verbindung von Metanet zu Gitlab noch nicht eingerichtet ist, diesen Thread «SSH einrichten» durcharbeiten.

Drupal bei Metanet einrichten für .stage

  • SSH-Verbindung zu Metanet aufbauen. Die Kurzform entspricht dem Hosting-Eintrag in ~/.ssh/config
    • ssh metanet-modestia

PHP-Version prüfen, Prompt anpassen

  • Die Metanet Shell ist ziemlich jungfräulich und arbeitet aktuell (Stand Sept 26) noch mit PHP 7.4.
  • Zuerst prüfen wir welche PHP Version ausgeführt wird und wo sie liegt. Für neuere Versionen wird der Pfad wahrscheinlich gleich bleiben und muss dann entsprechen im .bash_profile angepasst werden.
    • php -v
      which php
  • Composer und Drush verwenden PHP: Composer installiert und prüft die Projektabhängigkeiten, Drush führt Drupal-Befehle aus. Deshalb sollte die PHP-Version in der Shell für Drush und Composer die gleiche Version nutzen, wie auf dem Webserver. Die Patch-Version (hinterste Versionszahl) spielt dabei aber keine entscheidende Rolle. 
    Aktuell arbeite ich lokal für Drupal 11 Projekte mit php 8.3 und sollte das auch bei Metanet so einstellen.
  • Da die Shell bei Metanet quasi im Default Mode läuft, müssen wir erst .bash_profile anlegen, um dort die Pfade für die korrekte PHP-Version setzen und könne gleich auch noch den Prompt etwas leserlicher einrichten. Ich verwnde hier extrea Rot, damit ich auch optisch eine kontrolle habe, in welcher Umgebung ich im Terminal grad am arbeiten bin.
  • PATH und Prompt einrichten:
    • cat > ~/.bash_profile <<'EOF'
      # PHP 8.3 im Terminal verwenden.
      export PATH="/opt/php83/bin:$PATH"
      
      # Roter Server-Prompt mit Abstand zwischen den Befehlen.
      PS1='\n\[\e[31m\][METANET] \u@\h \w\[\e[0m\]\n\$ '
      export PS1
      EOF
    • Danach wird mit dem nächsten Befehl source die Einstellung gelesen und geladen, ohne das Terminal neu zu starten. hash leer den Befehls-Cache, wo z.B. Pfade zu Programmen gespeichert sein können. Damit sollte Prompt und der aktuelle Pfad zu PHP 8.x verfügbar sein.
    • source ~/.bash_profile
      hash -r 
  • Git Repository laden

  • Zuerst springen wir ins Projektverzeichnis der Subdomain und prüfen es leer ist. 
    • cd [Subdomain]
      ls -al
  • git clone: git clone lädt den aktuellen Stand aus gitlab in die Stage Area.
    • git clone git@gitlab.com:per.net/modestia.git .
  • composer: nun wird mit Composer Drupal installiert.
    • cd public
      composer install
      ****************** 
      WICHTIG FÜR LIVE: dev nicht mit installieren (devel, kint)
      ******************
      composer install --no-dev --optimize-autoloader
      • Danach sollte Drupal fertig installiert sein
  • Nicht versionierte Daten kopieren
    Der ganze Ordner private, public/web/media und die settings.local.php, settings.stage.php und settings.live sind nicht versioniert und müssen nun noch händisch übertragen werden. 
    • Das mache ich jetzt neu mit SFTP. Damit übertragen wir die Daten sicher und gewohnt einfach mit Transmit. Voraussetzung ist eine freigegebene SSH-Verbindung. Vorteil gegenüber FTP-Benutzer. Wir melden uns mit dem gleichen Benutzer an an, mit dem wir uns auch per SSH anmelden. Somit haben alle Ordner und Dateien die ich per SFTP erstelle den gleichen Owner, wie wenn ich das direkt übers Terminal auf Metanet mache.
      • Einstellungen in Transmit:
        • Modestia-Stage
        • Protokoll: SFTP
        • Adresse: metanet-modestia
        • Port: 2121
        • Benutzername: modestia-eftepe
        • Root-URL: leer lassen
        • Entfernter Pfad: /stage.modestia.ch
        • Lokaler Pfad: /Users/pierre/01_webroot/10-drupal-dev/drupal-11/modestia.ch
    • Zu kopieren:
      • settings.stage.php
        >>> verschieben: public/web/sites/default/ 
      • public/web/media
      • public/web/sites/default/files
        Falls dort öffentliche Uploads liegen, ebenfalls übernehmen.
      • private/backup_migrate
        Unterordner und Schutzdateien behalten; alte Dumps weglassen. Den aktuellen Release-Dump mitnehmen.
      • private/feeds
        Für diese Erstübernahme mitkopieren, damit vorhandene Importdateien verfügbar sind. Ob Feeds sie später selbst neu herunterlädt, hängt von dessen Konfiguration ab.
      • private/files
        Falls im Projekt vorhanden und mit benötigten privaten Dateien gefüllt: ebenfalls übernehmen.
        ---> nochmal prüfen, aber feeds speichert (glaub ich) automatisch in private, wenn private Verzeichnis in settings gesetzt ist.
      • private/.htaccess
        Mitkopieren. Sie ist eine zusätzliche Schutzdatei und keine umgebungsspezifische Einstellung.
      •  

 

Wichtig für LIVE:

Dev-Module nicht installieren. (drush, devel, etc.)

composer install --no-dev --optimize-autoloader
Deployment

Tag Suche

Categories (Taxonomie-Menu)

  • Drupal
    • Module
    • Theming
    • Views
  • Webentwicklung
    • Composer
    • CSS/SCSS
    • Deployment
    • Drush
    • Git
    • HTML
    • JavaScript
    • PHP
    • SSH
    • SVG
    • VS Code
  • Datenbank
    • mySQL
  • Server
    • Apache
    • DNS
    • Domains
    • Plesk
    • SSL/TLS
  • System
    • Mac
    • Unix
    • Windows