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 Module, benutzerdefinierte Themes, benutzerdefinierte 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:
- Stellen Sie Ihre Anmeldeinformationen auf der Drupal-Konfigurationsseite für das s3fs-Modul ein
/admin/config/media/s3fs
- 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-Instanzbuildpack
Attribut zur Angabe der Github-URL für PHP-Buildpackdisk_quota
Attribut zur Angabe des Festplattenspeichers für Ihre App-Instanzmemory
Attribut zur Angabe des Speicherlimits für Ihre App-Instanzservices
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!
