Actualización a Drupal 8.4.2 - PHP7 con Drush

atio

 

drupal

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 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'

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

 

 

Termo

Engadir un novo comentario