====== Base system (Ubuntu 18.04, Drupal8) over KVM ====== * Ubuntu server 18.04 LTS (from ISO) * Set IPv4 and IPv6 nano -w /etc/netplan/50-cloud-init.yaml netplan apply * Install LAMP and useful packages apt install curl tasksel tasksel install lamp-server a2enmod rewrite apt install php-fdomdocument php-gd php-mbstring unzip php-curl nano /etc/apache2/sites-enabled/000-default.conf systemctl restart apache2 * Reverse proxy to external access to IIIF server sudo a2enmod proxy proxy_http systemctl restart apache2 nano -w /etc/apache2/sites-enabled/000-default.conf + AllowEncodedSlashes On + ProxyRequests Off + ProxyPreserveHost On + + Order deny,allow + Allow from all + + RequestHeader set X-Forwarded-Path /iiif-server + ProxyPass /iiif-server http://CANTALOUPE_IP:8182 nocanon + ProxyPassReverse /iiif-server http://CANTALOUPE_IP:8182 * Install Composer cd ~ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" mv composer.phar /usr/local/bin/composer composer -V Composer version 1.8.3 2019-01-30 08:31:33 * Install Drupal 8 (by Composer) \\ Create DB for Drupal mysqladmin create DbName mysql -e "CREATE USER 'Admin'@'%' IDENTIFIED BY 'password';" mysql -e "GRANT ALL PRIVILEGES ON DbName.* TO 'Admin'@'%' WITH GRANT OPTION;" \\ Install Drupal ~$ composer create-project drupal-composer/drupal-project:8.x-dev SiteDir --no-interaction ~$ sudo mv SiteDir /var/www/ ~$ sudo chown -R www-data.www-data /var/www/SiteDir ~$ cd /var/www/SiteDir/web/ $ sudo -u www-data ../vendor/drush/drush/drush site-install standard --db-url=mysql://Admin:password@localhost/DbName --account-mail="admin@example.com" --account-name=DrupalAdmin --account-pass=AdminPassword --site-mail="site@example.com" --site-name="Archipelago" sudo nano -w /var/www/SiteDir/web/sites/default/settings.php $settings['trusted_host_patterns'] = array( '^www\.example\.com$', ); \\ To avoid cache warning using composer and drush: chown -R www-data:www-data /home/yourUser/.composer chown -R www-data:www-data /home/yourUser/.drush \\ Check composer and drush: cd /var/www/SiteDir # sudo -u www-data composer --version Composer version 1.8.3 2019-01-30 08:31:33 # sudo -u www-data vendor/drush/drush/drush --version Drush Commandline Tool 9.5.2 \\ To update core see [[https://github.com/drupal-composer/drupal-project#updating-drupal-core|Updating Drupal Core]] sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies \\ To update a module (i.e. facets): sudo -u www-data composer update drupal/facets