aboutsummaryrefslogtreecommitdiff
path: root/src/service/Installation.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/Installation.php')
-rw-r--r--src/service/Installation.php107
1 files changed, 0 insertions, 107 deletions
diff --git a/src/service/Installation.php b/src/service/Installation.php
deleted file mode 100644
index f7de2cf..0000000
--- a/src/service/Installation.php
+++ /dev/null
@@ -1,107 +0,0 @@
1<?php
2// src/service/Installation.php
3
4declare(strict_types=1);
5
6class Installation
7{
8 static public function phpDependancies(): void
9 {
10 $flag = false;
11 $extensions = ['pdo_mysql', 'mbstring', 'ctype', 'json', 'tokenizer', 'imagick', 'zip']; // les 5 premières sont pour doctrine
12 // ajouter plus tard zlib pour la compression des backups
13 foreach($extensions as $extension){
14 if(!extension_loaded($extension)){
15 echo("<p>L'extension <b>" . $extension . "</b> est manquante.</p>");
16 $flag = true;
17 }
18 }
19 if(!class_exists(DOMDocument::class)){ // théoriquement plus fiable que extension_loaded()
20 echo("<p>L'extension <b>dom</b> est manquante.</p>");
21 $flag = true;
22 }
23
24 /*if(!extension_loaded('imagick') && !extension_loaded('gd')){
25 echo("<p>il manque une de ces extensions au choix pour le traitement des images: <b>imagick</b> (de préférence) ou <b>gd</b>.</p>");
26 $flag = true;
27 }*/
28 // si imagick n'est pas disponible, essayer gd (reste encore à coder)
29
30 if($flag){
31 echo '<p>Réalisez les actions nécéssaires sur le serveur ou contactez l\'administrateur du site.<br>
32 Quand le problème sera résolu, il vous suffira de <a href="#">recharger la page<a>.</p>';
33 die;
34 }
35 }
36
37 static public function checkFilesAndFoldersRights(): void
38 {
39 // -- droits des fichiers et dossiers --
40 $droits_dossiers = 0777;
41
42 $flag = false;
43 if(!file_exists('user_data')){
44 try{
45 mkdir('user_data/');
46 chmod('user_data/', $droits_dossiers);
47 }
48 catch(Exception $e){
49 echo '<p style="color: red;">Le dossier public/user_data introuvable et le serveur n\'a pas la permission de le créer.<br>
50 Pour faire ça bien:<br>sudo -u "serveur web" mkdir /chemin/du/site/public/user_data</p>';
51 echo $e;
52 $flag = true;
53 }
54 }
55 if(!file_exists('../var')){
56 try{
57 mkdir('../var');
58 chmod('../var', $droits_dossiers);
59 }
60 catch(Exception $e){
61 echo $e;
62 $flag = true;
63 }
64 }
65 if(!file_exists('../var/backups')){
66 try{
67 mkdir('../var/backups');
68 chmod('../var/backups', $droits_dossiers); // autoriser à la fois le serveur et les scripts dans bin/
69 }
70 catch(Exception $e){
71 echo $e;
72 $flag = true;
73 }
74 }
75
76 // droits 600 pour celui-ci
77 if(!file_exists('../config/config.ini')){
78 // aide à la création du config.ini
79 echo '<p>Le fichier config/config.ini est introuvable.</p>';
80 echo '<p>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.<br>
81 Un modèle est disponible, il s\'agit du fichier config/config-template.ini</p>
82 <p>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.</p>';
83 $flag = true;
84 }
85 /*else{
86 // propriétaire du fichier
87 if(fileowner('../config/config.ini') != posix_geteuid()){
88 echo "<p>le fichier config/config.ini n'appartient pas au serveur.</p>";
89 }
90 else{
91 // droits du config.ini
92 if(substr(sprintf('%o', fileperms('../config/config.ini')), -4) != 600){
93 echo '<p>Attention, le </p>';
94 //chmod('../config/config.ini', $droits_fichiers);
95 }
96 }
97 }*/
98 if($flag){
99 die;
100 }
101
102 // tester les liens internes
103 //
104
105 // le test de connexion à la BDD est dans le doctrine bootstrap
106 }
107} \ No newline at end of file