Projet

Général

Profil

Afin de monter des sites correctement en local il est bon de maîtriser les points détaillés ci-après.

Différences majeures entre les distributions

Bien que parfois très semblables, les distributions GNU/Linux diffèrent dans leur fonctionnement. Afin de bien comprendre la suite de ce document et d’éviter quelques incompréhensions, nous proposons une liste des différences majeures et des points principaux à adapter. La liste de distribution donnée dans chaque type n’est aucunement exhaustive, tout comme la liste des points de différences.

Le nom du service apache

  • Pour les distribution basées sur Debian (Ubuntu, Linux Mint,…) : le service s’appelle apache2
  • Pour les distributions typées RedHat (Fedora, CentOS,…) : le service s’appelle httpd

Interaction avec les services

Historiquement les distributions utilisaient le service init pour démarrer et la commande service pour interragir avec les services de la façon suivante : service apache2 restart. Cela est toujours le cas sur Debian.

De plus en plus de distributions (Fedora, Mageia, OpenSUSE,…) utilisent de nos jours systemd qui gèrent aussi les services via la commande systemctl de la façon suivante : systemctl restart httpd. La commande service est dans la plupart des cas toujours opérationnelle pour des raisons de compatibilités.

Activation des modules Apache

L’activation explicite des modules dépend de votre distributions.

Emplacements des fichiers de configuration

Suivant votre distribution l’emplacement des fichiers de configuration peut varier. Il y a une constante toute fois : ils sont souvent dans /etc/NOM_DU_SERVICE.

Installer et configurer Apache, phpmyadmin

  • savoir installer un serveur apache et phpmyadmin (dépend de votre système)
  • augmenter sa mémoire dédiée
  • avoir drush d'installer (peut-être présent dans les dépôts de votre distributions) et savoir où il est installé : which drush
  • augmenter la taille maximale des fichiers pouvant être importés dans phpmyadmin (dans le(s) php.ini, la méthode suivante est basée sur les systèmes basés sur debian. À adapter pour votre système.). Il faut trouver et modifier les lignes suivantes dans /etc/php5/apache2/php.ini et /etc/php5/cli/php.ini

  • memory_limit = 512M;

  • post_max_size = 32M;

  • upload_max_filesize = 32M;

  • redémarrer apache

  • savoir recharger la configuration d’apache et le redémarrer : service apache2 reload et service apache2 restart

Savoir activer des modules apache

  • sudo a2enmod mod_rewrite ou sudo a2enmod rewrite
  • sudo a2ensite NOM_DU_SITE

Savoir installer drush et les bibliothèques php

  • Si drush est fourni dans les dépôts de votre distribution, l’installer depuis ceux-ci. Si votre distribution fourni également drupal, il peut être intéressant de l’installer également pour avoir la liste des dépendances. L’installation de drupal via drush est la méthode recommandée.
  • Savoir où est installé drush : drush config
  • Dépendances supplémentaires utiles : sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

Pour plus d’information sur Drush, consulter la page dédiée.

Pouvoir utiliser un nom de domaine en local

Quand je vais sur assos.centrale-marseille.fr, c’est mon site local que je veux voir et non pas celui de centrale. Il suffit de modifier le fichier hosts, situé dans /etc en ajoutant la ligne

127.0.0.1  assos.centrale-marseille.fr

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 la configuration d’apache). On peut vérifier avec le module Firefox show ip qui donne l’IP du site sur lequel on est. Si l’IP affichée est 127.0.0.1, c’est bon.

Pouvoir créer des vhost

La méthode est donnée en annexe ici

Pouvoir reproduire en local un site en particulier

Pouvoir télécharger en local juste le minimum de fichiers. Le minimum c’est :

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

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

Avec drush

Indispensable car parfois le fichier téléchargé par phpmyadmin est trop gros et dépasse la limite autorisée.

# sur le sas, pour le site des annales par exemple :

<code>dump_site annales</code>
<code>cd Desktop/dump_individuels</code>

ou si le site est dans une base de données séparée :

<code>cd DOSSIER DU SITE</code>
<code>drush sql-dump > fichier.sql</code>

