back

Knowlegde

Knowledge Centre

Cum sa rulezi Drupal 8 pe Pivotal Cloud Foundry

by editor | 25.02.2025

Cum sa rulezi Drupal 8 pe Pivotal Cloud Foundry

Acest tutorial vă va ajuta să rulați Drupal 8 pe Pivotal Cloud Foundry (PCF). PCF este un instrument care vă ajută să rulați integrare continuă pe propriul cloud privat. Cu PCF puteți crea ușor noi medii de dezvoltare și noi proiecte prin utilizarea unei interfețe grafice puternice.

Acesta este un exemplu de aplicație Drupal 8 care poate fi rulată pe Pivotal Cloud Foundry folosind PHP Build Pack. Instalarea Drupal se bazează pe șablonul Composer pentru proiecte Drupal. Documentația oficială a buildpack-ului poate fi găsită la http://docs.cloudfoundry.org/buildpacks/php/index.html

ȘABLON PCF PENTRU DRUPAL 8

Primul pas va fi clonarea șablonului nostru pentru o aplicație Drupal 8 cu Composer de la următoarea adresă URL: https://github.com/softescu/pcf-drupal-8

pivotal-cloud-foundry-drupal8 .jpeg
Top
git clone git@github.com:softescu/pcf-drupal-8.git pcf-drupal-8

Șablonul are următoarele directoare:

  • .bp-config conține configurația PHP și Httpd
  • .extensions conține extensii non-core (MySQL și Drush)
  • drush acest folder este necesar pentru instalarea extensiei Drush
  • htdocs acest folder va fi Directorul Web pentru aplicație, conține: module personalizate, teme personalizate, profiluri personalizate, etc.
  • mysql acest folder este necesar pentru instalarea extensiei MySQL
  • scripts conține o clasă ce poate fi încărcată automat pentru composer

CARACTERISTICILE ȘABLONULUI

La momentul scrierii acestei postări de blog, șablonul PCF Drupal 8 oferă următoarele caracteristici:

  • PHP Versiunea 7.0.26
  • Drush Versiunea 8.1.15
  • MySQL Client Versiunea 5.7.20
  • Drupal Versiunea 8.4.3
  • Drupal Simple OAuth Versiunea 3.0
  • Drupal s3fs Versiunea ^3.0@alpha
  • Utilizarea bucket-ului S3 pentru stocarea fișierelor
  • OAuth instalat în Drupal

Extensii și Module PHP:

  • OP Cache
  • Gzip output
  • MySQLnd (MySQL Native Driver)
  • MySQLi (MySQL Improved Extension)
  • PDO
  • PDO_MYSQL (Funcții MySQL)
  • Session
  • cURL
  • MbString (Șir Multibyte)
  • ImageMagick (Procesare Imagini)

CUM SĂ IMPLEMENTAȚI DRUPAL 8 PE PCF?

Acest tutorial presupune că aveți deja Pivotal Cloud Foundry instalat și rulând. Primul pas va fi clonarea șablonului nostru pentru o aplicație Drupal 8 cu Composer cu:

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

Trebuie să creați o instanță de serviciu MySQL în PCF.

 

 

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

Trimiteți-l către CloudFoundry.

cf push

 

CONFIGURE DRUPAL 8

Once the “cf push” command has finished, your repo is pushed to your target PCF application. Drupal dependencies are automatically installed with Composer.

More about how composer dependencies are managed inside PCF linux container you can see here.

Drupal will be installed inside your web directory htdocs. Contrib Modules (packages of type drupal-module) will be placed in htdocs/modules/contrib/. Contrib Theme (packages of type drupal-theme) will be placed in htdocs/themes/contrib/. Contrib Profiles (packages of type drupal-profile) will be placed in htdocs/profiles/contrib/. The htdocs/sites/default/files directory is automatically created.

Once the initial push has been finished, you should continue and finish to install Drupal by accessing your application domain name and follow the D8 installation wizard.

 

CONFIGURE SIMPLE OAUTH

Our template already contains the modules necessary to run OAuth with D8.

Go to /admin/config/people/simple_oauth and save the path to your keys. Keys are generated automatically to this location /home/vcap/app/cert by the oauth extension .extensions/oauth

You can read more info how to configure Simple OAuth.

 

CONFIGURE DRUPAL FILE SYSTEM WITH S3

File system must be stored to Amazon Simple Cloud Storage Service‎ (S3). Applications running on Cloud Foundry should not write files to the local file system for the following reason:

Local file system storage is short-lived. When an application instance crashes or stops, the resources assigned to that instance are reclaimed by the platform including any local disk changes made since the app started. When the instance is restarted, the application will start with a new disk image. Although your application can write local files while it is running, the files will disappear after the application restarts.

