Php:drupal8:hebergeurs

De Les Tutoriaux du WebMestre
Aller à : navigation, rechercher

1AND1 Mutualisé

Présentation

  • mon site Drupal se nomme d8jpmena, on y accède via un lien depuis la racine:
  • l'accès à l'interface d'administration ce fait en ajoutant /user/login au nom de domaine ce qui donne : http://jpmena.eu/user/login
#le lien jpmena
(uiserver):u72756193:~ > ll jpmena
lrwxrwxrwx 1 u72756193 ftpusers 57 Apr 21 09:12 jpmena -> /kunden/homepages/21/d462702613/htdocs/sites_jpm/d8jpmena
#le contenu de la cible est bien un site Druapl8
(uiserver):u72756193:~ > ll ~/sites_jpm/d8jpmena
total 1832
-rwxr-xr-x  1 u72756193 ftpusers   18092 Sep 23  2014 LICENSE.txt
-rwxr-xr-x  1 u72756193 ftpusers    5889 Jun  2 01:31 README.txt
-rwxr-xr-x  1 u72756193 ftpusers     262 Jun  2 01:31 autoload.php
-rwxr-xr-x  1 u72756193 ftpusers    1468 Jun  9 18:21 composer.json
-rwxr-xr-x  1 u72756193 ftpusers  162762 Jun  9 18:21 composer.lock
-rwxr-xr-x  1 u72756193 ftpusers 1640731 Jun  9 15:39 composer.phar
drwxr-xr-x 12 u72756193 ftpusers    4096 Jun  2 01:31 core
-rwxr-xr-x  1 u72756193 ftpusers    1346 Jun  2 01:31 example.gitignore
-rwxr-xr-x  1 u72756193 ftpusers     549 Jun  2 01:31 index.php
drwxr-xr-x  2 u72756193 ftpusers      23 Jun  2 01:31 modules
-rw----r--  1 u72756193 ftpusers     155 Jun 11 21:30 php.ini
drwxr-xr-x  2 u72756193 ftpusers      23 Jun  2 01:31 profiles
-rwxr-xr-x  1 u72756193 ftpusers    1596 Jun  2 01:31 robots.txt
drwxr-xr-x  3 u72756193 ftpusers     125 Jun 11 17:20 sites
drwxr-xr-x  3 u72756193 ftpusers      39 Jun 11 14:36 themes
-rwxr-xr-x  1 u72756193 ftpusers     554 Jun  2 01:31 update.php
drwxr-xr-x 32 u72756193 ftpusers    4096 Jun  9 18:21 vendor
-rwxr-xr-x  1 u72756193 ftpusers    4006 Jun  2 01:31 web.config

Le Php client

  • il y a plusieurs version sur l'héberggement
    • Drupal 8 impose un php > 5.5.19
#par défaut on est en version 4
(uiserver):u72756193:~/sites_jpm/d8jpmena/vendor/drush/drush > php --version
PHP 4.4.9 (cgi-fcgi) (built: Mar 31 2016 16:41:29)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
#php6 est en fait un vieux php5.4!! trop faible
(uiserver):u72756193:~/sites_jpm/d8jpmena/vendor/drush/drush > php6 --version
PHP 5.4.45 (cgi-fcgi) (built: Mar 31 2016 16:37:21)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
#php5.5 pointe vers une version de php apparemment suffisante
(uiserver):u72756193:~/sites_jpm/d8jpmena/vendor/drush/drush > php5.5 --version
PHP 5.5.36 (cgi-fcgi) (built: May 31 2016 12:53:57)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

Je récupère un Drush global à mon hébergement

  • Je récupère l'exécutable php de drush à la racine de mon hébergement:
(uiserver):u72756193:~ > wget http://files.drush.org/drush.phar
--2016-06-29 09:15:27--  http://files.drush.org/drush.phar
Resolving files.drush.org... 54.231.40.43
Connecting to files.drush.org|54.231.40.43|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5346120 (5.1M) [application/octet-stream]
Saving to: `drush.phar'

100%[=====================================================================================================================================================================>] 5,346,120   2.53M/s   in 2.0s    

2016-06-29 09:15:29 (2.53 MB/s) - `drush.phar' saved [5346120/5346120]

Usage direct de Drush

  • sans raccourci sans PATH et sans autocompletion
