Préparation

Vous devrez suivre quelques étapes pour préparer l’installation de Galette. La manière de faire dépend de ce que vous souhaitez faire.

Permissions des fichiers

Avertissement

Un contournement fréquemment utilisé est de donner tous les droits à tout le monde (chmod 777). C’est une très, très mauvaise manière de faire d’un point de vue sécurité. Merci de ne pas faire ça, vous êtes prévenus ;)

Certains répertoires de Galette demandent des droits particuliers. L’application peut avoir à écrire dans certains d’entre eux, vou devrez vous assurer que c’est possible. Voici les dossiers qui demandent les droits en écriture :

  • config 1,

  • data/attachments,

  • data/cache,

  • data/exports,

  • data/files,

  • data/imports,

  • data/logs,

  • data/photos,

  • data/tempimages,

  • data/templates_c

1

l’accès en écriture sur le dossier config est uniquement requis lors de l’installation de Galette. Il est fortement conseillé de les enlever une fois l’installation terminée :)

Créer la base de données

Note

N’utilisez jamais l’utilisateur root !

Pour des raisons de sécurité, il est fortement conseillé d’utiliser un utilisateur spécifique à la base de données de Galette, et de ne lui donner que les droits requis sur la base de données de Galette.

Par exemple, nous utiliserons une base de données nommée mygalette avec un utilisateur mygaletteuser ayant pour mot de passe mypass.

  • MariaDB

    $ mysql -u root -p
    mysql> CREATE DATABASE mygalette;
    mysql> GRANT ALL ON magalette.* to
        ->'mygaletteuser'@'localhost' IDENTIFIED BY 'mypass';
    
  • PostgreSQL

    $ su -
    # su - postgres
    $ createuser -P mygaletteuser
    $ createdb -O mygaletteuser mygalette
    

Ces commandes peuvent varier, reportez-vous aux documentation MariaDB ou PostgreSQL, ou utilisez un outil graphique :

Exposition des dossiers sur le serveur web

Nouveau dans la version 0.9.

L’installation de Galette peut consister à copier un dossier complet à un endroit que le serveur web peut lire. Cette méthode peut fonctionner, mais elle expose des fichiers et dossiers sur les web alors qu’ils ne devraient pas forcément être accessibles de cette manière.

Il est possible de limiter cela en n’exposant que le dossier webroot. Tous les autres dossiers seront ainsi davantage en sécurité puisque non accessibles depuis le web !

Avertissement

L’exposition du seul dossier webroot est la manière recommandée, et la seule qui soit sécurisée.

Utiliser un sous-domaine

Voici un exemple de configuration d’un hôte virtuel, y compris le masquage de 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>

Pour Nginx, ce 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;
        # You may have to adapt this path, depending on your distribution.
        fastcgi_pass unix:/var/run/php7.0-fpm.sock;
    }

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

Utiliser un alias

Une solution sécurisée alternative, si vous n’avez pas de sous-domaine spécifique pour Galette est d’utiliser un alias dans votre hôte virtuel existant :

<VirtualHost *:80>
    ServerName mydomain.tld

    DocumentRoot /var/www/mydomain.tld

    Alias /mygalette/ /var/www/galette/galette/webroot/
    <Directory /var/www/galette/galette/webroot/>
        RewriteEngine On
        #You need to set RewriteBase to Alias path
        RewriteBase /mygalette/
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>

N’oubliez pas avec cette solution que vous devez définir correctement votre directive RewriteBase.

Linux/Unix

Installer Galette sous Linux implique que vous ayez accès à une console sur le serveur, et les droits requis sur les répertoires.

Par exemple, sur 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.

Sur les systèmes avec SELinux activé, on ajoutera :

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

Vous devrez aussi autoriser le serveur web à se connecter au réseau, avec un booléen SELinux :

# setsebool httpd_can_network_connect on

FTP

Avertissement

Certains logiciels d’archives ou de transfert FTP peuvent corrompre les fichiers… Il est fortement conseillé si vous êtes sous Windows d’utiliser 7zip pour décompresser les archives et FileZilla pour les transferts FTP.

Une fois que le code source est récupéré en local ; utilisez tar xjvf galette.tar.bz2 sous Linux/Unix/MacOS ou un outil de gestion graphique sous Windows.

Copiez simplement le dossier obtenu après décompression, ainsi que tous les fichiers et dossiers qu’ils contient, à l’aide de votre client FTP.

../_images/filezilla.jpg

Cas particuliers

Ionos

Si vous êtes hébergé chez Ionos ; et que vous voulez utiliser un sous domaine spécifique pour Galette, vous devez créer votre sous domaine depuis leur interface, et le faire pointer sur le dossier webroot. Vous devrez également modifier le fichier .htaccess qu’il contient, et décommenter la directive RewriteBase /.

OVH

Cette société d’hébergement offre de changer la version de PHP utilisée depuis l’interface client.

Des informations complémentaires sont également disponibles : https://docs.ovh.com/fr/fr/web/hosting/configurer-le-php-sur-son-hebergement-web-mutu-2014/

Avertissement

Beaucoup d’utilisateurs ont rencontré des problèmes de chargement d’images, ou de la liste d’émargement chez OVH. La solution à ce problème est de créer un fichier .ovhconfig à la racine de votre hébergement avec le contenu suivant :

app.engine=phpcgi

Nginx

La configuration du serveur web Nginx es différente de celle d’Apache (voir la documentation de Nginx pour de plus amples informations).

Donc vous devrez convertir les fichiers de restriction d’accès dans la configuration Nginx, comme par exemple :

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

Windows

L’installation décrite ici repose sur XAMPP <https://www.apachefriends.org/fr/xampp-windows.html> ; d’autres méthodes existent mais ne sont pas listées ici.

Tout d’abord, téléchargez XAMPP sur votre ordinateur. installons le dans C:\xampp.

../_images/xampp_directory.jpg

Lancez le programme xampp-control (vous le trouverez dans C:xampp`), vous pourrez ainsi lancer les services Apache et MySQL.

../_images/xampp_control.jpg

Une fois ces étapes terminées, téléchargez Galette et déplacez le dans C:\wampp\htdocs\galette, l’application sera accessible depuis http://127.0.0.1/galette/. Ouvrez simplement cette URL pour que le processus d’installation démarre.

Note

L’activation de modules PHP sous XAMPP se fait dans xampp/php/php.ini`. La plupart des extensions requises sont déjà présentes, mais sont commentées (la ligne commence par un « ; »), dé-commentez les simplement et relancez XAMPP.

L’extension openssl est absente du fichier, pour l’activer, ajoutez simplement ceci à votre php.ini : extension=php_openssl.dll