tgds.net

Utilisation de Macromedia UltraDev avec PostgreSQL, Tomcat et Apache

Tony Grant 2001
Avec l'assistance de Justin Clift, Peter Mount et les membres de postgresql-general list d'e-mail

Macromedia UltraDev est un RAD pour les serveurs d'applications ASP, ColdFusion ou JSP. Nous utilisons la base de donn�es PostgreSQL depuis 1997. Notre but est d'utiliser cet environnement de d�veloppement rapide pour la cr�ation d'applications web simples sur le serveur d'applications Tomcat avec Apache et PostgreSQL sous syt�me d'exploitation Linux.

Les versions binaires de toutes ces applications ont �t� pref�r�es dans notre cas. Notre objectif est de simplifier le processus pour les non d�veloppeurs. Cependant il est essentiel de bien conna�tre le syst�me Linux et la structure des r�pertoires.

Vous pouvez trouver tout ce qui suit dans les documentations diverses. Notre objectif est de centraliser un maximum d'informations pour en faire un pense-b�te. Ce document ne remplace pas la lecture des documentations des logiciels mis en oeuvre. Surtout les documentations de Dreamweaver UltraDev et de PostgreSQL. Ces documentations sont excellentes, lisez-les maintenant avant de continuer.

Les machines :

Un serveur de base de donn�es Linux et un serveur d'applications web. Dans un environnement de production il doit en principe y avoir deux machines. Dans notre environnement de d�veloppement les serveurs sont sur la m�me machine.

Les logiciels:

Nos exemples utilisent le RedHat 7.0. Si vous utilisez un autre Linux vous �tes d�j� en mesure de modifier les chemins d'acc�s aux fichiers de configuration standards.

Apache - dernier rpm du serveur ftp RedHat

JDK1.3 - binaire 1.3_0.2 sur le serveur ftp Sun

Jakarta Tomcat - 3.2 binaire pour RedHat 7.0 sur Apache.org

Ant - rpm sur Apache.org

mod_jk.so - precompil� sur Apache.org ftp

PostgreSQL - 7.1 rpms sur PostgreSQL.org

Un serveur ftp - sur votre CD RedHat

Installation:

Devenez root pour installer les rpm et binaires

Installez le JDK.

Puis:

cd /usr/java
mv jdk1.3.(version_number) /usr/Java/jdk1.3

Modifiez/etc/profile pour inclure le chemin vers votre JDK /usr/Java/jdk1.3

Installez Apache

Copiez mod_jk.so vers le r�pertoire qui contient les modules.

Installez Tomcat

cd /usr/local
mv jakarta-tomcat-xxx /usr/local/tomcat

Installez Ant

Installez PostgreSQL

Attention !

Nous avons constat� que votre application postgreSQL doit �tre compil�e avec les options --enable-multibyte --enable-locale en plus de --enable-java. Quand vous passez � la cr�ation de votre base ci-dessous utilisez creatdb -E LATIN1

Cela va permettre au JDBC de retourner les caract�res accentu�s lors des requ�tes.

Le pilote JDBC, postgresql.jar, doit-�tre copi� vers /usr/local/tomcat/lib. Merci � Justin pour cette astuce.

Tout trouver, t�l�charger et installer : cela a pris une demi journ�e. A bon entendeur... si vous �tes un peu "press�"!

Configuration:

L� �a se corse! Il m'a fallu du temps pour comprendre la configuration de Tomcat car l'installation inclue les fichiers destin�s � NT. Les fichiers pour IIS et Netscape serveur sont l� dedans aussi... Ne suivez pas les instructions pour le module Tomcat mod_jserv ! Utilisez les instructions pour mod_jk � la place. Lisez-les avec attention avant de modifier votre fichier httpd.conf ainsi :

LoadModule jk_module modules/mod_jk.so
AddModule mod_jk.c

Mes modules Apache sont dans un r�pertoire qui s'appelle "modules" dans l'arborescence d'Apache. Red�marrez Apache et v�rifiez que votre module se charge correctement.

O� installer vos applications:

Installez votre r�pertoire racine pour vos applications dans /usr/local/tomcat/webapps/nomdemonapp.

ASTUCE - ne pas utiliser le nom "test" pour votre application ! Il y a d�j� une application qui s'appelle test dans le r�pertoire webapps.

Cr�ez un utilisateur tomcat et son groupe et en faire le propri�taire de /usr/local/tomcat/webapps/nomdemonapp

Configurez /usr/local/tomcat/webapps/nomdemonapp comme racine ftp pour votre utilisateur tomcat.

Maintenant nous devons modifier les fichiers suivants :

/etc/httpd/conf/httpd.conf

JkWorkersFile /usr/local/tomcat/conf/workers.properties
JkLogFile /usr/local/tomcat/logs/mod_jk.log
JkLogLevel warn
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13

Alias /examples "/usr/local/tomcat/webapps/examples"
<Directory "/usr/local/tomcat/webapps/examples">
Options Indexes FollowSymLinks
</Directory>

