Blog Pro de Jean-Baptiste HEREN - Tag - debian Notes d'un consultant Freelance en Informatique 2015-11-03T21:34:19+01:00 JB HEREN urn:md5:e39389b5ec134d99645112fce3d957df Dotclear Installer JasperServer sur Linux Debian urn:md5:0216bd919fd11a4ba3897f249d0f36fc 2011-01-15T12:15:00+01:00 2011-01-17T11:46:27+01:00 Jean-Baptiste Heren Décisionnel Business IntelligenceConsultant décisionneldebianJasperlinux <p>JasperServer est la solution open source de BI &amp; reporting la plus aboutie à ce jour. Cette solution comprend l'ensemble des outils nécessaire à la mise en place d'une solution décisionnelle professionnelle.</p> <p>Nous allons voir ici quelles sont les étapes pour installer jasper server manuellement. Ceci est utile en particulier si vous disposez déjà d'un mysql et/ou d'un tomcat installés sur votre machine.</p> <h2>1- Téléchargement du paquet "JasperServer WAR install"</h2> <p>Ce paquet contient le portail Jasper, mysql et l'outil de développement de rapports. rendez-vous chez <a href="http://jasperforge.org/projects/jasperserver" hreflang="en">jasperForge</a> ou directement sur <a href="http://sourceforge.net/projects/jasperserver/files/JasperServer/" hreflang="en">sourceforge</a>.</p> <p>Connectez vous en tant qu'administrateur (root)</p> <pre>[script] # unzip ./jasperserver-ce-3.7.1.bin.zip # cd jasperserver-ce-3.7.1.bin/ # ls apache-ant jasperserver.war samples buildomatic license.txt scripts docs releaseNotes.txt Third-Party-Notices.pdf </pre> <h2>2- Installation du serveur d'application Web</h2> <p>Ici nous installerons Tomcat5, il est également possible de réaliser l'installation avec JBoss, par exemple.</p> <pre>[script] # apt-get install sun-java6-jdk tomcat5.5 tomcat5.5-admin tomcat5.5-webapps </pre> <p>Si l'installation s'est bien déroulée, une connexion du navigateur web à l'adresse http://localhost:8180/ devrait vous afficher ceci&nbsp;: <a href="http://blog.jbheren.com/public/Decisionnel/jasperserver/01_-_tomcat_home.png" title="01_-_tomcat_home.png"><img src="http://blog.jbheren.com/public/Decisionnel/jasperserver/.01_-_tomcat_home_m.jpg" alt="01_-_tomcat_home.png" title="01_-_tomcat_home.png, janv. 2011" /></a></p> <p>Il nous faut maintenant configurer un compte admin pour tomcat</p> <pre>[script] # vim /var/lib/tomcat5.5/conf/tomcat-users.xml </pre> <p>Modifiez le mot de passe par défaut de tomcat et ajoutez les rôles admin &amp; manager.</p> <pre>[xml] &lt;?xml version='1.0' encoding='utf-8'?&gt; &lt;tomcat-users&gt; &lt;role rolename=&quot;tomcat&quot;/&gt; &lt;role rolename=&quot;manager&quot;/&gt; &lt;role rolename=&quot;admin&quot;/&gt; &lt;user username=&quot;tomcat&quot; password=&quot;tomcat&quot; roles=&quot;tomcat,admin,manager&quot;/&gt; &lt;/tomcat-users&gt; </pre> <p>Modifier les paramètres de la VM pour jasperserver. En effet, les paramètres par défaut ne sont pas suffisants...</p> <pre>[script] # vim /usr/share/tomcat5.5/bin/setclasspath.sh </pre> <p>Puis on ajoute la variable JAVA_OPTS, juste aprés le JAVA_ENDORSED_DIRS.</p> <pre>[script] # Set the default -Djava.endorsed.dirs argument JAVA_ENDORSED_DIRS=&quot;$BASEDIR&quot;/common/endorsed # JBH - Parameters for JasperServer to work fine export JAVA_OPTS=&quot;$JAVA_OPTS -Xms128m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=128m -Xss2m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled&quot; </pre> <p>Copier le connecteur jdbc mysql depuis le dossier d'installation</p> <pre>[scripts] cp scripts/drivers/mysql/jdbc/mysql-connector-java-5.1.10.jar /usr/share/tomcat5.5/common/lib/ </pre> <p>Redémarrer le server afin de prendre en compte nos modifications</p> <pre>[script] # /etc/init.d/tomcat5.5 restart Stopping Tomcat servlet engine: tomcat5.5. Starting Tomcat servlet engine: tomcat5.5. </pre> <p>Nous pouvons maintenant nous connecter au manager Tomcat en utilisant les login/pass de l'utilisateur tomcat. Pour cela, rendez-vous à l'adresse http://localhost:8180/manager/html <a href="http://blog.jbheren.com/public/Decisionnel/jasperserver/02_-_tomcat_manager.png" title="02_-_tomcat_manager.png"><img src="http://blog.jbheren.com/public/Decisionnel/jasperserver/.02_-_tomcat_manager_m.jpg" alt="02_-_tomcat_manager.png" title="02_-_tomcat_manager.png, janv. 2011" /></a></p> <h2>3- préparation de mysql avec buildomatic</h2> <pre>[script] # cd buildomatic # cp sample_conf/inst-mysql_master.properties default_master.properties # /etc/init.d/tomcat stop # vim default_master.properties </pre> <p>Changes configuration values to&nbsp;:</p> <pre>[script] # application server type (default is tomcat6) appServerType = tomcat5 # Tomcat app server root dir appServerDir = /var/lib/tomcat5.5/ # database type dbType=mysql # database location and connection settings dbHost=localhost dbUsername=root dbPassword=password #set your own password </pre> <p>Nous allons maintenant regénérer les paramètres de buildomatic.</p> <pre>[script] ./js-ant clean-config ./js-ant gen-config </pre> <p>Nous allons maintenant exécuter les tâches de création de la base jasperserver</p> <pre>[script] debianlamp:/home/jb/jasper/jasperserver-ce-3.7.1-bin/buildomatic# ./js-ant create-js-db Buildfile: build.xml create-js-db: [echo] create database, js.dbName = jasperserver [sql] Executing commands [sql] 1 rows affected [sql] 1 of 1 SQL statements executed successfully BUILD SUCCESSFUL Total time: 3 seconds </pre> <p>Les commandes suivantes créent le paramêtrage par défaut (users)</p> <pre>[script] # ./js-ant init-js-db-ce # ./js-ant import-minimal-ce </pre> <p>En option, la création et le chargement des bases de démonstration</p> <pre>[script] # ./js-ant create-sugarcrm-db # ./js-ant create-foodmart-db # ./js-ant load-sugarcrm-db # ./js-ant load-foodmart-db # ./js-ant update-foodmart-db # ./js-ant import-sample-data-ce </pre> <p>Puis le déploiement vers tomcat (le serveur doit être inactif).</p> <pre>[script] # ./js-ant deploy-webapp-ce Buildfile: build.xml init-source-paths: [echo] [echo] Property values (in dev.xml: init-source-paths): [echo] js-path = ${js-base-path} [echo] js-pro-path = ${js-pro-base-path} [echo] repo-path = ${repo-path} [echo] set-ce-webapp-name: [copy] Copying 1 file to /home/jb/jasper/jasperserver-ce-3.7.1-bin/buildomatic/build_conf/default [copy] Copying 1 file to /home/jb/jasper/jasperserver-ce-3.7.1-bin/buildomatic/build_conf/default/webapp/WEB-INF deploy-jdbc-jar: [copy] Copying 1 file to /var/lib/tomcat5.5/common/lib deploy-webapp: [echo] [echo] Property values (in install.xml: deploy-webapp): [echo] jsEdition = ce [echo] warFileDistSourceDir = /home/jb/jasper/jasperserver-ce-3.7.1-bin/buildomatic/../jasperserver.war [echo] warTargetDir = /var/lib/tomcat5.5/webapps/jasperserver [echo] webAppName = jasperserver [echo] webAppNameCE = jasperserver [echo] webAppNamePro = jasperserver-pro [echo] webAppNameSrc = jasperserver [echo] webAppNameDel = jasperserver [echo] warTargetDirDel = /var/lib/tomcat5.5/webapps/jasperserver [echo] [copy] Copying 1013 resources to /var/lib/tomcat5.5/webapps/jasperserver [copy] Copying 4 files to /var/lib/tomcat5.5/webapps/jasperserver [delete] Deleting directory /var/lib/tomcat5.5/work/Catalina/localhost/jasperserver deploy-webapp-ce: BUILD SUCCESSFUL Total time: 25 seconds </pre> <h3>Réglages de Tomcat</h3> <p>Lien symbolique vers la config de jasperserver dans /etc</p> <pre>[script] cd /etc/tomcat5.5/Catalina/localhost ln -s /usr/share/tomcat5.5/webapps/jasperserver/META-INF/context.xml ./jasperserver.xml </pre> <p>Ajout des policies pour jasperserver</p> <pre>[script] # vi /etc/tomcat5.5/policy.d/04webapps.policy </pre> <p>On ajoute la partie suivante dans la section <em>grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {</em></p> <pre>[script] permission java.io.FilePermission &quot;/usr/share/tomcat5.5/webapps/jasperserver/WEB-INF/classes/logging.properties&quot;, &quot;read&quot;; // Il faut editer ensuite le fichier ///[script] # vi /etc/tomcat5.5/policy.d/50user.policy </pre> <p>Ajouter la définition suivante&nbsp;:</p> <pre>[script] grant codeBase &quot;file:/usr/share/tomcat5.5/webapps/jasperserver/-&quot; { permission java.security.AllPermission; }; </pre> <p>Mise en place des logs dans le dossier /var/log/tomcat5.5/</p> <pre>[scripts] vim /var/lib/tomcat5.5/webapps/jasperserver/WEB-INF/log4j.properties </pre> <pre>[sript] ... log4j.appender.fileout.File=/var/log/tomcat5.5/jasperserver.log ... log4j.appender.jasperanalysis.File=/var/log/tomcat5.5/jasperanalysis.log </pre> <h2>4- Démarrage de JasperServer</h2> <p>Nous pouvons maintenant démarrer tomcat</p> <pre>[script] # /etc/init.d/tomcat5.5 start </pre> <p>Puis nous connecter à jasperserver à l'adresse http://localhost:8180/jasperserver/, si tout s'est bien passé, vous devriez voir la fenêtre de connexion. <a href="http://blog.jbheren.com/public/Decisionnel/jasperserver/03_-_jasperserver_Home.png" title="03_-_jasperserver_Home.png"><img src="http://blog.jbheren.com/public/Decisionnel/jasperserver/.03_-_jasperserver_Home_m.jpg" alt="03_-_jasperserver_Home.png" title="03_-_jasperserver_Home.png, janv. 2011" /></a></p> <p>les login par défaut de l'administrateur sont jasperadmin/jasperadmin.</p> <h2>Problèmes éventuels</h2> <p>Si l'application n'a pas démarré, vous pouvez consulter, en autres la log jasperserver configurée plus haut:</p> <pre>[script] cat /var/log/tomcat5.5/jasperserver.log </pre> <h3>Problèmes de sécurité dans les logs Cantala.</h3> <p>Sous Debian, TOMCAT peut poser un problème de sécurité, même aprés l'ajout des policies plus haut, il est possible qu'un problème subsiste. Si c'est le cas, vous pouvez désactiver le JSM (Java Security Manager) en modifiant la valeur TOMCAT5_SECURITY dans le fichier suivant&nbsp;:</p> <pre>[script] # vim /etc/default/tomcat5.5 </pre> <p>Modifiez la valeur du TOMCAT5_SECURITY comme suit&nbsp;:</p> <pre>[script] # Use the Java security manager? (yes/no, default: yes) # WARNING: Do not disable the security manager unless you understand # the consequences! # NOTE: java-gcj-compat-dev currently doesn't support a security # manager. TOMCAT5_SECURITY=no </pre> Installer Debian Lenny x64 en RAID Logiciel urn:md5:13777ee7abe834c39e281e9bb1c91e8e 2010-05-30T13:33:00+02:00 2010-06-01T12:33:54+02:00 Jean-Baptiste Heren Linux debianlinuxRAID <p>L'installation sur des disques configurés en RAID1 offre les avantages suivants : </p> <ul> <li>Les données sont intégralement reproduites sur deux disques (miroir)</li> <li>Cela permet en cas d'avarie dur un disque, de conserver un système fonctionnel</li> <li>Il est aisé de remplacer un disque défectueux </li> </ul> <h1>Installation d'une debian 5.04 en RAID.</h1> <p>Après avoir récupéré une image disque depuis http://www.debian.org, préparé la machine avec au moins deux disques de capacité équivalente, on démarre.</p> <p>L'installateur nous demande de sélectionner une langue, une zone géographique, un nom d'hôte.</p> <div><object type="application/x-shockwave-flash" style="width:480px; height:385px;" data="http://www.youtube.com/v/5dAZxXK3igk?rel=0&amp;showsearch=0&amp;fs=1"><param name="movie" value="http://www.youtube.com/v/5dAZxXK3igk?rel=0&amp;showsearch=0&amp;fs=1" /> <param name="allowFullScreen" value="true" /></object> <div style="font-size: 0.8em"></div> </div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <p><span class="Apple-style-span" style="font-size: 18px; font-weight: bold;">1- Préparation des disques pour le RAID</span></p> <p>Nous allons créer trois partitions gérées en RAID : </p> <ul> <li>/boot : contenant le noyau, démarré par le gestionnaire de boot GRUB</li> <li>/ : Le root contient l'ensemble des données système</li> <li>swap</li> </ul> <p><strong>Il faudra avoir exactement les mêmes tailles de partitions sur les deux disques.</strong></p> <p>Pour le partitionnement des disques, nous choisirons donc l'option &quot;Manuel&quot;.</p> <p>Nous allons créer deux partitions sur chaque disque : </p> <ul> <li>la première pour le boot, 512M</li> <li>le Root : 10G</li> </ul> <div>Voici quelques copies d'écran illustrant les étapes de cette opération.</div> <a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox.png"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox.png, mai 2010" /></a></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_2.png"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_2_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_2.png, mai 2010" /></a></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_3.png"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_3_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_3.png, mai 2010" /></a></span></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_4.png"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_4_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_4.png, mai 2010" /></a></span></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_5.png" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_5.png, mai 2010" /></span></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_6.png"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_6_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_6.png, mai 2010" /></a></span></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_7.png"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_7_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_7.png, mai 2010" /></a></span></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_9.png"><img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_9_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_9.png, mai 2010" /></a></span></div> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><br /></span></div> <h3>Voici ce que nous devrions obtenir à la fin de cette étape :</h3> <div style="color: rgb(0, 0, 0); background-color: rgb(249, 249, 249); border-style: none;"> <span class="Apple-style-span" style="text-decoration: underline;"><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_10.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_10_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_10.png, mai 2010" /></a><br /></span> <h2>2- Configuration dur RAID Logiciel</h2> <div>Nous allons ici créer deux périphériques multidisque. Il s'agit de regrouper chacune de nos partitions identiques sur nos disques afin de créer un disque RAID.</div> <div>Ces périphériques pourront être utilisés soit directement pour créer des partitions, soit pour monter des volumes physiques LVM.</div> <div>Voici quelques images illustrant les différentes étapes : </div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_10.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_10_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_10.png, mai 2010" /></a></div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_11.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_11_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_11.png, mai 2010" /></a></div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_12.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_12_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_12.png, mai 2010" /></a></div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_13.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_13_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_13.png, mai 2010" /></a></div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_14.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_14_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_14.png, mai 2010" /></a></div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_15.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_15_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_15.png, mai 2010" /></a></div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_16.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_16_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_16.png, mai 2010" /></a></div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_17.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_17_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_17.png, mai 2010" /></a></div> <h3>Et voici le résultat attendu à cette étape: </h3> <div>Nous avons Maintenant deux périphériques RAID, exploitables comme s'il s'agissait de disques physiques, et sur lesquels nous pouvons créer nos partitions.</div> <div><a href="http://blog.jbheren.com/public/tuto/debian_RAID/debian_64_RAID__en_fonction__-_Sun_VirtualBox_18.png"> <img src="http://blog.jbheren.com/public/tuto/debian_RAID/.debian_64_RAID__en_fonction__-_Sun_VirtualBox_18_m.jpg" alt="" title="debian_64_RAID__en_fonction__-_Sun_VirtualBox_18.png, mai 2010" /></a></div> <div> <h2>3- Création des partitions</h2> <div>Il ne nous reste donc plus qu'à attribuer nos périphériques RAID à un usage habituel (ext3 ou swap), de préciser les points de montage, puis de poursuivre notre installation de manière classique !</div> <div>Sources :</div> <div>http://dev.jerryweb.org/raid-fr/</div> <div>http://www.supinfo-projects.com/fr/2005/lvm%5Fraid%5Flinux/2/</div> </div> </div> Build & use mod_auth_user_dir on debian 5.0 Lenny urn:md5:50d34fc1b85c47db3e6b315260e95613 2010-04-02T12:34:00+02:00 2010-05-30T20:51:29+02:00 Jean-Baptiste Heren Linux apachedebiandéveloppement weblinuxwebDAV <p>In the need of a WebDAV functionnality that could allow one to share users personal directories with automated authentification, i found an apache module, auth_user_dir, that looked fine to me on <span class="Apple-style-span" style="line-height: 18px; white-space: pre;"><a href="http://www.genos.org">http://www.genos.org</a> :</span></p> <blockquote> <p style="line-height: 1.5em;">You can create private user folders using the WebDAV protocol. Users will have only permissions to access to their own directory. Without this module, a htaccess file must be created inside every user folder. This is completely unmanageable when the number of users is big.</p> <p style="line-height: 1.5em;">We can build a file server accessible from Windows and Linux using the WebDAV protocol and a web server like Apache. Because the protocol is build upon HTTP, the server uses ports TCP 80 (HTTP) and TCP 443 (HTTPS). These ports are commonly open in firewalls without any other special requirement.</p> </blockquote> <p><span class="Apple-style-span" style="line-height: 18px; white-space: pre;"><span class="Apple-style-span" style="line-height: normal; white-space: normal;">The module appears to have been developed in 2004 an  <a href="http://matt.colyer.name/projects/mod_auth_user_dir.html">attached tutorial</a> was referring to some patches that no longer exist. So here is explained the way I managed to build this module on debian in 2010. I also found some tricks to make the mysql authentication work. This is a little crap but <strong>it worked</strong> !</span></span></p> <div style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border- background-position: initial initial;"> <h2><strong>Prerequisites</strong></h2> <h4>first install the needed dev packages if those are not already on your system</h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> apt-get install apache2     \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  apache2-threaded-dev        \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  libtool                     \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  libltdl3                    \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  libltdl3-dev                \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  automake                    \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  make                        \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  libapache2-mod-auth-mysql   \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  libapache2-mod-ldap-userdir \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  libapr1                     \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">  libapr1-dev                 \</span></p> <h2>Get the module source code (or take the ready to make <a href="http://blog.jbheren.com/public/tuto/mod_auth_user_dir/mod_auth_user_dir.tar.bz2"><span style="font: normal normal normal 18px/normal 'Lucida Grande';"><span class="Apple-style-span" style="text-decoration: none;"><strong>attached file</strong></span></span></a>)</h2> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> cd /root</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> mkdir src</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> cd src</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'; color: #1e00af"> <span style="letter-spacing: 0.0px color: #000000"><strong>#</strong> wget <a href="http://www.genos.org/downloads/mod_authuserdir-1.0.tgz"><span style="text-decoration: underline ; letter-spacing: 0.0px">http://www.genos.org/downloads/mod_authuserdir-1.0.tgz</span></a></span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> tar -xzvf mod_authuserdir-1.0.tgz</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> cd mod_auth_user_dir/</span></p> <h4>Then download the replacement files attached or patch </h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> patch -p1 &lt; Makefile.am.diff</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> patch -p1 &lt; configure.in.diff</span></p> <h2>build the module</h2> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> aclocal</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> autoconf</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> automake -a</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> ./configure --with-apache=/usr/include/apache2</span></p> <h2>Install the module</h2> <h4>Build and install library</h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> apxs2 -i -a -n auth_user_dir libmod_auth_user_dir.la</span></p> <h4>Create the needed file for activation of this module in apache2, the debian way</h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> echo 'LoadModule mod_auth_user_module /usr/lib/apache2/modules/libmod_auth_user_dir.so' \</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; /etc/apache2/mods-available/auth_user_dir.load</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">Enable the needed modules</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> a2enmod auth_mysql</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> a2enmod dav</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> a2enmod dav_fs</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> a2enmod auth_user_dir</span></p> <h4>Create database and tables for mysql_auth . (Here we assume you already have mysql running)</h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> mysqladmin -uroot -p create davusers</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> mysql -uroot -p davusers</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">mysql&gt; CREATE TABLE users (</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt;   user_name CHAR(30) NOT NULL,</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt;   user_passwd CHAR(20) NOT NULL,</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt;   user_group CHAR(10),</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt;   PRIMARY KEY (user_name)</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; );</span></p> <h4>Add one user to database</h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; INSERT INTO  `davusers`.`user_info` (</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; `user_name` ,</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; `user_passwd` ,</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; `user_group`</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; ) VALUES (</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; 'test',  'test',  ''</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&gt; );</span></p> <h4>Create folder for DAV &amp; users subfolders</h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Courier New'"> <span style="letter-spacing: 0.0px"># mkdir /var/davshare</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Courier New'"> <span style="letter-spacing: 0.0px"># mkdir /var/davshare/test</span></p> <h2>Change apache virtualhost configuration</h2> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Grande'"> <span style="letter-spacing: 0.0px">Add the following directory to your virtualhost conf file</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">Alias /webdav /var/davshare</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&lt;Location /webdav&gt;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"># Activate DAV module on this location</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">DAV On</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"># Specific auth_user_Dir Parameter</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>  AuthUserDirRoot  &quot;/var/davsharev&quot;</strong></span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"># auth_mysql parameters</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthName &quot;Secured access&quot;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthGroupFile /dev/null</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthUserFile /dev/null</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthType Basic</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthBasicAuthoritative Off</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL On</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Host localhost</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_User admin</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Password mmypassword</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Authoritative on</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_DB davusers</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Password_Table user_info</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Username_Field user_name</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Password_Field user_passwd</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Group_Field user_group</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Group_Table user_info</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">AuthMySQL_Encryption_Types Plaintext PHP_MD5 Crypt_DES</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&lt;Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK&gt;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">require valid-user</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&lt;/Limit&gt;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">&lt;/Location&gt;</span></p> <h4>Restart Apache2</h4> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> /etc/init.d/apache2 restart</span></p> <h2>Does it works ?</h2> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Grande'"> <span style="letter-spacing: 0.0px">If you are on a linux, then you can test your connexion with a command line client : cadaver.</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> apt-get install cadaver</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>#</strong> cadaver my.virtual.host/webdav/test</span></p> <br /> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Grande'"> <span style="letter-spacing: 0.0px">cadaver should ask you a username and password. type the ones you added in mysql table and you should see a dav prompt like it :</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px"><strong>dav:/webdav/&gt;</strong> ls</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">Listing collection `/webdav/': succeeded.</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">Coll:   test                                     0  Apr  2 16:14</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Courier New'"> <span style="letter-spacing: 0.0px">Coll:   notme                                  0  Apr  2 16:14</span></p> <br /> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Grande'"> <span style="letter-spacing: 0.0px">Then if you try to access to a folder different from the user you specified at logon, you will be asked for the correct username and password.</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Grande'"> <span style="letter-spacing: 0.0px">So it should work. the last issue is that users can see the list on folders in the dav share, even if they cannot see the contents. If anyone has an idea to fix this issue ...</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Grande'"> <span style="letter-spacing: 0.0px">Also here is a nice description on how you can get connected to a webDAV Share using Any operating system : <a href="http://plone.org/documentation/kb/webdav"><span style="text-decoration: underline ; letter-spacing: 0.0px color: #1e00af">http://plone.org/documentation/kb/webdav</span></a>.</span></p> <br /> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Lucida Grande'"> <span style="letter-spacing: 0.0px">I hope this will help someone, it already helped myself :)</span></p> </div>