From f27cca08ff786ceff1870147f6d6bad14d71117f Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 23 Oct 2026 00:47:32 +0200 Subject: =?UTF-8?q?dossiers=20avec=20majuscule,=20namespace=20pour=20toute?= =?UTF-8?q?s=20les=20classes,=20autoload=20psr-4,=20UserDataService::creat?= =?UTF-8?q?eZip=20d=C3=A9plac=C3=A9=20dans=20Backup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Service/Installation.php | 109 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 src/Service/Installation.php (limited to 'src/Service/Installation.php') diff --git a/src/Service/Installation.php b/src/Service/Installation.php new file mode 100644 index 0000000..ed9f20a --- /dev/null +++ b/src/Service/Installation.php @@ -0,0 +1,109 @@ +L'extension " . $extension . " est manquante.

"); + $flag = true; + } + } + if(!class_exists(\DOMDocument::class)){ // théoriquement plus fiable que extension_loaded() + echo("

L'extension dom est manquante.

"); + $flag = true; + } + + /*if(!extension_loaded('imagick') && !extension_loaded('gd')){ + echo("

il manque une de ces extensions au choix pour le traitement des images: imagick (de préférence) ou gd.

"); + $flag = true; + }*/ + // si imagick n'est pas disponible, essayer gd (reste encore à coder) + + if($flag){ + echo '

Réalisez les actions nécéssaires sur le serveur ou contactez l\'administrateur du site.
+ Quand le problème sera résolu, il vous suffira de recharger la page.

'; + die; + } + } + + static public function checkFilesAndFoldersRights(): void + { + // -- droits des fichiers et dossiers -- + $droits_dossiers = 0777; + + $flag = false; + if(!file_exists('user_data')){ + try{ + mkdir('user_data/'); + chmod('user_data/', $droits_dossiers); + } + catch(\Exception $e){ + echo '

Le dossier public/user_data introuvable et le serveur n\'a pas la permission de le créer.
+ Pour faire ça bien:
sudo -u "serveur web" mkdir /chemin/du/site/public/user_data

'; + echo $e; + $flag = true; + } + } + if(!file_exists('../var')){ + try{ + mkdir('../var'); + chmod('../var', $droits_dossiers); + } + catch(\Exception $e){ + echo $e; + $flag = true; + } + } + if(!file_exists('../var/backups')){ + try{ + mkdir('../var/backups'); + chmod('../var/backups', $droits_dossiers); // autoriser à la fois le serveur et les scripts dans bin/ + } + catch(\Exception $e){ + echo $e; + $flag = true; + } + } + + // 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

+

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.

'; + $flag = true; + } + /*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); + } + } + }*/ + if($flag){ + die; + } + + // tester les liens internes + // + + // le test de connexion à la BDD est dans le doctrine bootstrap + } +} \ No newline at end of file -- cgit v1.2.3