1. INSTALACIÓN DE COMPOSER
mv composer.phar ~/bin/composer.phar
mkdir ~/bin
cd ~/
Creamos un alias as composer. Para iso creamos o profile de bash
touch .bash_profile
nano ~/.bash_profile
alias composer="php -d suhosin.executor.include.whitelist=phar ~/bin/composer.phar"
source ~/.bash_profile
comprobamos que funciona:
composer
2. INSTALACIÓN DE DRUSH
cd ~/bin
mkdir drush
descargamos a última versión de drush
git clone https://github.com/drush-ops/drush.git ~/bin/drush
cd ~/bin/drush
composer install
Cando executaba a sentencia anterior o sistema imprimía un erro de memoria con un "Allocated Memory". Para solventar esta paso observei que o meu vps non dispón de memoria suficiente (512 mb) e non dispoñía de swap. Engadín 1 GB de memoria á Swap. Para iso seguín este titorial
composer install
Se neste punto comprobamos a versión de drush, obtemos que estamos coa versión 9.x-dev. Pero esta versión non nos vale, xa que da erros ao executar as sentencias de actualización da base de datos de Drupal, escribindo un deprecated instruction. Para a actualización do Drupal 8.4.2, precisamos a versión de Drush 8.1.15
mkdir ~/bin/drush8
cd ~/bin/drush8
composer require "drush/drush:8.*"
Creamos un alias á version drush8
alias drush='~/bin/drush8/vendor/bin/drush'
Este alias debemos de metelo no .bash_profile, senón ao reiniciar o servidor perderanse os cambios
nano ~/.bash_profile
engadimos:
alias drush='~/bin/drush8/vendor/bin/drush'
e actualizamos
source ~/.bash_profile
comprobamos que funciona
drush --version
Agora obtemos a versión de drush 8.1.15 precisa
3. PROCESO DE ACTUALIZACIÓN
Antes de nada facemos copia de seguidade da base de datos de Drupal e do cartafol no que teñamos instalado o Drupal.
a. Poñemos o sitios en modo mantemento
cd /var/www/html/drupal
drush sset system.maintenance_mode 1
(Tamén o podemos facer sen ir ao cartafol empregando sentencias deste xeito:
drush --root=/var/www/html/drupal/ --uri=blog.atio.es sset system.maintenance_mode 1)
b. Reconstruímos a caché
drush cr
c. Actualizamos as dependencias de composer:
Seguimos en: cd /var/www/html/tic/drupal
composer update
d. Actualizar Drupal
composer require drupal/core:8.4.2 --update-with-dependencies
drush updb
Sen embargo aquí atopei moitos fallos. Por exemplo o seguinte:
root@debian:/var/www/html/drupal# drush pm-uninstall mbase
Drupal\Core\Extension\InfoParserException: Unable to parse themes/mbase/mbase.info.yml The reserved indicator "@" cannot [error]
Neste caso dirixinme ao cartafol dos temas e eliminei a carpeta mbase
Tamén se presentaron fallos co módulo imce a co tagadelic. Neste caso elimineinos da base de datos coas seguintes instrucións:
drush sql-query "DELETE FROM key_value WHERE collection='system.schema' AND name='imce';"
drush sql-query "DELETE FROM key_value WHERE collection='system.schema' AND name='tagadelic';"
Aínda así non resolvín o erro tagadelic_list. Sen embargo executoume correctamente as dúas sentencias seguintes de actualización:
drush updb
drush pm-update
e. Quitamos o modo mantemento do sitio:
drush sset system.maintenance_mode 0
f. Reconstruímos a caché
drush cr
Con isto xa accedemos ao sitio e visualizase ben, sen embargo ao crear contidos, imprimía un erro inesperado. Ao dirixirme a Informes -> Mensaxes recentes de rexisto e filtrando os erros obtiña o seguinte:
Drupal\Component\Plugin\Exception\PluginNotFoundException: The "php_code" plugin does not exist. in Drupal\Core\Plugin\DefaultPluginManager->doGetDefinition() (line 52 of
/var/www/html/tic/drupal/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php).
Polo que parecía o erro estábao dando o módulo PHP Filter, pois estaba desactivado. Sen embargo cando o intentaba activar, o drupal non me deixaba, pois decíame que tiña un ficheiro de configuración activo. Poiden solucionalo instalando o módulo Easy Install que podemos atopar no seguinte enderezo:
https://www.drupal.org/project/easy_install
Con este módulo, ao pinchar en extend, aparece unha nova pestana que indica "Purge configurations", eleximos o módulo php_filter e eliminamos todas as configuracións
Seguidamente vamos a módulos, e activamos novamente o PHP FILTER
4. ERROS
Se despois de facer todo o proceso, aparece esta mensaxe
O sitio web atopou un erro inesperado.
Por favor, inténteo de novo máis tarde.
Podemos revisar o erros de php, para visualizar que módulos están dando fallos.
admin/reports/dblog (log de php)
Ese módulo debemos de desinstalalo, eliminar toda a configuración (co módulo easy install)e proceder a instalalo novamente.