forked from jelix/jelix-manuel-fr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
configurer-server.gtw
233 lines (180 loc) · 7.69 KB
/
configurer-server.gtw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
~~LANG:EN@enman:application-configuration~~
===== Configuration de PHP =====
* @@V@magic_quotes_gpc@@ et @@V@magic_quotes_runtime@@ doivent être à
@@L@Off@@. Si ce n'est pas le cas, [[plugins/coord|il faut activer le plugin magicquotes]] livré avec jelix.
* @@V@session.auto_start@@ doit être à 0
* @@V@safe_mode@@ doit être à @@L@Off@@ (À cause des nombreux fichiers
temporaires créés par jelix, il peut être difficile de configurer une
installation avec Jelix avec le safe_mode activé)
Il est également recommandé de mettre ces valeurs :
* @@V@register_globals = off@@
* @@V@asp_tags = off@@
* @@V@short_open_tag = off@@
Un [[phpapi:phpinfo|phpinfo()]] peut vous permettre de vérifier votre
configuration. Par défaut la configuration se trouve dans un fichier nommé
@@F@php.ini@@.
==== Sur un serveur OVH mutualisé ====
Si votre serveur de production est chez OVH, vous devez spécifier que vous
utilisez PHP 5 (par défaut c'est PHP 4), sinon il y a des parse error. Ça se
fait via le fichier ".htaccess" qui sera à la racine publique du site (www/) et
vous devez indiquer :
SetEnv PHP_VER 5
SetEnv SESSION_USE_TRANS_SID 0
La seconde ligne indique qu'il ne faut pas passer le cookie de session dans l'URL.
===== Configuration du serveur =====
Voici ce qu'il faut configurer au niveau du serveur.
Note : À chaque fois que vous modifiez la configuration du serveur web pour
votre site, il faut supprimer les fichiers temporaires de jelix (dans
@@F@temp/myapp@@ etc par ex), afin que Jelix prenne en compte la nouvelle
configuration.
Exemple :
<code bash>
sudo rm -rf temp/myapp/*
</code>
==== Si vous pouvez spécifier le document root ====
Si vous pouvez spécifier la racine du site en modifiant les fichiers de
configuration du serveur web ou via une interface d'administration comme le
proposent certains hébergeurs, indiquez alors le répertoire @@F@myapp/www/@@
comme étant la racine du site.
Par exemple, avec apache, vous indiquerez dans le fichier @@F@httpd.conf@@,
quelque chose comme :
<code htaccess>
<VirtualHost *>
ServerName www.monsite.com
DocumentRoot /home/monsite/myapp/www/
</VirtualHost>
<Directory "/home/monsite/myapp/www/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</code>
Vous devez indiquer aussi un alias vers le répertoire @@F@lib/jelix-www/@@, en le nommant jelix :
<code htaccess>
<VirtualHost *>
ServerName www.monsite.com
DocumentRoot /home/monsite/myapp/www/
Alias /jelix/ "/home/monsite/lib/jelix-www/"
</VirtualHost>
<Directory "/home/monsite/myapp/www/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/home/monsite/lib/jelix-www/">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</code>
Note : vous pouvez indiquer un autre nom que "jelix" pour l'alias. Vous devez
alors l'indiquer dans l'option @@V@jelixWWWPath@@ dans le fichier de
configuration de l'application @@F@myapp/var/config/defaultconfig.ini.php@@,
section @@urlengine@@.
Et enfin dans ce même fichier vous ajusterez l'option @@V@basePath@@, en
indiquant le chemin jusqu'au index.php (ici donc, /) s:
<code ini> basePath="/"</code>
Vous pouvez laisser cette option vide, Jelix la devinera tout seul, sauf pour
des applications dans lesquelles vous avez plusieurs points d'entrée dans des
répertoires différents.
Ainsi, en tapant http://www.monsite.com vous accédez à votre site, et
http://www.monsite.com/jelix/, à @@F@jelix-www/@@, qui contient un certain
nombre de scripts javascript utiles etc..
==== Si vous ne pouvez pas spécifier le document root ====
Dans ce cas, il est préférable de déplacer le contenu du répertoire
@@F@monsite/myapp/www@@ à la racine de votre site, @@F@monsite/@@. Vous devriez
donc obtenir une arborescence comme ceci :
monsite/
myapp/
lib/
temp/
index.php
Ici dans notre exemple, @@F@index.php@@ est un point d'entrée jelix de
l'application. Il faut le modifier pour changer les chemins relatifs qu'il
contient, et faire de même pour le fichier @@F@myapp/application.init.php@@. Par
exemple, après modification, le fichier @@F@index.php@@ devrait ressembler à
ceci dans notre exemple :
<code php>
require_once ('myapp/application.init.php');
require_once (JELIX_LIB_CORE_PATH.'request/jClassicRequest.class.php');
$config_file = 'index/config.ini.php';
$jelix = new jCoordinator($config_file);
$jelix->process(new jClassicRequest());
</code>
Il faut aussi modifier le fichier @@F@myapp/project.xml@@ pour modifier le
chemin de chaque répertoire déplacé (les chemins doivent être relatifs au chemin
du fichier @@F@project.xml@@) :
<code xml>
<project xmlns="http://jelix.org/ns/project/1.0">
<!-- ... -->
<directories>
<config>./var/config/</config>
<log>./var/log/</log>
<var>./var/</var>
<www>../</www>
<temp>../temp/myapp/</temp>
</directories>
<entrypoints>
<!-- ... -->
</entrypoints>
</project>
</code>
Il faut ensuite déplacer le répertoire @@F@lib/jelix-www/@@ à la racine et le
renommer en "jelix". Vous obtiendrez :
monsite/
myapp/
jelix/
lib/
temp/
index.php
Note : vous pouvez indiquer un autre nom que "jelix" pour ce renommage. Vous
devez alors l'indiquer dans l'option @@V@jelixWWWPath@@ dans le fichier de
configuration de l'application, @@F@myapp/var/config/defaultconfig.ini.php@@,
section @@urlengine@@.
**Attention : il est fortement recommandé de ne pas mettre vos propres scripts et css dans ce répertoire jelix copié.**
Sinon les futures mises à jour risquent d'être plus compliquées, et vos successeurs ou collègues risquent d'être un peu
perdu, en ne sachant pas ce qui vient de jelix et ce qui vient de votre appli. Bref, ne touchez pas au contenu de
jelix-www ou du répertoire qui est la copie de jelix-www. Mettez vos propres scripts dans un autre répertoire, par
exemple dans @@F@monsite/js/@@.
Dans le fichier @@F@myapp/application.init.php@@, vous devez modifier le chemin
indiqué à @@C@jApp@@ pour le répertoire www (deuxième argument) :
<code php>
jApp::initPaths(
$appPath
$appPath.'../',
//$appPath.'var/',
//$appPath.'var/log/',
//$appPath.'var/config/',
//$appPath.'scripts/'
);
</code>
Vous pouvez alors taper l'adresse de votre site (http://www.monsite.com par
exemple, ou http://localhost/)
==== Configuration pour les urls "cools" ====
Pour pouvoir utiliser des urls significatives avec le [[urls|système d'url automatique de jelix]],
il faut activer dans apache (au niveau de la configuration serveur ou dans le
@@F@.htaccess@@ si cela est permis) :
<code htaccess>
Options +Multiviews
</code>
Et pour Apache 2, rajouter :
<code htaccess>
AcceptPathInfo on
</code>
Pour vérifier que cela fonctionne, créez sur votre site web un fichier
@@F@test.php@@ qui affiche @@f@phpinfo()@@ et essayez l'url :
@@monsite.com/test/foo/bar@@ . Le phpinfo devrait s'afficher, et vous devriez
avoir dans @@V@$_SERVER['PATH_INFO']@@ la chaine "/foo/bar" (voir tout en bas de
l'affichage de phpinfo).
===== Droits sur les répertoires =====
Vous devez donner le droit en écriture à l'utilisateur exécutant votre serveur
web (apache ou autre) au moins sur le répertoire @@F@myapp/var/log/@@, ainsi que
tous les répertoires dans le répertoire @@F@temp/@@.
Exemple, sur un serveur debian/ubuntu :
<code bash>
sudo chown www-data:www-data temp/myapp* myapp/var/log
sudo chmod g+w temp/myapp* myapp/var/log
</code>
Peut être que pour certaines applications, il y a d'autres répertoires à
configurer de la sorte dans @@F@myapp/var/@@. Renseignez-vous dans la procédure
d'installation spécifique à cette application si il y en a une.