JkMount /examples/servlet/* ajp13
JkMount /examples/*.jsp ajp13

<Location "/examples/WEB-INF/">
AllowOverride None
deny from all
</Location>

<Location "/examples/META-INF/">
AllowOverride None
deny from all
</Location>

Alias /admin "/usr/local/tomcat/webapps/admin"
<Directory "/usr/local/tomcat/webapps/admin">
Options Indexes FollowSymLinks
</Directory>

JkMount /admin/servlet/* ajp13
JkMount /admin/*.jsp ajp13

<Location "/admin/WEB-INF/">
AllowOverride None
deny from all
</Location>

<Location "/admin/META-INF/">
AllowOverride None
deny from all
</Location>

Alias /nomdemonapp "/usr/local/tomcat/webapps/nomdemonapp"
<Directory "/usr/local/tomcat/webapps/nomdemonapp">
Options Indexes FollowSymLinks
</Directory>

JkMount /nomdemonapp/servlet/* ajp13
JkMount /nomdemonapp/*.jsp ajp13

<Location "/nomdemonapp/Connections/">
AllowOverride None
deny from all
</Location>

Ici nous bloquons l'acc�s au r�pertoire qu'UltraDev utilise pour stocker les d�tails de la connexion, y compris le mot de passe de votre base de donn�es... Je n'ai pas prot�g� _mmDBScript , j'ai essay� mais cela a emp�ch� la connexion. Ult�rieurement nous pourrions valider ou non si cela repr�sente un probl�me de s�curit�.

/usr/local/tomcat/conf/server.xml

Modifiez les ��Connectors�� tout en bas en rajoutant :

<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp13ConnectionHandler"/>
<Parameter name="port" value="8009"/>
</Connector>

Ajoutez le contexte pour votre application :

<Context path="/nomdemonapp"
docBase="webapps/nomdemonapp"
debug="0"
reloadable="true" >
</Context>

Et enfin /usr/local/tomcat/conf/workers.properties doit �tre modifi� pour Linux.

Par la suite :

export TOMCAT_HOME=/usr/local/tomcatexport JAVA_HOME=/usr/java/jdk1.3

Si vous red�marrez votre serveur � ce point la derni�re ligne n'est pas n�cessaire. Nous avons modifi� /etc/profile plus t�t, souvenez-vous.

D�marrez Tomcat ensuite red�marrez Apache. Maintenant tous les requ�tes � http://localhost/examples/ seront envoy�es � Tomcat. Testez votre configuration maintenant avant de proc�der!

Configurez PostgreSQL pour accepter les connexions Tcp/IP et permettre au propri�taire de la base de donn�es de se connecter depuis la machine qui h�berge le serveur d'applications. D�marrez PostgreSQL en suivant les instructions dans les docs PostgreSQL. Cr�ez votre base et essayez de vous connecter avec psql.

Connexion depuis UltraDev :

Ceci a �t� test� avec la version Windows d'UltraDev 4.0. Tout fonctionne avec la version Mac aussi.

Je vous sugg�re de faire l'apprentissage d'UltraDev dans sa totalit�. Cela vous enseignera les bases avant de vous attaquer � des projets plus ambitieux.

Voici mon dialogue de d�finition des sites (d�sole, je n'ai que la version anglaise sous la main). Rajoutez le num�ro IP de votre serveur FTP. La racine pour l'utilisateur "tomcat" �tant /usr/local/tomcat/webapps/nomdemonapp laissez la case vide. L'URL racine est comme votre Contexte ci-dessus, ou bien http://localhost/nomdemonapp

Maintenant il faut d�finir une connexion. Ouvrez une page dans votre site d'essai. Nommez votre connexion connNomdemonapp afin de faciliter l'identification. L'utilisateur ici est le propri�taire de la base et non l'utilisateur FTP, les deux peuvent �tre diff�rents (cela m'a pi�g�). UltraDev va utiliser le JDBC postgres.jar dans tomcat/lib . Ne copiez pas le posgres.jar dans les endroits habituels de votre chemin Java. Cela peut emp�cher la connexion comme cela s'est produit chez moi.

J'ai suivi le tutorial avec une base que j'avais d�j� sous la main en modifiant les r�f�rences ou cela �tait n�cessaire. Peut-�tre Macromedia sera assez gentil d'inclure un pg_dump de leur base de tutorial sur leur site FTP...

Conclusion:

UltraDev est extr�mement convivial dans la cr�ation JSP. Les applications fonctionnent dans tout navigateur avec Java activ�. Il ne faut pas conna�tre Java pour faire fonctionner UltraDev. Il faut par contre quelques bases en SQL - mais l'apprentisage SQL de PostgreSQL est tr�s bien fait.

Pour aller plus loin conna�tre Java est essentiel.

Toute question concernant ce document sera trait� sur postgres-general ou postgres-jdbc.

English version. La version anglaise sera mise �jour r�guli�rement. Un(e) volontaire pour traduire/enrichir la version fran�aise sera bienvenu(e)

All trademarks, brand names etc. used on this page are probably registered and owned by the companies mentioned herein.

31-ao�t-2005 © tgds 2005 | tgrant@tgds.net | Privacy | Conditions de vente