Installation/Utilisation de Xindice 1.1 avec PHP sur Linux
dernière mise à jour : 08
juillet 2004
Document écrit par Eric MERY :
eric.mery@laposte.net
|
Cette page
a été écrite dans le but de partager le maximum d'informations sur l'utilisation
de Xindice et PHP. Aussi,
si vous utilisez vous aussi le couple PHP/Xindice et que vous souhaitez partager
vos astuces que ce soit sur
l'installation et l'utilisation, n'hésitez pas à m'écrire pour que je mette à
jour cette page afin que
tout le monde puisse en profiter.... ! Merci d'avance.
eric.mery@laposte.net |
|
The purpose
of this page is to share as many information as possible about the way of
using Xindice and PHP. So if you are using also the couple PHP/indice and
you want to share your tricks for both installation and use, please don't
hesitate to write to me so that I can update this page and let everybody
take benefit of it.Thanks in advance.
eric.mery@laposte.net |
Apache Xindice est une base
de données native XML open source soutenue par le projet JAKARTA (Apache). La
base de données développée en JAVA, doit être hébergée par un moteur de servlet
pour fonctionner (type TOMCAT, Jetty...). Il est donc possible de s'y
connecter par l'intermédiaire d'une application JAVA, de pages JSP ou de
Servlets. Cependant il est aussi possible d'utiliser la base en tant que Service
Web afin d'y accéder à partir d'autres langages tels que le PHP. Pour
cela, on utilise le protocole xmlrpc pour que PHP puisse communiquer avec
Xindice.
Nous allons donc décrire dans ce document la mise en oeuvre du couple PHP/Xindice
sur une machine Linux. Pour cela, nous allons installer le moteur de
servlet TOMCAT. Ainsi, notre machine possèdera deux serveurs HTTP : Apache sur
le port 8080 et TOMCAT sur le port 8090. C'est sur ce dernier que sera hébergé
Xindice.
Environnement d'installation et logiciels utilisés :
Logiciel |
Version
|
Nom du
fichier |
Linux Mandrake |
10.0 |
- |
Apache |
1.3.31 |
apache_1.3.31.tar.gz |
Xindice |
1.1b4 |
xml-xindice-1.1b4-src.tar.gz |
JDK |
1.4.2 |
j2sdk-1_4_2_04-linux-i586.bin |
PHP |
4.3.7 |
php-4.3.7.tar.gz |
Tomcat |
5.0.25 |
jakarta-tomcat-5.0.25.tar.gz |
Attention : la version 1.0 de Xindice fonctionne complètement
différemment de la 1.1. Ce qui suit n'est valide que pour la verison 1.1.
Remarque : toutes les commandes ci-dessous sont réalisées en tant que root.
Installez les librairies libxml 2 et libxslt sur votre machine
linux pour pouvoir profiter des fonctions DOM XML dans vos scripts PHP :
- Télécharger sur la page 'http://xmlsoft.org/downloads.html'
les fichiers 'libxml2-2.6.10.tar.gz' et 'libxslt-1.1.7.tar.gz'.
- Installez les (./configure, make et make install)
- Recompilez PHP avec l'option --with-dom --with-dom-xslt
Pour que PHP puisse dialoguer avec Xindice en xmlrpc, il faut que la librairie
xmlrpc ait été installée sur la machine et que PHP ait été compilé avec l'option
--with-xmlrpc. Pour cela :
- Téléchargez sur la page
http://xmlrpc-epi.sourceforge.net/main.php?t=php_about ou
http://sourceforge.net/project/showfiles.php?group_id=23199 les dernières
versions de xmlrpc-epi-xxx et xmlrpc-epi-php-xxx
- Installez ces librairies
- recompilez PHP avec l'option --with-xmlrpc
Exemple de compilation dynamique de PHP 4.3.7 avec Apache 1.3.31 :
./configure --with-zlib
--with-apxs=/usr/local/apache/bin/apxs
--with-dom
--with-dom-xslt
--with-xmlrpc
Pour installer TOMCAT et Xindice, nous avons besoin du JDK
installé sur la machine.
- Téléchargez le dernier SDK (et non le JRE) sur le site de SUN à l'adresse
suivante :
http://java.sun.com/j2se/1.4.2/download.html. Le fichier se nomme :
'j2sdk-1_4_2_04-linux-i586.bin'.
- Copiez le fichier dans /usr/local et exécutez le.
- Une fois le JDK installé, déclarez la variable d'environnement JAVA_HOME. Pour
cela :
emacs
/etc/profile
&
Dans le fichier, rajouter :
JAVA_HOME=/usr/local/j2sdk1.4.2_04
export JAVA_HOME
PATH=$PATH:${JAVA_HOME}/bin
export PATH
Xindice dans sa version 1.1 ne fonctionne qu'en tant
qu'application web sur un moteur de servlet Nous allons donc installer TOMCAT
sur notre machine
- Téléchargez la dernière version de TOMCAT (format binaire et non la source) sur le site 'Apache France' à
l'adresse suivante :
http://www.apachefrance.com/Telechargement/17/. Le fichier se nomme :
'jakarta-tomcat-5.0.25.tar.gz'
- Copiez le fichier dans /usr/local et décompressez le :
tar zxvf jakarta-tomcat-5.0.25.tar.gz
- Une fois TOMCAT décompressé, renommez le répertoire /usr/local/jakarta-tomcat-5.0.25
en /usr/local/jakarta-tomcat-5 pour faire plus simple :
mv
/usr/local/jakarta-tomcat-5.0.25
/usr/local/jakarta-tomcat-5
- Déclarez le variable d'environnement CATALINA_HOME :
emacs
/etc/profile
&
Dans le fichier, rajouter :
CATALINA_HOME=/usr/local/jakarta-tomcat-5
export CATALINA_HOME
PATH=$PATH:${CATALINA_HOME}/bin
export PATH
- Nous allons maintenant éditer le fichier de configuration de TOMCAT
pour modifier le port d'écoute (par défaut le port est sur 8080, port déjà
utilisé par apache). Nous allons donner comme valeur de ce port : 8090.
emacs $CATALINA_HOME/conf/server.xml &
Dans le fichier, rechercher 8080 et remplacez le par 8090.
- Vous pouvez maintenant démarre TOMCAT grâce à
$CATALINA_HOME/bin/./startup.sh
et stopper TOMCAT grâce à $CATALINA_HOME/bin/./shutdown.sh
- Vous pouvez tester l'installation de TOMCAT en allant sur
http://localhost:8090/. Si vous voyez la
page d'accueil de TOMCAT, c'est gagné.
Maintenant que le JDK et TOMCAT sont installés, nous allons
pouvoir installer Xindice.
- Téléchargez la source de Xindice à l'adresse suivante :
http://xml.apache.org/xindice/download.cgi. Le fichier se nomme
'xml-xindice-1.1b4-src.tar.gz'
- Copiez le dans /usr/local, décompressez le :
tar zxvf xml-xindice-1.1b4-src.tar.gz
- Installez Xindice :
./build.sh
- Une fois Xindice installé, il faut déclarer la variable d'environnement
XINDICE_HOME. Pour cela :
emacs
/root/.bashrc
&
Dans le fichier, rajouter :
XINDICE_HOME=/usr/local/xml-xindice-1.1b4
export XINDICE_HOME
PATH=...:${XINDICE_HOME}/bin
export PATH
- Copier le fichier $XINDICE_HOME/dist/xindice-1.1b4.war dans le
répertoire $CATALINA_HOME/webapps. Renommez en même temps le fichier en
xindice.war :
cp
$XINDICE_HOME/dist/xindice-1.1b4.war
$CATALINA_HOME/webapps/xindice.war
- Vous pouvez tester l'installation de Xindice en allant sur
http://localhost:8090/xindice. Si
vous voyez le browser de Xindice, c'est gagné.
- Télécharger à l'adresse suivante :
http://wiki.apache.org/xindice/XindicePHPAdmin ou
http://www.ruminate.co.uk/samples/ le fichier
'xindice_php_admin_v.0.Alpha.zip'
- Décompressez le dans un répertoire accessible par Apache :
unzip
xindice_php_admin_v.0.Alpha.zip
- Modifiez le fichier de configuration se trouvant dans /include/common.php avec
vos paramètres :
$xindicehost='localhost';
$xindiceurl='/xindice/db';
$xindiceport='8090';
$basecoll='/db';
- Accédez via le navigateur au browser...
Maintenant que tout est en place, il ne vous reste plus qu'à
faire un include dans vos scripts PHP de la classe permettant de se connecter à
Xindice et d'y effectuer des opérations. Cette classe est dans le fichier
Xindice.php se trouvant dans /include du brower PHP.
Si vous souhaitez sécuriser l'accès à Xindice avec une
authentification basique, suivez la procédure ci-dessous :
- Nous allons tout d’abord sécuriser l’accès à la ressource
‘xindice’ hébergée par TOMCAT.
Pour cela, il va falloir modifier le fichier de configuration ‘web.xml’ présent
dans ‘$CATALINA_HOME/web_apps/xindice/WEB-INF/’.
Décommentarisez les ligne suivantes :
<security-constraint>
<web-resource-collection>
<web-resource-name>Xindice Server</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>xindice</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>xindice</realm-name>
</login-config>
<security-role>
<role-name>xindice</role-name>
</security-role>
- Puis nous allons ajouter un utilisateur ayant le rôle ‘xindice’ dans le
fichier des utilisateurs de TOMCAT.
Pour cela, éditons le fichier ‘$CATALINA_HOME/conf/tomcat-users.xml’ pour que le
fichier ressemble à ça :
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="xindice"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user
username="login_utilisateur" password="password_utilisateur" roles="xindice"/>
</tomcat-users>
…en remplaçant bien sûr les valeurs login_utilisateur et
password_utilisateur pas celles souhaitées.
- Il ne nous reste plus qu’à configurer l’accès à la base Xindice depuis vos
scripts PHP. Pour cela dans la classe Xindice.php, effectuez les modifications
suivantes dans la fonction send($xml) :
$header = "POST " .$this->url . " HTTP/1.0\n";
$header .= "User-Agent: simple\n";
$header .= "Host: " . $this->host . "\n";
$header .= "Authorization: Basic " . base64_encode($this->username .":" .
$this->password)
. "\n";
$header
.= "Content-Type: text/xml\n";
$header .= "Content-Length: " . strlen($xml) .
"\n\n";
http://xml.apache.org/xindice/index.html : Site de Xindice
http://xml.apache.org/xindice/community/howto/installation/tomcat.html :
Installation de Xindice avec TOMCAT
http://wiki.apache.org/xindice/XindicePHPAdmin : Browser PHP sur Xindice
développé par Jim Fuller (basé sur la classe de Jill Rhoads)
http://etudiant.univ-mlv.fr/~mroussea/tomcat/tomcat.php?rub=20 : Tutorial
sur TOMCAT et la sécurisation des ressources
http://marc.theaimsgroup.com/?l=xindice-users&r=1&w=2 : mailing list de
Xindice
|
Cette page
a été écrite dans le but de partager le maximum d'informations sur l'utilisation
de Xindice et PHP. Aussi,
si vous utilisez vous aussi le couple PHP/Xindice et que vous souhaitez partager
vos astuces que ce soit sur
l'installation et l'utilisation, n'hésitez pas à m'écrire pour que je mette à
jour cette page afin que
tout le monde puisse en profiter.... ! Merci d'avance.
eric.mery@laposte.net |
|
The purpose
of this page is to share as many information as possible about the way of
using Xindice and PHP. So if you are using also the couple PHP/indice and
you want to share your tricks for both installation and use, please don't
hesitate to write to me so that I can update this page and let everybody
take benefit of it.Thanks in advance.
eric.mery@laposte.net |
retour à l'accueil
|