# sur sa machine :

scp assos@sas1.centrale-marseille.fr:Desktop/dump_individuels/annalesDATE .

Il existe peut-être une commande drush qui fait tout. À creuser.

Monter un site en local

  1. Monter un seul vhost pour assos.centrale-marseille.fr (il sera valable pour tous les sous sites, il ne sera jamais édité)
  2. Télécharger les fichiers et la base de donnée du site en question
  3. Injecter la dbb en local (utiliser le phpmyadmin en local ou mysql -u root -pmotdepasse nomdelabase < fichier.sql ou dursh sql-cli < fichier.sql ou en un coup drushsitedepart sql-dump | drush sitearrive sql-cil)
  4. Modifier le settings.php du site en question pour donner les informations de connection mysql et modifier $base_url
  5. Pour aller plus vite, renommer le dossier du site en default
  6. Désactiver le mode maintenance drush vset maintenance_mode 0 et les urls simplifiées si besoin drush vset clean_url 0
  7. Activer éventuellement les rapports d’erreurs drush vset error_level NB
  8. Vider les caches

Installer le script drush de mise à jour

  • suivre la procédure d’installation donnée ici
  • critère de validation : la commande suivante marche : drush sup

Exécuter correctement le script de mise à jour

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

Alias drush

Voir la section correspondante dans la page traitant de Drush.

Annexe : Nom de domaine

Il est tout à fait possible de faire pointer n’importe quel nom de domaine sur sa machine locale. Normalement, toutes les unix reposent sur le même principe. Il suffit d’ajouter l’entrée suivante dans /etc/hosts (par exemple pour assos) : 127.0.0.1 assos.centrale-marseille.fr.

Ne pas oublier de relancer apache.

Annexe : Vhosts

Exemple : créer le domaine titi.local

Pour les distributions basées sous Debian

  • Dans /etc/apache2/sites-available/ créer un fichier titi. Le contenu de titi est :

<!-- -->

<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>
  • Créer le fichier test.html dans /chemin/dossier_site et mettre dedans
<h1>TITI</h1>
  • Activer le site : sudo a2ensite titi
  • ou
  • Ajouter un lien symbolique dans /etc/apache2/sites-enabled qui pointe sur le fichiet titi qui est dans /etc/apache2/sites-available/ pour activer le site (méthode manulle)

  • cd /etc/apache2/sites-enabled/

  • ln -s ../sites-available/titi .

  • Ajouter l’entrée titi.local dans le fichier /etc/hosts

    127.0.0.1 titi.local

  • Redémarrer apache : sudo service apache2 restart

  • Consulter titi.local/test.html

Pour Fedora et les distributions basées sur RHEL (CentOS, Scientific Linux…)

  • Dans /etc/httpd/conf.d/ créer un fichier titi.conf. Le contenu de titi est :

<!-- -->

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

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

</VirtualHost>
  • Créer le fichier test.html dans /chemin/dossier_site et mettre dedans
<h1>TITI</h1>
  • Ajouter l’entrée titi.local dans le fichier /etc/hosts

    127.0.0.1 titi.local

  • Redémarrer apache :

  • Fedora >= 15 (basées sur systemd) : systemctl restart httpd

  • Fedora < 15, CentOS… service httpd restart

  • Consulter titi.local/test.html

Pour Mageia 3

  • Dans /etc/httpd/conf/sites.d/ créer un fichier nom_du_fichier.conf dont le contenu est :

    ServerAdmin webmaster@localhost

    ServerAlias alias_du_site_dans_le_ficher_hosts

    DocumentRoot /chemin/dossier_site

    Options FollowSymLinks Includes ExecCGI MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
    Satisfy any
    deny from none

    ErrorLog /var/log/httpd/nom_du_site-error.log
    CustomLog /var/log/httpd/nom_du_site-access.log combined

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

  • créer un dossier (avec un Drupal dedans) appelé dossier_site dans /chemin/

  • restart apache

    sudo systemctl restart httpd.service

  • consulter alias_du_site_dans_le_ficher_hosts