Drupal

Drupal

Drupal is content management software. It's used to make many of the websites and applications you use every day. Drupal has great standard features, like easy content authoring, reliable performance, and excellent security. But what sets it apart is its flexibility; modularity is one of its core principles. Its tools help you build the versatile, structured content that dynamic web experiences need.

https://www.drupal.org/about

 

Einfaches Hosting von Drupal 7 und 8

Ein einfaches Hosting von Drupal 7 oder auch Drupal 8 kann mit einem günstigen Shared Hosting ab ca. 10.00 CHF betrieben werden. Bei einer "shared" Umgebung, kann jedoch die Performance sehr unterschiedlich (unterirdisch?!) sein, weshalb ich ein Hosting nur mit einem de­zi­diert Core (CPU) und ab 2GB Memory empfehlen kann. Oft wird ein Betrieb über CGI durchgeführt, besser ist es wenn man hier FastCGI aktivieren kann oder sogar einen eigenen Stack mit PHP-FPM nutzen kann. Sobald man FastCGI oder PHP-FPM aktiviert, ist zu Bedenken, dass diese Prozesse mehr oder weniger dauerhaft Memory benötigen und somit schnell mal mal 2 oder 4 GB benötigen.

 

Apache and PHP 7.1 (PHP-FPM) for Drupal 8.x auf Webfaction.com

This is an Apache + PHP-FPM installer for use with WebFaction CentOS 7 servers. To use it, first create a new Custom Application (listening on port) via the WebFaction Control Panel and attach it to a website record.

https://github.com/rsanden/wf-apache-php-fpm

Modification

  • TODO: Change to the latest php 7.1. and apache 2.4.28 release

 

Drush

Install Drush (without composer)

Wir installieren DRUSH ohne Composer, weil wir a) Drupal nicht mit Composer installiert haben und b) es beim Aktualisieren vom Drupal Kern (auf 8.4). bei einem lokalen Drush pro Drupal Installation zu einer Fehlermeldung (Unable to load class \Drush\VersionControl\Backup) gekommen ist 

wget https://github.com/drush-ops/drush/releases/download/8.1.14/drush.phar

mv drush.phar ~/bin/drush

chmod +x ~/bin/drush 

Update? einfach neu installieren.

Drupal Update

Vorbereitung

Umsetzung:

  • Maintenance Mode aktivieren: drush sset system.maintenance_mode TRUE
  • Updates überprüfen: drush ups
  • updates installieren (alles): drush up
  • Entitity Updates machen (wenn notwendig; prüfen über Status Seite von Drupal selber): drush entity-updates
  • Cache löschen: drush cr
  • PHP-FPM Prozess neustarten
  • Maintenance Mode deaktivieren: drush sset system.maintenance_mode FALSE

Drupal 8.4 Fehler

Mit Composer

Sofern mit Template von https://github.com/drupal-composer/drupal-project installiert wurde:

composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies
drush updatedb
drush cr

Upload Progress PHP 7.1 / PHP-FPM

An extension to track progress of a file upload with PHP7 support

https://github.com/Jan-E/uploadprogress

 

Install

phpize
./configure [--enable-uploadprogress]
make
make install

php.ini

extension=uploadprogress.so

Interessante Module

Sozusagen meine Standardmodule:

  • admin_toolbar
  • better_exposed_filters
  • captcha und recaptcha
  • colorbox
  • ctools
  • editor_file
  • entity_browser
  • entity_reference_revisions
  • field_group
  • fontyourface
  • inline_entity_form
  • linkit
  • mailchimp
  • metatag
  • paragraphs
  • pathauto
  • piwik
  • simple_sitemap
  • superfish
  • swiftmailer
  • toc_api und toc_filter
  • token
  • video_embed_field
     

Modul Installation

Mit Drush

drush dl <modulename>
drush en <modulname>
drush cr
reload

Mit Composer

composer require <modul>
drupal module:install <modul>
reload

 

Drupal Installation with Composer

Neue Drupal Installation

This project template provides a starter kit for managing your site dependencies with Composer.

https://github.com/drupal-composer/drupal-project

Bestehende Drupal Installation

Convert a non-Composer-managed Drupal application (e.g., one created via tarball) to a Composer-managed Drupal application.

https://github.com/grasmash/composerize-drupal

Translation

Wenn Übersetzungen nicht aktualisiert werden, dann liegt es daran, dass kein "file_private_path" gesetzt wurde.