#l'aide a bien les commandes introduites par les modules propres au site des Randonneurs Ile de France
## drush.phar a été téléchargé à la racine de notre hébergement
## -r nous permet de spécifier la racine du site
(uiserver):u72756193:~ > php5.5 drush.phar -r ~/sites_jpm/d8rif help
X-Powered-By: PHP/5.5.38
Content-type: text/html

Execute a drush command. Run `drush help [command]` to view command-specific help.  Run `drush topic` to
read even more documentation.

Global options (see `drush topic core-global-options` for the full list):
 -d, --debug                               Display even more information, including internal messages. 
 -h, --help                                This help system.                                           
 -n, --no                                  Assume 'no' as answer to all prompts.                       
 -r <path>, --root=<path>                  Drupal root directory to use (default: current directory).  
 -s, --simulate                            Simulate all relevant actions (don\'t actually change the    
                                           system).                                                    
 -l <http://example.com:8888>,             URI of the drupal site to use (only needed in multisite     
 --uri=<http://example.com:8888>           environments or when running on an alternate port).         
 -v, --verbose                             Display extra information about the command.                
 -y, --yes                                 Assume 'yes' as answer to all prompts.

Core Drush commands: (core)
 archive-dump (ard,    Backup your code, files, and database into a single file.                          
 archive-backup, arb)                                                                                     
 archive-restore       Expand a site archive into a Drupal web site.                                      
 (arr)                                                                                                    
 browse                Display a link to a given path or open link in a browser.                          
 core-cli (php)        Open an interactive shell on a Drupal site.                                        
 core-config (conf,    Edit drushrc, site alias, and Drupal settings.php files.                           
 config)                                                                                                  
 core-cron (cron)      Run all cron hooks in all active modules for specified site.                       
 core-execute (exec,   Execute a shell command. Usually used with a site alias.                           
 execute)                                                                                                 
 ...........................................................
#module delete_all que j'ai activé pour les randonneurs Ile de France                                                                                         
 delete-all-delete-co  Delete content.                                                                   
 ntent (dadc)                                                                                            
 delete-all-delete-us  Delete users.                                                                     
 ers (dadu)
#on retrouve notamment les commandes drush associées au module que j'ai créé puis activé pour les randonneurs Ile de France                                                                                              
 rif-efface-randos-jo  Remove Days Hikes (Drupal 8 Rando-Journee content type) contained in the csv file 
 urs (rerj)            from Drupal                                                                       
 rif-entities-list     Show a list of available entities for the Randonneurs Ile de France.              
 (rel)                                                                                                   
 rif-import-randos-jo  Imports Days Hikes from a RIF csv File  into Drupal (Drupal 8 Rando-Journee       
 urs (rirj)            content type)

#test avec le nettoyage du cache du futur site public des Randonneurs Ile de France
## drush.phar a été téléchargé à la racine de notre hébergement
## -r nous permet de spécifier la racine du site
(uiserver):u72756193:~ > php5.5 drush.phar -r ~/sites_jpm/d8rif cr
X-Powered-By: PHP/5.5.38
Content-type: text/html

Usage des raccouris Drush

  • J'initialise drush (il n'y a pas de .bashrc par défaut sur l'environnement):
    • il me faut utiliser le raccourci php5.5 (cf. ci dessus):
#c'est bien php5.5 que l'on ddoit utiliser ...
(uiserver):u72756193:~ > php5.5 --version               
PHP 5.5.36 (cgi-fcgi) (built: May 31 2016 12:53:57)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
#je lance la commande d'initialisation de mon drush !!!!
(uiserver):u72756193:~ > php5.5 drush.phar init
X-Powered-By: PHP/5.5.36
Content-type: text/html

# Include Drush bash customizations.
if [ -f "/kunden/homepages/21/d462702613/htdocs/.drush/drush.bashrc" ] ; then
  source /kunden/homepages/21/d462702613/htdocs/.drush/drush.bashrc
fi

# Include Drush completion.
if [ -f "/kunden/homepages/21/d462702613/htdocs/.drush/drush.complete.sh" ] ; then
  source /kunden/homepages/21/d462702613/htdocs/.drush/drush.complete.sh
fi

# Include Drush prompt customizations.
if [ -f "/kunden/homepages/21/d462702613/htdocs/.drush/drush.prompt.sh" ] ; then
  source /kunden/homepages/21/d462702613/htdocs/.drush/drush.prompt.sh
