aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-12-23 23:20:03 +0100
committerpolo <ordipolo@gmx.fr>2025-12-23 23:20:03 +0100
commit0ec35c94c77a36894ce7d30fce290412f25b3e0e (patch)
treee3cea70569f08b347aba3a5f5d951958ce408420
parent4c25387cb0f8798bd04b74306d79ec6999fe08ee (diff)
downloadcms-0ec35c94c77a36894ce7d30fce290412f25b3e0e.tar.gz
cms-0ec35c94c77a36894ce7d30fce290412f25b3e0e.tar.bz2
cms-0ec35c94c77a36894ce7d30fce290412f25b3e0e.zip
config-template.ini, droits dossier user_data
-rw-r--r--config/config-template.ini12
-rw-r--r--public/index.php2
-rw-r--r--src/Config.php2
-rw-r--r--src/installation.php42
4 files changed, 36 insertions, 22 deletions
diff --git a/config/config-template.ini b/config/config-template.ini
new file mode 100644
index 0000000..fdb536d
--- /dev/null
+++ b/config/config-template.ini
@@ -0,0 +1,12 @@
1[database]
2db_host="localhost"
3database="cms"
4db_driver="pdo_mysql"
5user=""
6password=""
7table_prefix="cms_"
8
9[URL]
10protocol="http"
11;port="80"
12index_path=""
diff --git a/public/index.php b/public/index.php
index b5b1f7e..be2e85b 100644
--- a/public/index.php
+++ b/public/index.php
@@ -38,7 +38,7 @@ URL::setHost($_SERVER['HTTP_HOST'] . Config::$index_path);
38// les messages d'erreur de déploiement qu'on aime 38// les messages d'erreur de déploiement qu'on aime
39require('../src/installation.php'); 39require('../src/installation.php');
40phpDependancies(); 40phpDependancies();
41//installation(); // des mkdir et chmod, chiant en dev 41installation(); // droits des dossiers et fichier config.ini
42 42
43// $entityManager 43// $entityManager
44require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter 44require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter
diff --git a/src/Config.php b/src/Config.php
index 662344b..76b34e2 100644
--- a/src/Config.php
+++ b/src/Config.php
@@ -41,7 +41,7 @@ class Config
41 } 41 }
42 else 42 else
43 { 43 {
44 echo "le fichier config.ini n'existe pas ou n'est pas lisible"; 44 echo "<p>Le fichier config/config.ini n'existe pas ou n'est pas lisible.</p>";
45 } 45 }
46 define('TABLE_PREFIX', self::$table_prefix); 46 define('TABLE_PREFIX', self::$table_prefix);
47 } 47 }
diff --git a/src/installation.php b/src/installation.php
index 78f1768..2bef8e5 100644
--- a/src/installation.php
+++ b/src/installation.php
@@ -10,7 +10,7 @@ use App\Entity\Asset;
10use Doctrine\Common\Collections\ArrayCollection; 10use Doctrine\Common\Collections\ArrayCollection;
11use Doctrine\ORM\EntityManager; 11use Doctrine\ORM\EntityManager;
12 12
13function phpDependancies() 13function phpDependancies(): void
14{ 14{
15 $flag = false; 15 $flag = false;
16 //$extensions = ['pdo_mysql', 'mbstring', 'ctype', 'json', 'tokenizer', 'zip', 'dom']; // les 5 premières sont pour doctrine 16 //$extensions = ['pdo_mysql', 'mbstring', 'ctype', 'json', 'tokenizer', 'zip', 'dom']; // les 5 premières sont pour doctrine
@@ -33,31 +33,33 @@ function phpDependancies()
33 } 33 }
34} 34}
35 35
36// inutilisée pour l'instant
37function installation(): void 36function installation(): void
38{ 37{
39 /* -- droits des fichiers et dossiers -- */ 38 // -- droits des fichiers et dossiers --
40 $droits_dossiers = 0700; 39 $droits_dossiers = 0700;
41 $droits_fichiers = 0600; 40 $droits_fichiers = 0600;
42 41
43 // accès interdit en HTTP 42 if(!file_exists('user_data')){
44 if(!file_exists('../config/.htaccess')){ 43 // créer le dossier user_data
45 $contenu = <<< HTACCESS 44 mkdir('user_data/');
46<Files "config.ini"> 45 chmod('user_data/', $droits_dossiers);
47 Order Allow,Deny 46 echo '<p style="color: red;">Le dossier public/user_data introuvable et le serveur n\'a pas la permission de le créer.<br>
48 Deny from all 47 Pour faire ça bien:<br>sudo -u "serveur web" mkdir /chemin/du/site/public/user_data</p>
49</Files> 48 <p>Aide: "serveur web" se nomme "www-data" sur debian et ubuntu, il s\'appelera "http" sur d\'autres distributions.</p>';
50HTACCESS; 49 die;
50 }
51 51
52 $fichier = fopen('../config/.htaccess', 'w'); 52 if(!file_exists('../config/config.ini')){
53 fputs($fichier, $contenu); 53 // aide à la création du config.ini
54 fclose($fichier); 54 echo '<p>Ce fichier contient les codes de la base de données et quelques paramètres utilisés pour créer les liens internes.<br>
55 chmod('../config/.htaccess', $droits_fichiers); 55 Un modèle est disponible, il s\'agit du fichier config/config-template.ini</p>
56 //echo("danger<br>pas de .htaccess dans config<br>prévenez le responsable du site"); 56 <p>Quand vous aurez terminé votre config.ini, donnez-lui si possible des droits 600.</p>';
57 //die; 57 die;
58 } 58 }
59}
59 60
60 // accès limité en local (600) pour config.ini 61/*
62 // droits du config.ini
61 if(substr(sprintf('%o', fileperms('../config/config.ini')), -4) != 600){ 63 if(substr(sprintf('%o', fileperms('../config/config.ini')), -4) != 600){
62 chmod('../config/config.ini', $droits_fichiers); 64 chmod('../config/config.ini', $droits_fichiers);
63 } 65 }
@@ -82,7 +84,7 @@ HTACCESS;
82 die; 84 die;
83 } 85 }
84 } 86 }
85} 87*/
86 88
87// création d'un site minimal avec une page d'accueil à la toute 1ère visite du site 89// création d'un site minimal avec une page d'accueil à la toute 1ère visite du site
88// fonctiona appelée après la première requête envoyée en BDD, 90// fonctiona appelée après la première requête envoyée en BDD,