From 2c47085b27253c4ad2d062d15c18c3a8c7591298 Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 10 May 2026 13:50:30 +0200 Subject: =?UTF-8?q?mysqldump,=20t=C3=A9l=C3=A9chargement=20d'un=20.sql=20e?= =?UTF-8?q?t=20stockage=20des=20sauvegardes=20dans=20/var/backups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/Installation.php | 47 ++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 15 deletions(-) (limited to 'src/service/Installation.php') diff --git a/src/service/Installation.php b/src/service/Installation.php index 059c093..eb4b6db 100644 --- a/src/service/Installation.php +++ b/src/service/Installation.php @@ -9,10 +9,9 @@ class Installation { $flag = false; $extensions = ['pdo_mysql', 'mbstring', 'ctype', 'json', 'tokenizer', 'imagick']; // les 5 premières sont pour doctrine - // ajouter plus tard zip pour les backup + // ajouter plus tard zlib pour la compression des backups foreach($extensions as $extension){ - if(!extension_loaded($extension)) - { + if(!extension_loaded($extension)){ echo("

l'extension " . $extension . ' est manquante

'); $flag = true; } @@ -34,8 +33,8 @@ class Installation static public function checkFilesAndFoldersRights(): void { // -- droits des fichiers et dossiers -- - $droits_dossiers = 0700; - $droits_fichiers = 0600; + $droits_dossiers = 0755; + $droits_fichiers = 0644; if(!file_exists('user_data')){ // créer le dossier user_data @@ -46,25 +45,43 @@ class Installation

Aide: "serveur web" se nomme "www-data" sur debian et ubuntu, il s\'appelera "http" sur d\'autres distributions.

'; die; } + if(!file_exists('../var')){ + mkdir('../var'); + chmod('../var', $droits_dossiers); + // + } + if(!file_exists('../var/backups')){ + mkdir('../var/backups'); + chmod('../var/backups', $droits_dossiers); + // + } + // droits 600 pour celui-ci if(!file_exists('../config/config.ini')){ // aide à la création du config.ini echo '

Le fichier config/config.ini est introuvable.

'; echo '

Il doit obligatoirement contenir les codes de la base de données, le protocole http ou https (et éventuellement le port) utilisé pour créer les liens internes.
Un modèle est disponible, il s\'agit du fichier config/config-template.ini

-

Quand vous aurez terminé votre config.ini, donnez-lui par sécurité des droits 600.

'; +

Ce fichier a une importance critique. Si vous le pouvez faites en sorte que le serveur en soit le propriétaire et donner lui des droits 600.

'; die; } - else{ - // droits du config.ini - /*if(substr(sprintf('%o', fileperms('../config/config.ini')), -4) != 600){ - chmod('../config/config.ini', $droits_fichiers); - }*/ + /*else{ + // propriétaire du fichier + if(fileowner('../config/config.ini') != posix_geteuid()){ + echo "

le fichier config/config.ini n'appartient pas au serveur.

"; + } + else{ + // droits du config.ini + if(substr(sprintf('%o', fileperms('../config/config.ini')), -4) != 600){ + echo '

Attention, le

'; + //chmod('../config/config.ini', $droits_fichiers); + } + } + }*/ - // tester les liens internes - // + // tester les liens internes + // - // le test de connexion à la BDD est dans le doctrine bootstrap - } + // le test de connexion à la BDD est dans le doctrine bootstrap } } \ No newline at end of file -- cgit v1.2.3