fi

# Path to Drush, added by 'drush init'.
export PATH="$PATH:phar:///homepages/21/d462702613/htdocs/drush.phar"

Append the above code to /kunden/homepages/21/d462702613/htdocs/.bashrc? (y/n): y
  • Le fichier .bashrc créé :
(uiserver):u72756193:~ > cat .bashrc 


# Include Drush bash customizations.
if [ -f "/kunden/homepages/21/d462702613/htdocs/.drush/drush.bashrc" ] ; then
  source /kunden/homepages/21/d462702613/htdocs/.drush/drush.bashrc
fi

# Include Drush completion.
if [ -f "/kunden/homepages/21/d462702613/htdocs/.drush/drush.complete.sh" ] ; then
  source /kunden/homepages/21/d462702613/htdocs/.drush/drush.complete.sh
fi

# Include Drush prompt customizations.
if [ -f "/kunden/homepages/21/d462702613/htdocs/.drush/drush.prompt.sh" ] ; then
  source /kunden/homepages/21/d462702613/htdocs/.drush/drush.prompt.sh
fi

# Path to Drush, added by 'drush init'.
export PATH="$PATH:phar:///homepages/21/d462702613/htdocs/drush.phar"
  • créer dans le .bashrc un alias drush:
#Création d'un alias drush et vérification:
(uiserver):u72756193:~/.drush > alias drush='php5.5 $HOME/drush.phar'
(uiserver):u72756193:~/.drush > drush help
X-Powered-By: PHP/5.5.36
Content-type: text/html

Execute a drush command. Run `drush help [command]` to view command-specific help.  Run `drush topic` to read even more documentation.

Global options (see `drush topic core-global-options` for the full list):
 -d, --debug                               Display even more information, including internal messages.                                                 
 -h, --help                                This help system.                                                                                           
 -n, --no                                  Assume 'no' as answer to all prompts.                                                                       
 -r <path>, --root=<path>                  Drupal root directory to use (default: current directory).
....................................................
#automatisation via le .bashrc:
##on sauvegarde le fichier juste créé par l'initialisation de ddrush
(uiserver):u72756193:~ > cp -v .bashrc .bashrc.bak29062016
`.bashrc' -> `.bashrc.bak29062016'
##on ajoute la ligne d'alias testée juste au dessus ce qui donne:
(uiserver):u72756193:~ > diff -u .bashrc .bashrc.bak29062016
--- .bashrc	2016-06-29 10:03:06.019013976 +0200
+++ .bashrc.bak29062016	2016-06-29 10:01:33.492513308 +0200
@@ -1,4 +1,4 @@
-alias drush='php5.5 $HOME/drush.phar'
+
 
 # Include Drush bash customizations.
 if [ -f "/kunden/homepages/21/d462702613/htdocs/.drush/drush.bashrc" ] ; then

Récupération de l'alias de mon site et test

#je crée mon répertoire d'alias drussh
(uiserver):u72756193:~ > mkdir .drush/site-aliases
#je crée l'alias pour mon site
(uiserver):u72756193:~ > vim .drush/site-aliases/d8jpmena.aliases.drushrc.php
##ce qui doit donner
(uiserver):u72756193:~ > cat .drush/site-aliases/d8jpmena.aliases.drushrc.php
<?php
$aliases['dev'] = array(
   'root' => '/home/jpmena/CONSULTANT/d8jpmena',
   'uri' => 'http://d8jpmena.and',
);
$aliases['live'] = array(
   'root' => '$HOME/sites_jpm/d8jpmena',
   'uri' => 'http://jpmena.eu',
);

tests drush sur l'hébergement

se reconnecter à l'hébergement et tester l'auto-complétion

#je me reconnecte à l'hébergement
jpmena@jpmena-P34:/media/jpmena/OMS/CONSULTANT$ ssh rand


The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
#on voit ci dessous que le .absshrc n'est pas pris ne compte par défaut
##en efffet l'alias ne fonctionne pas 
(uiserver):u72756193:~ > drush help    
-bash: drush: command not found
#je force la lecture du .abshrc
(uiserver):u72756193:~ > source .bashrc
#l'alias vers drussh fonctionne 
(uiserver):u72756193:~ > drush help
X-Powered-By: PHP/5.5.36
Content-type: text/html

