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 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/tomcat
export 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)