back

Knowledge Centre

Drupal 8 auf Pivotal Cloud Foundry betreiben

| 21.02.2018

Drupal 8 auf Pivotal Cloud Foundry betreiben

Dieses Tutorial hilft Ihnen dabei, Drupal 8 auf Pivotal Cloud Foundry (PCF) auszuführen. PCF ist ein Tool, das Ihnen hilft, kontinuierliche Integration auf Ihrer eigenen privaten Cloud durchzuführen. Mit PCF können Sie leicht neue Entwicklungsumgebungen und neue Projekte durch die Verwendung einer leistungsstarken GUI erstellen.

Dies ist ein Beispiel für eine Drupal 8-Anwendung, die auf Pivotal Cloud Foundry mit dem PHP Build Pack ausgeführt werden kann. Die Drupal-Installation basiert auf dem Composer-Template für Drupal-Projekte. Die offizielle Dokumentation zum Buildpack finden Sie unter http://docs.cloudfoundry.org/buildpacks/php/index.html

PCF-VORLAGE FÜR DRUPAL 8

Der erste Schritt besteht darin, unsere Vorlage für eine Drupal 8-Anwendung mit Composer von der folgenden URL zu klonen: https://github.com/softescu/pcf-drupal-8

git clone git@github.com:softescu/pcf-drupal-8.git pcf-drupal-8

Die Vorlage hat die folgenden Verzeichnisse:

  • .bp-config enthält PHP- und Httpd-Konfiguration
  • .extensions enthält nicht-kernige Erweiterungen (MySQL und Drush)
  • drush dieser Ordner ist für die Installation der Drush-Erweiterung erforderlich
  • htdocs dieser Ordner wird als Webverzeichnis für die Anwendung verwendet und enthält: benutzerdefinierte Modulebenutzerdefinierte Themesbenutzerdefinierte Profile, usw.
  • mysql dieser Ordner ist für die Installation der MySQL-Erweiterung erforderlich
  • scripts enthält eine autoloadbare Klasse für den Komponisten

VORLAGENMERKMALE

Zum Zeitpunkt der Erstellung dieses Blog-Posts bietet die PCF Drupal 8-Vorlage die folgenden Funktionen:

  • PHP-Version 7.0.26
  • Drush-Version 8.1.15
  • MySQL Client-Version 5.7.20
  • Drupal-Version 8.4.3
  • Drupal Simple OAuth-Version 3.0
  • Drupal s3fs-Version ^3.0@alpha
  • Verwendung von S3-Bucket für die Dateispeicherung
  • OAuth in Drupal installiert

PHP-Erweiterungen und Module:

  • OP Cache
  • Gzip-Ausgabe
  • MySQLnd (MySQL Native Driver)
  • MySQLi (MySQL Improved Extension)
  • PDO
  • PDO_MYSQL (MySQL-Funktionen)
  • Sitzung
  • cURL
  • MbString (Multibyte String)
  • ImageMagick (Bildverarbeitung)

WIE DEPLOYEN SIE DRUPAL 8 ZU PCF?

Dieses Tutorial setzt voraus, dass Sie Pivotal Cloud Foundry bereits installiert und ausgeführt haben. Der erste Schritt besteht darin, unsere Vorlage für eine Drupal 8-Anwendung mit Composer zu klonen:

git clone git@github.com:softescu/pcf-drupal-8.git pcf-drupal-8

Sie müssen eine MySQL-Service-Instanz in PCF erstellen.

cf create-service p-mysql <Planname> drupal-8-pcf-db

Schieben Sie es zu CloudFoundry.

cf push

DRUPAL 8 KONFIGURIEREN

Nachdem der Befehl “cf push” abgeschlossen ist, wird Ihr Repo auf Ihre Ziel-PCF-Anwendung geschoben. Drupal-Abhängigkeiten werden automatisch mit Composer installiert.

Mehr darüber, wie Composer-Abhängigkeiten innerhalb des PCF-Linux-Containers verwaltet werden, können Sie hier sehen.