Execute a drush command. Run `drush help [command]` to view command-specific help.  Run `drush topic` to read even more documentation.

Global options (see `drush topic core-global-options` for the full list):
 -d, --debug                               Display even more information, including internal messages.                                                 
 -h, --help                                This help system.                                                                                           
 -n, --no                                  Assume 'no' as answer to all prompts.                                                                       
 -r <path>, --root=<path>                  Drupal root directory to use (default: current directory).                                                  
 -s, --simulate                            Simulate all relevant actions (don't actually change the system).                                           
 -l <http://example.com:8888>,             URI of the drupal site to use (only needed in multisite environments or when running on an alternate port). 
 --uri=<http://example.com:8888>                                                                                                                       
 -v, --verbose                             Display extra information about the command.                                                                
 -y, --yes                                 Assume 'yes' as answer to all prompts.

Core Drush commands: (core)
 archive-dump (ard,    Backup your code, files, and database into a single file.                                      
 archive-backup, arb)                                                                                                 
 archive-restore       Expand a site archive into a Drupal web site.  
...................................................................
#je teste l'auto-complétion des alias vers mon site (live et dev)
##ne semble pas fonctionner:
uiserver):u72756193:~ > drush @d8jpm
^M                          Content-type: text/html^M   X-Powered-By: PHP/5.5.36^M

Le test de nettoyage du cache

  • sans le raccrouci
(uiserver):u72756193:~/sites_jpm/d8jpmena > drush cr
X-Powered-By: PHP/5.5.36
Content-type: text/html
  • La difficulté/problème est dans notre cas l'absence de messages (TODO: voir comment faire apparaître ces messages):
    • mais il prend son temps et après avoir modifié le .htaccess du site pour décommenter le RewriteBase /, mon site apparaît bien !!!

Le test de sauvegarde

  • sans le raccrouci
(uiserver):u72756193:~/sites_jpm/d8jpmena > drush ard
X-Powered-By: PHP/5.5.36
Content-type: text/html
  • La difficulté/problème est dans notre cas l'absence de messages (TODO: voir comment faire apparaître ces messages):
    • par analogie avec ce qui se passe en local, on retrouve les sauvegardes:
(uiserver):u72756193:~/drush-backups/archive-dump/20160629083018 > tar tvf none.20160629_083018.tar.gz | grep .sql$
-rwxr-xr-x u72756193/ftpusers     41 2016-06-15 22:08 d8jpmena/core/modules/simpletest/files/sql-2.sql
-rwxr-xr-x u72756193/ftpusers       0 2016-06-15 22:08 d8jpmena/core/modules/system/tests/fixtures/HtaccessTest/access_test.sql
* Autre problème: la base de donnée n'a pas été identifiée (de là le nom de none pour la sauvegarde''
* TODO: voir si avec les coordonnées de la base dans le raccourci je ne pourrais pas avoir une vraie base dans la sauvegarde ...
===Comprendre les problèmes/activation des Logs===
* Pour savoir pourquoi Mon site Drupal mal-fonctionne il me faut activer les logs Drupal:
** Je me réfère à ce [https://help.1and1.com/hosting-c37630/scripts-and-programming-languages-c85099/php-c37728/enable-error-logs-a792503.html ticket d'aide 1and1]:
** et donc j'ai créé à la racine de mon site le fichier ''php.ini'' avec le contenu:
*** (Ligne 5: je donne le chemin de mon fichier de log ''d8jpmena-errors.log'')
<source lang=bash line start=1>
(uiserver):u72756193:~/sites_jpm/d8jpmena > cat php.ini 
error_reporting = E_ALL | E_STRICT
log_errors = On 
display_errors = Off 
error_log = /kunden/homepages/21/d462702613/htdocs/sites_jpm/
  • En effet je site a un problème, la log est bien créé et contient:
(uiserver):u72756193:~/sites_jpm > cat d8jpmena-errors.log
[11-Jun-2016 21:30:49 Europe/Berlin] PDOException: SQLSTATE[HY000] [2002] No such file or directory in /homepages/21/d462702613/htdocs/sites_jpm/d8jpmena/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php on line 79
  • Nous comme dans le cas où les paramètres de connexion à la base de donnée ne sont pas bons !!!!

OVH Mutualisé

  • TODO cas du RIF !!!!