Projet

Général

Profil

Competences techniques apache et drupal » Historique » Révision 5

Révision 4 (Florent Torregrosa, 11/05/2013 19:54) → Révision 5/40 (Julien Enselme, 11/05/2013 21:30)

{{toc}} 

 h1. Competences techniques apache et drupal 

 h2. Savoir installer un serveur apache, phpmyadmin 

 * augmenter sa mémoire dédiée 
 * augmenter la taille maximale des fichiers pouvant être importés dans phpmyadmin 
 * post_max_size et upload_max_filesize dans /etc/php5/apache2/php.ini et /etc/php5/cli/php.ini puis restart apache 

 h2. Savoir ajouter/activer des modules pour le serveur apache (notamment le module pour les url-simplifiées) 

 * sudo a2enmod mod_rewrite 
 * sudo apt-get install curl libcurl3 libcurl3-dev php5-curl 

 h2. Savoir installer drush 

 * savoir où est installé drush : drush config 

 h2. Pouvoir utiliser un nom de domaine en local 

 Quand je vais sur assos.centrale-marseille.fr, c’est mon site local que je vois et non pas celui de centrale. 

 Constater qu’en allant sur assos.centrale-marseille.fr on tombe sur la page par defaut de notre apache (la page sur laquelle on tombe dépend de si oui ou non elle a un vhost qui la concerne). 

 * Pour les distributions basées sur Debian 
 * Pour Mageia 3 
 * Pour Fedora 

 h2. Pouvoir créer des vhost à la pelle 

 Exemple : créer le domaine titi.local 

 * Pour les distributions basées sur Debian 
 * Pour Mageia 3 
 * Pour Fedora 

 h2. Pouvoir reproduire en local un site en particulier 

 * pouvoir télécharger en local juste le minimum de fichiers 
 * le minimum c’est tout le htmltest sauf le dossier sites 
 * dans sites/ il faut ne prendre que le dossier default et le dossier du site qui nous concerne. 
 * pouvoir se démerder (script ou suite de ligne de commande ou …) pour pouvoir faire ça efficacement (une suite de commande scp n’est pas une mauvaise idée) 
 * rsync -lr --exclude nom_fichier_ou_dossier_a_exclure assos@sas1.centrale-marseille.fr:chemin_vers_dossier/* . 
 * sur sa machine se faire un dossier d6 et un dossier d7 

 * exemple dans d6 : 
 <pre> 
 cd d6 
 rsync -lr --exclude sites assos@sas1.centrale-marseille.fr:html/* . 
 mkdir sites 
 cd sites 
 rsync -lr assos@sas1.centrale-marseille.fr:html/sites/default . 
 rsync -lr assos@sas1.centrale-marseille.fr:html/sites/assos.centrale-marseille.fr.annales . (étape longue) 
 </pre> 

 h2. Pouvoir télécharger la base de donnée d’un seul site en particulier 

 * savoir faire ça avec phpmyadmin, dans phpmyadmin : 
 > * exporter 
 > * options personnalisées 
 > * choisir que les tables qui vous intéressent 
 > * laisser les autres options 
 > * enregistrer 
 > * ça enregistre dans votre dossier de téléchargements sur votre machine 

 * savoir le faire avec drush car parfois le fichier téléchargé par phpmyadmin est trop gros 

 > * sur le sas : 
 > > <pre>dump_site annales (pour une base de données isolées, se placer dans le dossier du site puis drush sql-dump > nom_du_fichier.sql) 
 cd Desktop/dump_individuels</pre> 

 > * sur sa machine : 
 > > </pre>@scp assos@sas1.centrale-marseille.fr:Desktop/dump_individuels/annales....</pre> 

 h2. Monter un site en local 

 * monter un seul vhost pour assos.centrale-marseille.fr (il sera valable pour tous les sous sites, il ne sera jamais édité) 
 * télécharger les fichiers et la base de donnée du site en question 
 * injecter la dbb en local (utiliser le phpmyadmin en local ou sudo mysql -u root -pmotdepasse nomdelabase < fichier.sql) 
 * modifier le settings.php du site en question pour donner les informations de connection mysql) 

 h2. Installer le script drush de mise à jour http://drupal.org/project/drush_sup 

 * suivre la procédure d’installation 
 * critère de validation : la commande suivante marche : drush sup 

 h2. Exécuter correctement le script de mise à jour 

 * lire la doc de drush sup 
 * exécuter drush sup avec les bons arguments 

 

 h1. Annexe : Nom de domaine 

 Normalement, toutes h2. Pour les unix reposent sur le même principe. distributions basées sous Debian 

 Ajouter l’entrée suivante dans /etc/hosts : @127.0.0.1 127.0.0.1    assos.centrale-marseille.fr@ 

 assos.centrale-marseille.fr 

 h2. Pour Mageia 3 

 Ajouter l’entrée suivante dans /etc/hosts : 127.0.0.1    assos.centrale-marseille.fr 

 h2. Pour Fedora 


 h1. Annexe : Vhosts 

 h2. Pour les distributions basées sous Debian 

 * Dans /etc/apache2/sites-available/ créer un fichier titi dont le contenu est : 
 <pre> 
 <VirtualHost *:80> 
     ServerAdmin webmaster@localhost 
     ServerName titi.local 
     ServerAlias titi.local 

     DocumentRoot /chemin/dossier_site 

     <Directory /chemin/dossier_site/> 
         Options Indexes FollowSymLinks MultiViews 
         AllowOverride All 
         Order allow,deny 
         allow from all 
     </Directory> 

     ErrorLog ${APACHE_LOG_DIR}/titi.error.log 

     # Possible values include: debug, info, notice, warn, error, crit, 
     # alert, emerg. 
     LogLevel warn 

     CustomLog ${APACHE_LOG_DIR}/titi.access.log combined 

 </VirtualHost> 
 </pre> 
 * créer le fichier test.html dans /chemin/dossier_site et mettre dedans @<h1>TITI</h1>@ 
 * ajouter un lien symbolique dans /etc/apache2/sites-enabled qui pointe sur le fichier titi qui est dans /etc/apache2/sites-available/ : 
 > * Manuellement : 
 > <pre> 
 cd /etc/apache2/sites-enabled/ 
 ln -s ../sites-available/titi . 
 </pre> 
 > * Avec la commande apache : 
 > <pre> 
 sudo service a2ensite titi 
 </pre> 
 * ajouter l’entrée titi.local dans le fichier /etc/hosts : 
 <pre> 
 @127.0.0.1          titi.local@ 
 </pre> 
 * restart apache 
 <pre> 
 sudo service apache2 restart 
 </pre> 
 * consulter    titi.local/test.html 

 h2. Pour Mageia 3 

 {{warning(la partie pour mageia permet pour l'instant d'atteindre le site via localhost/nom_du_site, pas encore bien connecté avec le fichier Hosts)}} 

 * Dans /etc/httpd/conf/sites.d/ créer un fichier nom_du_fichier.conf dont le contenu est : 
 <pre> 
 # Drupal configuration 
 Alias /nom_du_site /chemin/dossier_site 

 <Directory /chemin/dossier_site/> 
    Require local granted 
    Options -Indexes +FollowSymlinks +Multiviews 
    AllowOverride None 

     # Protect files and directories from prying eyes. 
     <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$"> 
       Order allow,deny 
     </FilesMatch> 

     # Don't show directory listings for URLs which map to a directory. 
     Options -Indexes 

     # Follow symbolic links in this directory. 
     Options +FollowSymLinks 

     # Make Drupal handle any 404 errors. 
     ErrorDocument 404 /index.php 

     # Set the default handler. 
     DirectoryIndex index.php index.html index.htm 

     # Override PHP settings that cannot be changed at runtime. See 
     # sites/default/default.settings.php and drupal_environment_initialize() in 
     # includes/bootstrap.inc for settings that can be changed at runtime. 

     # PHP 5, Apache 1 and 2. 
     <IfModule mod_php5.c> 
         php_flag magic_quotes_gpc                   off 
         php_flag magic_quotes_sybase                off 
         php_flag register_globals                   off 
         php_flag session.auto_start                 off 
         php_value mbstring.http_input               pass 
         php_value mbstring.http_output              pass 
         php_flag mbstring.encoding_translation      off 
     </IfModule> 

     # Requires mod_expires to be enabled. 
     <IfModule mod_expires.c> 
         # Enable expirations. 
         ExpiresActive On 

         # Cache all files for 2 weeks after access (A). 
         ExpiresDefault A1209600 

         <FilesMatch \.php$> 
             # Do not allow PHP scripts to be cached unless they explicitly send 
             # cache headers themselves. Otherwise all scripts would have to  
             # overwrite the headers set by mod_expires if they want another  
             # caching behavior. This may fail if an error occurs early in the 
             # bootstrap process, and it may cause problems if a non-Drupal PHP 
             # file is installed in a subdirectory. 
             ExpiresActive Off 
         </FilesMatch> 
     </IfModule> 

     # Various rewrite rules. 
     <IfModule mod_rewrite.c> 
         RewriteEngine on 

         # Block access to "hidden" directories whose names begin with a period. 
         # This includes directories used by version control systems such as 
         # Subversion or Git to store control files. Files whose names begin with 
         # a period, as well as the control files used by CVS, are protected by  
         # the FilesMatch directive above. 
         # 
         # NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, 
         # it is not possible to block access to entire directories from  
         # .htaccess, because <DirectoryMatch> is not allowed here. 
         # 
         # If you do not have mod_rewrite installed, you should remove these 
         # directories from your webroot or otherwise protect them from being 
         # downloaded. 
         RewriteRule "(^|/)\." - [F] 

         # If your site can be accessed both with and without the 'www.' prefix, 
         # you can use one of the following settings to redirect users to your 
         # preferred URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY 
         # one option:  
         # To redirect all users to access the site WITH the 'www.' prefix, 
         # (http://example.com/... will be redirected to http://www.example.com/...) 
         # uncomment the following: 
         # RewriteCond %{HTTP_HOST} !^www\. [NC] 
         # RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
         # 
         # To redirect all users to access the site WITHOUT the 'www.' prefix, 
         # (http://www.example.com/... will be redirected to http://example.com/...) 
         # uncomment the following: 
         # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
         # RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301] 

         # Modify the RewriteBase if you are using Drupal in a subdirectory or in a 
         # VirtualDocumentRoot and the rewrite rules are not working properly. 
         # For example if your site is at http://example.com/drupal uncomment and 
         # modify the following line: 
         RewriteBase /nom_du_site 
         # 
         # If your site is running in a VirtualDocumentRoot at http://example.com/, 
         # uncomment the following line: 
         # RewriteBase / 

         # Pass all requests not referring directly to files in the filesystem to 
         # index.php. Clean URLs are handled in drupal_environment_initialize(). 
         RewriteCond %{REQUEST_FILENAME} !-f 
         RewriteCond %{REQUEST_FILENAME} !-d 
         RewriteCond %{REQUEST_URI} !=/favicon.ico 
         RewriteRule ^ index.php [L] 

         # Rules to correctly serve gzip compressed CSS and JS files. 
         # Requires both mod_rewrite and mod_headers to be enabled. 
         <IfModule mod_headers.c> 
         # Serve gzip compressed CSS files if they exist and the client accepts gzip. 
         RewriteCond %{HTTP:Accept-encoding} gzip 
         RewriteCond %{REQUEST_FILENAME}\.gz -s 
         RewriteRule ^(.*)\.css $1\.css\.gz [QSA] 

         # Serve gzip compressed JS files if they exist and the client accepts gzip. 
         RewriteCond %{HTTP:Accept-encoding} gzip 
         RewriteCond %{REQUEST_FILENAME}\.gz -s 
         RewriteRule ^(.*)\.js $1\.js\.gz [QSA] 

         # Serve correct content types, and prevent mod_deflate double gzip. 
         RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1] 
         RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1] 

         <FilesMatch "(\.js\.gz|\.css\.gz)$"> 
             # Serve correct encoding type. 
             Header set Content-Encoding gzip 
             # Force proxies to cache gzipped & non-gzipped css/js files  
             # separately. 
             Header append Vary Accept-Encoding 
         </FilesMatch> 
         </IfModule> 
     </IfModule> 

 </Directory> 
 </pre> 
 {{tip(Pour ce fichier de configuration, se baser sur celui fournit par Mageia lors de l'installation d'un Drupal depuis la logithèque de Mageia.)}} 

 * créer un dossier (avec un Drupal dedans) appelé dossier_site dans /chemin/ 
 * restart apache 
 <pre> 
 sudo service httpd stop 
 sudo service httpd start 
 </pre> 

 * consulter    localhost/nom_du_site 


 h2. Pour Fedora