Drupal S3 File System (s3fs) provides an additional file system to your drupal site, which stores files in Amazon's Simple Storage Service (S3) or any other S3-compatible storage service.

To configure Drupal s3fs module the following details about AWS S3 Service are required:

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

Setup steps:

  1. Setup your credentials in the Drupal configuration page for the s3fs module /admin/config/media/s3fs
  2. Configure the Drupal File System destination in the File System configuration page /admin/config/media/file-system by choosing the “Amazon Simple Storage Service” option.

CONFIGURE DRUPAL DATABASE FOR PCF MYSQL SERVICE

Cloud Foundry adds connection details to the VCAP_SERVICES environment variable when you restart your application, after binding a service instance to your application. The results are returned as a JSON document that contains an object for each service for which one or more instances are bound to the application.

Database credentials can be readed by parsing JSON Object stored in VCAP_SERVICES environment variable.

Example:

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

Pentru a conecta aplicația dvs. Drupal 8, am efectuat deja setările în settings.php.

OPȚIUNI AVANSATE PENTRU ȘABLONUL PCF DRUPAL 8

PERSONALIZAREA ATRIBUTELOR APLICAȚIEI

Șablonul oferă mai multe opțiuni pentru a personaliza aplicația dvs. cu fișierul de configurare manifest: manifest.yml

  • atributul name pentru a specifica numele pentru instanța aplicației dvs.
  • atributul buildpack pentru a specifica URL-ul Github pentru buildpack-ul PHP
  • atributul disk_quota pentru a specifica spațiul pe disc pentru instanța aplicației dvs.
  • atributul memory pentru a specifica limita de memorie pentru instanța aplicației dvs.
  • atributul services pentru a specifica lista de servicii pentru instanța aplicației dvs.

ADĂUGAREA EXTENSIILOR PENTRU PHP BUILDPACK

În CloudFoundry, o extensie este un set de metode Python care vor fi apelate în timpul procesului de pregătire și vor instala pachete precompilate. Pentru a crea o extensie, pur și simplu creați un folder în directorul .extensions. Numele folderului va fi numele extensiei. În interiorul folderului nou creat, creați un fișier numit extension.py. Acel fișier va conține codul dvs. În interiorul acelui fișier, puneți metodele extensiei și orice cod suplimentar necesar. Următoarele extensii există deja în fișierul nostru șablon.

  • .extensions/drush instalează și configurează Drush în interiorul containerului Linux cflinuxfs2
  • .extensions/mysql instalează Clientul MySQL în interiorul containerului Linux cflinuxfs2
  • .extensions/oauth instalează perechile de chei necesare pentru modulul Drupal Simple OAuth

CONFIGURAȚII AVANSATE PHP BUILDPACK

Documentația Pivotal Cloud Foundry (PCF) pentru Configurarea PHP Buildpack poate fi citită aici. Buildpack-ul suprascrie fișierul implicit options.json cu orice configurație găsită în fișierul .bp-config/options.json al aplicației dvs. Buildpack-ul va adăuga orice fișiere .bp-config/php/fpm.d pe care le găsește în aplicație la configurația PHP-FPM. Acest lucru poate fi utilizat pentru a schimba orice valoare acceptabilă pentru php-fpm.ini Buildpack-ul va adăuga orice fișiere .bp-config/php/php.ini.d/<file>.ini pe care le găsește în aplicație la configurația PHP. De exemplu, acest lucru poate fi utilizat pentru a activa extensii PHP sau ZEND

CONFIGURAREA PHP PENTRU DRUPAL 8

O listă a versiunilor, extensiilor și modulelor PHP disponibile poate fi găsită aici. În mod implicit, șablonul nostru Drupal 8 conține în .bp-config/options.json următoarele opțiuni:

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

CONFIGURAREA PHP OPCACHE

Configurarea PHP Opcache cu setările php.ini recomandate a fost adăugată aici: .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

CONFIGURAREA PHP FastCGI

Setările de configurare pentru pool-ul PHP-FPM se află aici: `.bp-config/php/fpm.d/extra.conf`

Lista directivelor globale `php-fpm.conf poate fi găsită aici.

  • Knowlegde
    Knowledge Centre
    Extinde validarea câmpurilor cu expresii regulate
    editor
  • Knowlegde
    Knowledge Centre
    Înțelegerea arhitecturii CMS decuplate complet vs. decuplate progresiv
    editor
  • Knowlegde
    Knowledge Centre
    AngularJS sau Angular: Înțelegerea diferențelor și luarea deciziei corecte
    editor