Préparation

Quelques étapes de préparation sont requises pour l’installation de Galette. La façon de faire va dépendre de ce que vous souhaitez faire.

Droits des fichiers

Avertissement

Une astuce malheureusement communément répandue consiste à donner tous les droits à tout le monde sur le dossier (chmod 777). Ceci est une très très mauvaise idée en termes de sécurité, nous vous déconseillons fortement cette pratique pour l’installation de Galette, vous êtes prévenus :-D

Il faut porter une attention particulière aux droits de certains dossiers de Galette. En effet, l’application aura besoin d’écrire dans certains d’entre eux, il faut nous assurer qu’elle le pourra.

Le processus d’installation ne vous permettra pas d’installer Galette s’il ne lui est pas possible d’écrire dans les dossiers adéquats :

  • config [1],
  • data/attachments,
  • data/cache,
  • data/exports,
  • data/files,
  • data/imports,
  • data/logs,
  • data/photos,
  • data/tempimages,
  • data/templates_c
[1]Les droits en écriture dans le dossier config sont requis uniquement le temps de l’installation de Galette, nous vous conseillons de les supprimer une fois votre Galette installée :-)

Exposition des dossiers par le serveur web

Nouveau dans la version 0.9.

L’installation par défaut de Galette (et de beaucoup d’autres applications web) se résume souvent à copier un dossier complet dans un endroit accessible par le serveur web. Cette manière de procéder fonctionne sans problèmes, mais elle expose depuis la web des fichiers qui ne devraient pas l’être (en gros, toute la mécanique interne, les fichiers de configuration, …).

Il est possible avec Galette de limiter cela en n’exposant que le seul dossier webroot depuis le serveur web. Tous les autres dossiers seront davantage protégés ; il ne seront purement et simplement plus du tout accessibles depuis le serveur web lui même.

Note

Cette manière de faire est fortement conseillée si vous avez la possibilité de créer des hôtes virtuels sur votre hébergement.

Ce ne sera souvent pas le cas malheureusement avec les hébergements mutualisés.

Voici un exemple de configuration valable pour les serveurs Apache, incluant la « disparition » du index.php :

<VirtualHost *:80>
    ServerName galette.localhost

    #https - add *:443 in the <VirtualHost>
    #SSLEngine on
    #SSLProtocol all -SSLv2 -SSLv3
    #Header always add Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

    #SSLCertificateFile /etc/pki/tls/certs/galette.localhost.crt
    #SSLCertificateChainFile /etc/pki/tls/certs/galette.localhost.chain.crt
    #SSLCertificateKeyFile /etc/pki/tls/private/galette.localhost.key

    DocumentRoot /var/www/galette/galette/webroot/
    <Directory /var/www/galette/galette/webroot/>
        RewriteEngine On
        #You may need to set RewriteBase if you setup
        #rewritting in a .htaccess file for example.
        #RewriteBase /
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>

L’équivalent pour Nginx serait :

server {
    #http
    listen 80
    listen [::]:80;

    # https
    #listen 443 ssl http2;
    #listen [::]:443 ssl http2;
    #ssl_certificate      /etc/ssl/certs/galette.localhost.pem;
    #ssl_certificate_key  /etc/ssl/private/galette.localhost.key;

    server_name galette.localhost;

    root /var/www/galette/galette/webroot;

    index index.html index.php;

    location / {
        try_files $uri $uri/ @galette;
    }

    location @galette {
        rewrite ^(.*)$ /index.php last;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php7.0-fpm.sock;
    }
}

location ~ /(data|config|lib)/ {
    deny all;
}

Linux/Unix

L’installation de Galette sous Linux pré-suppose uniquement que vous ayez l’accès à un terminal sur le serveur, et les autorisations nécessaires pour adapter les droits sur les dossiers.

Par exemple, sous Fedora, vous lancerez (en root) :

# cd /var/www/galette/
# chown -R apache:apache config data

Sous Debian, on remplacera apache:apache par www-data:www-data.

Pour les systèmes protégés par SELinux, on entrera de surcroît :

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/galette/config(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/galette/data(/.*)?'
# restorecon -R -v /var/www/html/galette/

De plus, vous devrez autoriser le serveur web à se connecter au réseau via un booléen SELinux :

# setsebool httpd_can_network_connect on

FTP

Avertissement

Certains logiciels utilisés pour la décompression de l’archive, ou pour l’envoi des fichiers en FTP peuvent corrompre les fichiers… Il est fortement recommandé sous Windows d’avoir recours à 7zip pour la décompression et à FileZilla pour l’envoi des fichiers.

Une fois les sources récupérées en local, utilisez la commande tar xjvf galette.tar.bz2 sous Linux/Unix/MacOS ou le logiciel libre 7zip sous Windows.

Envoyez ensuite à l’emplacement prévu chez votre hébergeur, le dossier décompressé (ainsi que l’ensemble des dossiers et fichiers extraits) via un client FTP, par exemple le logiciel libre FileZilla.

../_images/filezilla.jpg

Cas particuliers

Nginx

Le serveur web Nginx adopte une configuration différente de celle d’Apache (consultez la documentation de Nginx pour une explication plus complète).

Il conviendra donc traduire les règles de restriction d’accès aux données dans la configuration Nginx. Par exemple :

location ~ /(data|config|lib)/ {
    deny all;
}

Windows

L’installation présentée ici repose sur XAMPP ; il existe d’autres méthodes d’installation qui ne seront pas décrites ici.

Dans un premier temps, il faudra donc télécharger et installer XAMPP sur votre poste. Installons tout cela dans C:\xampp.

../_images/xampp_directory.jpg

Lancez ensuite le programme xampp-control (qui se trouve dans C:\xampp), afin de démarrer les services Apache et MySQL.

../_images/xampp_control.jpg

Une fois ces étapes effectuées, il vous faudra récupérer Galette et la placer dans le dossier C:\wampp\htdocs\galette, l’application sera alors accessible à l’adresse http://127.0.0.1/galette/. Il suffit de visiter cette adresse pour que le processus d’installation se lance.

Note

L’activation de modules PHP sous XAMPP se fait dans le fichier xampp/php/php.ini. La plupart des extensions requises sont déjà présentes, mais commentées (ligne précédée d’un point-virgule) ; il suffira alors de décommenter les lignes adéquates, et de relancer XAMPP.

L’extension openssl n’est pas présente dans le fichier, il faudra pour l’activer ajouter la ligne suivante à votre php.ini extension=php_openssl.dll