Drupal wird in Ihrem Webverzeichnis htdocs installiert. Contrib-Module (Pakete vom Typ drupal-module) werden in htdocs/modules/contrib/ platziert. Contrib-Theme (Pakete vom Typ drupal-theme) werden in htdocs/themes/contrib/ platziert. Contrib-Profile (Pakete vom Typ drupal-profile) werden in htdocs/profiles/contrib/ platziert. Das Verzeichnis htdocs/sites/default/files wird automatisch erstellt.

Nachdem der erste Push abgeschlossen ist, sollten Sie fortfahren und die Installation von Drupal abschließen, indem Sie auf den Domainnamen Ihrer Anwendung zugreifen und dem D8-Installationsassistenten folgen.

SIMPLE OAUTH KONFIGURIEREN

Unsere Vorlage enthält bereits die für den Betrieb von OAuth mit D8 notwendigen Module.

Gehen Sie zu /admin/config/people/simple_oauth und speichern Sie den Pfad zu Ihren Schlüsseln. Schlüssel werden automatisch an diesen Ort /home/vcap/app/cert von der oauth-Erweiterung .extensions/oauth generiert

Sie können mehr Informationen darüber lesen, wie Sie Simple OAuth konfigurieren.

DRUPAL-DATEISYSTEM MIT S3 KONFIGURIEREN

Das Dateisystem muss auf Amazon Simple Cloud Storage Service‎ (S3) gespeichert werden. Anwendungen, die auf Cloud Foundry laufen, sollten aus folgendem Grund keine Dateien auf das lokale Dateisystem schreiben:

Der lokale Dateispeicher ist kurzlebig. Wenn eine Anwendungsinstanz abstürzt oder stoppt, werden die Ressourcen, die dieser Instanz zugewiesen sind, von der Plattform zurückgefordert, einschließlich aller lokalen Festplattenänderungen, die seit dem Start der App vorgenommen wurden. Wenn die Instanz neu gestartet wird, startet die Anwendung mit einem neuen Festplattenabbild. Obwohl Ihre Anwendung lokale Dateien schreiben kann, während sie läuft, verschwinden die Dateien nach dem Neustart der Anwendung.

Drupal S3-Dateisystem (s3fs) bietet Ihrem Drupal-Website ein zusätzliches Dateisystem, das Dateien im Amazon Simple Storage Service (S3) oder einem anderen S3-kompatiblen Speicherdienst speichert.

Um das Drupal s3fs-Modul zu konfigurieren, sind die folgenden Details zum AWS S3-Dienst erforderlich:

  • Amazon Web Service Access Key
  • Amazon Web Service Secret Key
  • S3-Bucket-Name
  • S3-Region

Einrichtungsschritte:

  1. Stellen Sie Ihre Anmeldeinformationen auf der Drupal-Konfigurationsseite für das s3fs-Modul ein /admin/config/media/s3fs
  2. Konfigurieren Sie das Drupal-Dateisystemziel auf der Dateisystem-Konfigurationsseite /admin/config/media/file-system indem Sie die Option "Amazon Simple Storage Service" auswählen.

DRUPAL-DATENBANK FÜR PCF MYSQL-SERVICE KONFIGURIEREN

Cloud Foundry fügt Verbindungsdetails zur VCAP_SERVICES-Umgebungsvariablen hinzu, wenn Sie Ihre Anwendung neu starten, nachdem Sie eine Serviceinstanz an Ihre Anwendung gebunden haben. Die Ergebnisse werden als JSON-Dokument zurückgegeben, das ein Objekt für jeden Dienst enthält, für den eine oder mehrere Instanzen an die Anwendung gebunden sind.

Datenbankanmeldeinformationen können durch das Parsen des JSON-Objekts gelesen werden, das in der VCAP_SERVICES-Umgebungsvariablen gespeichert ist.

Beispiel:

$services = getenv("VCAP_SERVICES");
$services_json = json_decode($services,true);
$mysql_config = $services_json["p-mysql"][0]["credentials"];

Um Ihre Drupal 8-Anwendung zu verbinden, haben wir bereits die Einstellungen in settings.php vorgenommen.

ERWEITERTE OPTIONEN FÜR DIE PCF DRUPAL 8-VORLAGE

ANWENDUNGSATTRIBUTE ANPASSEN

