-
Notifications
You must be signed in to change notification settings - Fork 16
/
configurer-application.gtw
197 lines (131 loc) · 7.96 KB
/
configurer-application.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
~~LANG:EN@enman:application-configuration~~
Vous avez les fichiers de votre application installés sur le disque dur. Maintenant, il faut configurer le serveur et l'application pour qu'elle soit accessible depuis le web.
Notez que la plupart des opérations décrites ici ne sont pas forcément spécifiques à jelix et vous pouvez obtenir des détails en lisant la documentation d'apache, de php, de mysql etc..
Dans cette section, "myapp" désigne votre application. Remplacez ce nom par le nom de votre application dans les commandes et valeurs indiquées.
===== 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.
===== Configurer l'accés à la base de donnée =====
Voir [[bd#profils-et-configuration|la section spécifique dans le chapitre sur jDb]]
===== 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 /var/www/monsite/myapp/www/
</VirtualHost>
</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 /var/www/monsite/myapp/www/
Alias /jelix/ "/var/www/monsite/lib/jelix-www/"
</VirtualHost>
<Directory "/var/www/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, /) :
<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, des ressources XUL 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
jsonrpc.php
xmlrpc.php
Ici dans notre exemple, @@F@index.php@@, @@F@jsonrpc.php@@, @@F@xmlrpc.php@@ sont des points d'entrées de l'application. Il faut les modifier pour changer les chemins relatifs qu'ils contiennent, 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é :
<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
jsonrpc.php
xmlrpc.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@@.
Dans le fichier @@F@myapp/application.init.php@@ (et dans tous les autres fichiers @@F@*.init.php@@ qui sont dans @@F@myapp/@@), vous devez modifier la constante @@V@JELIX_APP_WWW_PATH@@ :
<code php>
define ('JELIX_APP_WWW_PATH', realpath(JELIX_APP_PATH.'../').'/');
</code>
Et enfin, dans le fichier @@F@myapp/var/config/defaultconfig.ini.php@@, vous ajusterez l'option @@V@basePath@@, en indiquant le chemin jusqu'au @@F@index.php@@ (ici donc, /) :
<code ini>
basePath="/"
</code>
Vous pouvez alors taper l'adresse de votre site (http://www.monsite.com par exemple, ou http://localhost/)
==== Spécifier une extension de fichier autre que .php ====
Sur certains serveurs, il vous est proposé PHP4 et PHP5 à la fois. En général, les fichiers **.php** doivent être des fichiers PHP4, et **.php5**, des fichiers PHP5. Il vous faut donc faire des modifications pour que votre application jelix fonctionne avec PHP5. Deux façons avec Apache, selon les possibilités.
=== Par le .htaccess ===
Dans le répertoire @@F@www@@ de votre application rajoutez un fichier @@F@.htaccess@@ et mettez y :
<code htaccess>
AddHandler php5-script .php
</code>
Pour d'autres hébergeurs comme OVH, les serveurs fonctionnent par défaut en php 4. Il suffit de rajouter la ligne suivante dans le fichier @@F@.htaccess@@.
<code htaccess>
SetEnv PHP_VER 5
</code>
Et vous n'avez rien d'autre à faire. Si ça ne fonctionne pas, lisez la documentation de votre hebergeurs, ou essayez la solution suivante.
=== En renommant l'extension ===
Renommer le fichier @@F@index.php@@ en @@F@index.php5@@ (idem pour les autres fichiers php se trouvant dans www : @@F@jsonrpc.php@@, @@F@xmlrpc.php@@, etc...). Par contre, **vous n'avez pas besoin** de renommer les fichiers php des autres répertoires de jelix !
Dans le fichier de configuration @@F@var/config/defaultconfig.ini.php@@, indiquez l'extension dans la partie @@urlengine@@ :
<code ini>
entrypointExtension = .php5
</code>
==== 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).