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