Die Vorlage bietet mehrere Optionen, um Ihre Anwendung mit der Manifest-Konfigurationsdatei anzupassen: manifest.yml

  • name Attribut zur Angabe des Namens für Ihre App-Instanz
  • buildpack Attribut zur Angabe der Github-URL für PHP-Buildpack
  • disk_quota Attribut zur Angabe des Festplattenspeichers für Ihre App-Instanz
  • memory Attribut zur Angabe des Speicherlimits für Ihre App-Instanz
  • services Attribut zur Angabe der Dienstliste für Ihre App-Instanz

ERWEITERUNG FÜR PHP BUILDPACK HINZUFÜGEN

In CloudFoundry ist eine Erweiterung eine Reihe von Python-Methoden, die während des Staging-Prozesses aufgerufen werden und vorkompilierte Pakete installieren. Um eine Erweiterung zu erstellen, erstellen Sie einfach einen Ordner im .extensions-Ordner.

Der Name des Ordners ist der Name der Erweiterung. Innerhalb des neu erstellten Ordners erstellen Sie eine Datei namens extension.py. Diese Datei enthält Ihren Code. In dieser Datei platzieren Sie Ihre Erweiterungsmethoden und alle zusätzlich benötigten Codes.

Die folgenden Erweiterungen existieren bereits in unserer Vorlagendatei.

  • .extensions/drush installiert und konfiguriert Drush innerhalb des cflinuxfs2 Linux-Containers
  • .extensions/mysql installiert den MySQL-Client innerhalb des cflinuxfs2 Linux-Containers
  • .extensions/oauth installiert Schlüsselpaare, die für das Simple OAuth Drupal-Modul erforderlich sind

ERWEITERTE PHP BUILDPACK-KONFIGURATIONEN

Die Dokumentation von Pivotal Cloud Foundry (PCF) zur PHP-Buildpack-Konfiguration kann hier gelesen werden. Das Buildpack überschreibt die Standarddatei options.json mit allen Konfigurationen, die es in der Datei .bp-config/options.json Ihrer Anwendung findet.

Das Buildpack fügt alle Dateien, die es in der Anwendung findet, zur PHP-FPM-Konfiguration hinzu .bp-config/php/fpm.d. Dies kann verwendet werden, um jeden Wert zu ändern, der für php-fpm.ini akzeptabel ist

Das Buildpack fügt alle Dateien, die es in der Anwendung findet, zur PHP-Konfiguration hinzu .bp-config/php/php.ini.d/<file>.ini. Dies kann beispielsweise verwendet werden, um PHP- oder ZEND-Erweiterungen zu aktivieren

PHP-KONFIGURATION FÜR DRUPAL 8

Eine Liste der verfügbaren PHP-Versionen, Erweiterungen und Module finden Sie hier.

Standardmäßig enthält unsere Drupal 8-Vorlage in .bp-config/options.json die folgenden Optionen:

  • PHP-Version: 7.0.26
  • PHP-Erweiterungen: bz2, curl, dba, gd, imagick, imap, mbstring, mysqli, opcache, openssl, pdo, pdo_mysql, pdo_odbc, sockets, xsl, zip, zlib
  • PHP-Module: pear, fpm, cli

PHP Opcache-Konfiguration

Die PHP Opcache-Konfiguration mit empfohlenen php.ini-Einstellungen wurde hier hinzugefügt: .bp-config/php/php.ini.d/extra.ini

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

PHP FastCGI-Konfiguration

Die Einstellungen für die PHP-FPM-Pool-Konfiguration finden Sie hier: .bp-config/php/fpm.d/extra.conf

Die Liste der globalen php-fpm.conf Direktiven finden Sie hier.

Das war's! Hinterlassen Sie uns einen Kommentar zu jedem Problem, das Sie finden!

pivotal-cloud-foundry-drupal8 .jpeg
  • Wissen
    Wissenszentrum
    Im Gehirn einer KI
  • Wissen
    Wissenszentrum
    Feinabstimmung von LLaMA zur Nachbildung von Eminescus literarischem Stil
  • Wissen
    Wissenszentrum
    Ein neues Zeitalter beginnt: Drupal CMS 1.0 startet