Raccourcis : Contenu - rubriques - sous rubriques
EN FR

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 myapp/var/log/, ainsi que tous les répertoires dans le répertoire temp/.

Exemple, sur un serveur debian/ubuntu :


   sudo chown www-data:www-data temp/myapp*  myapp/var/log
   sudo chmod g+w temp/myapp* myapp/var/log

Peut être que pour certaines applications, il y a d'autres répertoires à configurer de la sorte dans 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

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 temp/myapp etc par ex), afin que Jelix prenne en compte la nouvelle configuration.

Exemple :


sudo rm -rf temp/myapp/*

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 myapp/www/ comme étant la racine du site.

Par exemple, avec apache, vous indiquerez dans le fichier httpd.conf, quelque chose comme :


   <VirtualHost *>
      ServerName www.monsite.com
      DocumentRoot /var/www/monsite/myapp/www/ 
   </VirtualHost>

Vous devez indiquer aussi un alias vers le répertoire lib/jelix-www/, en le nommant jelix :


   <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>

Note : vous pouvez indiquer un autre nom que "jelix" pour l'alias. Vous devez alors l'indiquer dans l'option jelixWWWPath dans le fichier de configuration de l'application myapp/var/config/defaultconfig.ini.php, section urlengine.

Et enfin dans ce même fichier vous ajusterez l'option basePath, en indiquant le chemin jusqu'au index.php (ici donc, /) :


basePath="/"

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/, à 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 monsite/myapp/www à la racine de votre site, monsite/. Vous devriez donc obtenir une arborescence comme ceci :

  monsite/  
    myapp/
    lib/
    temp/
    index.php
    jsonrpc.php
    xmlrpc.php

Ici dans notre exemple, index.php, jsonrpc.php, 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 myapp/application.init.php. Par exemple, après modification, le fichier index.php devrait ressembler à ceci dans notre exemple :


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());

Il faut aussi modifier le fichier myapp/project.xml pour modifier le chemin de chaque répertoire déplacé :


<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>

Il faut ensuite déplacer le répertoire 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 jelixWWWPath dans le fichier de configuration de l'application, myapp/var/config/defaultconfig.ini.php, section urlengine.

Dans le fichier myapp/application.init.php (et dans tous les autres fichiers *.init.php qui sont dans myapp/), vous devez modifier la constante JELIX_APP_WWW_PATH :


define ('JELIX_APP_WWW_PATH', realpath(JELIX_APP_PATH.'../').'/');

Et enfin, dans le fichier myapp/var/config/defaultconfig.ini.php, vous ajusterez l'option basePath, en indiquant le chemin jusqu'au index.php (ici donc, /) :


basePath="/"

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 www de votre application rajoutez un fichier .htaccess et mettez y :


  AddHandler php5-script .php

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 .htaccess.


  SetEnv PHP_VER 5

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 index.php en index.php5 (idem pour les autres fichiers php se trouvant dans www : jsonrpc.php, 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 var/config/defaultconfig.ini.php, indiquez l'extension dans la partie urlengine :


  entrypointExtension = .php5

Configuration pour les urls "cools"

Pour pouvoir utiliser des urls significatives avec le système d'url automatique de jelix, il faut activer dans apache (au niveau de la configuration serveur ou dans le .htaccess si cela est permis) :


   Options +Multiviews

Et pour Apache 2, rajouter :


   AcceptPathInfo on

Pour vérifier que cela fonctionne, créez sur votre site web un fichier test.php qui affiche phpinfo() et essayez l'url : monsite.com/test/foo/bar . Le phpinfo devrait s'afficher, et vous devriez avoir dans $_SERVER['PATH_INFO'] la chaine "/foo/bar" (voir tout en bas de l'affichage de phpinfo).