Titre: Version: Dernière modification: Auteur: Statut: Licence:



Documents pareils
Titre: Version: Dernière modification: Auteur: Statut: Licence:

INSTALLATION APACHE POUR WINDOWS (XP OU 2000)

Comment avoir le logiciel? Le serveur web APACHE peut être téléchargé gratuitement du site web de APACHE:

Différentes installations sur un serveur Windows 2000 ou 2003.

Tutoriel compte-rendu Mission 1

Procédure d'installation du serveur Apache HTTPD pour Windows

Préparation d un serveur Apache pour Zend Framework

Aide à la Détection de Faiblesses d un site Web Mandataire inverse, Modsecurity

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

TP Service HTTP Serveur Apache Linux Debian

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Apache 2.4 Installation et configuration

Installation d un hébergement Web à domicile

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Le serveur web Apache

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

SERVEUR HTTP Administration d apache

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Novell. ifolder. Lisezmoi

A. Architecture du serveur Tomcat 6

Procédure d'installation complète de Click&Decide sur un serveur

Module 7 : Configuration du serveur WEB Apache

contact@nqicorp.com - Web :

Guide d installation JMap 5.0

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

DOCUMENTATION ADMINISTRATEUR

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

FileMaker Server 13. Guide de démarrage

BTS SIO Dossier BTS. PURCHLA Romain

Installation / configuration des applications PreInscription et Inscription Web Ajax

Installation et prise en main

Sommaire: 1. Introduction 2. Objectif 3. Les applications 4. Installation _Java _Applications lourdes _Applications légères _Remarques générales

Les serveurs WEBUne introduction

contact@nqicorp.com - Web :

Serveur Subversion Debian GNU/Linux

Symantec Backup Exec Remote Media Agent for Linux Servers

Présentation Serveur Apache et pour RePeGlio

Load Balancing avec Apache 2 14/07/10

IIS 6 - PHP5 - MySQL phpmyadmin 2.6

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Dans l'épisode précédent

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

Serveur proxy Squid3 et SquidGuard

CYBERGATE -TP-APACHE_2.DOC

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

UE5A Administration Réseaux LP SIRI

SafeGuard Enterprise Web Helpdesk. Version du produit : 6.1

TD séance n 2c Mise à jour des Systèmes

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Présentation, mise en place, et administration d'ocs Inventory et de GLPI

Installation de Windows 2000 Serveur

Le service d'accès à distance aux bases de données du SCD de Paris 10 Nanterre

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Petit guide pour l installation de CVW sous Linux

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

CAHIER DES CHARGES D IMPLANTATION

Tekla Structures Guide d'installation. Version du produit 21.0 mars Tekla Corporation

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Table des matières Hakim Benameurlaine 1

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

Sauvegarder la base de données de Drupal avec le module Backup and Migrate

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Les Imprimantes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Janvier 2014

JOnAS Day 5.1. Outils de développements

SafeGuard Enterprise Web Helpdesk. Version du produit : 5.60

Installation d'un serveur DHCP sous Windows 2000 Serveur

[ GLPI et OCS pour Gentoo 2006] ArtisanMicro. Alexandre BALMES

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Panda Managed Office Protection. Guide d'installation pour les clients de WebAdmin

IBM Tealeaf CX Version décembre Manuel de l'injecteur de cookies

Créer son premier package.deb. 19 août

Guide de mise à jour de Suite SAP Business Intelligence Patch 10.x

MANUEL D INSTALLATION D UN PROXY

Guide d installation de SugarCRM Open Source version 4.5.1

Installation de Windows 2003 Serveur

Cyberclasse L'interface web pas à pas

Joomla! Création et administration d'un site web - Version numérique

SafeGuard Enterprise Web Helpdesk. Version du produit : 6

À propos de la mise à jour Mac OS X (Delta)

Installation. Conception, mise en œuvre, hébergement, exploitation et

AxCrypt pour Windows

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Procédure d'installation

Réaliser un inventaire Documentation utilisateur

Guide d'installation du token

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Printer Administration Utility 4.2

PPE 2-1 Support Systeme. Partie Support Système

Retrospect 7.7 Addendum au Guide d'utilisation

Architectures web/bases de données

Tutoriel Drupal version 7 :

Transcription:

Titre: Mise en œuvre de mod_webobjects Version: 2.0 Dernière modification: 2010/09/06 20:00 Auteur: Aurélien Minet <aurelien dot minet at cocktail dot org> Statut: version finale Licence: Creative Commons - by-nc-sa 2.0 ( http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ ) Remarques: les pré-requis sont de savoir installer et configurer Apache, maîtriser l'installation les paquets de la distribution que vous utilisez, avoir des notions de compilation en C et des l'outil: make, libtool. le document est "orienté" Apache sous Linux mais la procédure d'installation reste applicable à d'autres Unix rien dans ce document n'est supporté par Apple ce document dans sa globalité n'est pas spécifique Cocktail au niveau de la typographie: le code, les lignes de commandes, le contenu des fichiers sont en italique la dernière version est disponible ici 1

Mise en œuvre de mod_webobjects 2

Versions: date n version 10/07/2008 0 brouillon 30/07/2008 1.0 version initiale 06/09/2010 2.0 commentaires Mise à jours suite la création d'un nouveau package utilisant exclusivement apxs Les version au format X.y.z ne sont pas listées, elles ne contiennent que des corrections (coquilles...). L'information contenue ne change pas. 3

Objectif:... 5 Introduction:... 5 1. Rôle et fonctionnement... 6 2. Installation... 9 3. Configuration... 10 Conclusion... 12 4

Objectif: Comprendre le fonctionnement de mod_webobjects Installer mod_webobjects Configurer mod_webobjects Introduction: Apple livrait avec WebObjects 5.2 les sources de mod_webobjects sous "APPLE PUBLIC SOURCE LICENSE" en différentes versions: IIS, Apache 1.3 et CGI. La Licence permet la modification, c'est pourquoi le support d'apache 2 et 2.2 a été rajouté par le projet Wonder en plus de divers corrections. Avec WebObjects 5.4 Apple a livré une version reprenant les corrections et supportant officiellement apache 2 et 2.2, le projet Wonder a de nouveau apporté des corrections. L'installation peut se baser sur la version XCode 3.0, qui est compatible (niveau des URL) avec les anciennes versions de WebObjects, ou sur la version Wonder qui est une version patchée de la version XCode 3.0 comprenant des corrections de bugs notamment pour x86_64. Nous utiliserons donc une version repackagé, pour faciliter la compilation, issue des sources de Wonder mais uniquement destinée a Apache 2.2 5

1. Rôle et fonctionnement mod_webobjects peut aussi être appelé Adaptor (ou encore HTTP Adaptor) étant donné qu'il reçoit les requêtes http qu'il transmet à l'application afin d'obtenir une réponse qu'il renvoie au client. Et que cette dernière à un WOAdaptor qui par défaut est le WODefaultAdaptor, il fournit le support http à l'application c'est grâce à lui que l'on peut ce connecter directement à l'application via son port via un navigateur web (il existe d'autres WOAdaptors). Ainsi mod_webobjects fait interface entre les clients et les applications, il transforme donc le serveur http en proxy. Mais pas seulement car il peut découvir applications avec leurs instances, c'est pourquoi le proxy est dynamique et qu'il fait load-balancer lorsqu'il y a différentes instances pour une même application. Pour cela il fonctionne avec 2 listes: une liste de serveurs d'applications une liste d'instances disponibles pour chacun des serveurs de la liste précédente. Ces 2 listes peuvent d'être dynamiques ou statiques, on obtient 3 configurations possibles: multicast: découverte des serveurs dynamique (liste des instances forcément dynamique) multihosts: la liste de serveurs fixe (n wotaskd de déclarés) mais la liste des intances est dynamique statique: les 2 listes sont fixes (instances disponibles ou non) La configuration multihosts est recommandée. Dans cette configuration mod_webobjects va donc régulièrement contacter chaque wotaskd pour obtenir la liste des instances disponibles. 6

Exemple: Sur le site, il y a 2 deux serveurs, mod_webobjects contacte les wotaskds de chaque serveur et obtient un liste de 4 instances correspondant à 2 applications: App1 a 4 instances: 3 sont démarrées sur le premier serveur, la 4ième est déclarée mais non démarrée sur le deuxième serveur. App2 a 1 seule instance et elle est sur le deuxième serveur. 7

Exemple de ce que connaît au final mod_webobjects si toutes les instances était démarrées dans l'exemple précédant. <?xml version="1.0" encoding="ascii"?> <adaptor> <application name="app1" retries="5" scheduler="roundrobin" urlversion="4"> <instance id="1" port="2001" host="appserver1.mydomain.com" sendtimeout="3" recvtimeout="10"/> <instance id="2" port="2002" host="appserver1.mydomain.com"/> <instance id="3" port="2003" host="appserver1.mydomain.com"/> <instance id="4" port="2001" host="appserver2.mydomain.com"/> </application> <application name="app2" retries="1" scheduler="random" urlversion="4"> <instance id="1" port="2002" host="appserver2.mydomain.com"/> </application> </adaptor> Par instance il peut y avoir des paramètres spécifiques. Ce fichier XML correspond à la configuration statique. Apache avec mod_webobjects peut être sur l'un des serveurs WebObjects ou sur un autre serveur. Il peut même y avoir plusieurs serveur pour Apache avec mod_webobjects, chacun contactant les wotaskds des serveurs d'applications indépendamment. 8

2. Installation pré-requis: Apache avec le mpm prefork (et les headers correspondants) APR (Apache Portable Runtime) et APR-utils gcc >= 3.4 glibc >= 2.2 L'ancienne méthode utilisait les versions issues d'xcode 3.0 (/Developer/Examples/ WebObjects/Sources) ou de Wonder (version patché de celle d'xcode 3.0), cela passait par l'utilisation d'un fichier make.config pas forcement très pratique, la compilation était gérée par des Makefile. La version repackagée Cocktail est celle de WOnder mais que pour Apache 2.2, les fichiers nécessaires sont dans un seul et même répertoire. Ainsi après avoir décompressé l'archive il faut lancer le script build.sh présent dans le répertoire des sources. Il va lancer APache extension tool qui va se charger de toute la compilation. Il peut y avoir quelques warning notamment pour la fonction xmltokenizernexttoken, ne sont pas problématique. S'il n'y a pas eu de problème mod_webobjects.so est dans le sous-répertoire "caché".libs Il faut le copier dans dans /usr/lib/apache2/modules ou plus exactement dans celui contenant les modules d'apache, l'emplacement peut varier d'une distribution a l'autre. La fin de build.sh vous indique la commande de copie et ce qu'il reste a faire. 9

3. Configuration Tout d'abord vérifier qu'apache est configuré avec comme "moteur", i.e. Multi-Processing Modules (MPMs), le mpm prefork et non le worker, cela en cas de forte charge peux causer des problèmes de stabilitée. Copier le fichier mod_webobjects.conf dans le sous répertoire contenant la configuration des modules ( /etc/apache2/modules.d/ ou /etc/httpd/conf.d : fonction de votre distribution). Ensuite il faut éditer mod_webobjects.conf : commenter la ligne "LoadModule WebObjects_module modules/ mod_webobjects.so" si votre distribution centralise tout les LoadModule dans un fichier unique (httpd.conf ou apache.conf) éventuellement corriger la valeur pour WebObjectsDocumentRoot même si l'adaptor n'utilise pas cette valeur. choisir le mode de fonctionnement en changeant la valeur de WebObjectsConfig, il est recommandé d'utiliser le multihost qui a la forme: WebObjectsConfig http://<name-of-a-host>:<port-on-a-host>,http://<name-ofanother-host>:<port-on-a-host> <interval> activer la page d'information http://webserver/cgi-bin/webobjects/ WOAdaptorInfo?user+password en décommentant/changeant WebObjectsAdminUsername et WebObjectsAdminPassword décommenter WebObjectsLog afin de pouvoir activer les logs lorsque /tmp/ logwebobjects existe on peut ajouter: WebObjectsOptions redir=http://.../erreur.html pour personnaliser la page d'erreur lorsque l'application demandée n'existe pas ou qu'elle n'a pas d'instance démarrée. Puis il faut modifier la configuration d'apache: il faut charger le module WebObjects (soit dans mod_webobjects.conf soit dans httpd.conf ou autre selon votre distribution) LoadModule WebObjects_module modules/mod_webobjects.so éventuellement si vous utilisez mod_rewrite, il est préférable d'avoir les LoadModule dans cette ordre (si les LoadModule sont centralisés dans un seul fichier) LoadModule WebObjects_module modules/mod_webobjects.so LoadModule rewrite_module modules/mod_rewrite.so il faut commenter la ligne ScriptAlias /cgi-bin/ "/path/to/cgi/dir..." si elle existe. il faut éventuellement changer les droits d'accès aux répertoires: par défaut il y peut y avoir: <Directory / > Order deny,allow Deny from all </Directory> (ce qui est très sécuritaire) 10

donc il faut inverser les droits <Directory / > Order allow,deny allow from all </Directory> (ce n'est pas vraiment l'idéal) ou ajouter: <LocationMatch /cgi-bin/webobjects/.*> Order allow,deny Allow from all </LocationMatch> <Location /WebObjects> Order allow,deny Allow from All </Location> (ce qui mieux niveau sécurité) enfin il faut s'assurer que mod_webobjects.conf est bien chargé par une directive Include ( Include /.../webobjects.conf ou Include /etc/apache2/modules.d/*.conf ) Il ne reste plus qu'a vérifier que l'adaptor est bien chargé après avoir redémarré Apache vérifier que http://webserver/cgi-bin/webobjects/woadaptorinfo?user+password fonctionne et indique la bonne configuration. une URL du type http://webserver/cgi-bin/webobjects/appquinexistepas doit afficher "The requested application was not found on this server." (ou la page d'erreur maison) si le mod_webobjects tourne et s'il est accessible. après touch /tmp/logwebobjects le fichier /tmp/webobjects.log doit être crée par mod_webobjects ce qui indique qu'il est chargé. Le contenu peut aider à l'analyse de certains problèmes. Aussi il ne faudra pas oublier de copier les WebServerResources dans /.../htdocs/ WebObjects, signer les jar dans /.../htdocs/webobjects/java... 11

Conclusion La dernière version de mod_webobjects est plus simple à compiler, la configuration est bête et méchante: il faut respecter certains points prècis. Il y a encore pas mal de limitations (pas de gestion virtual host...) mais ce module est critique pour le déploiement et la disponibilité des applications, prendre un peut de temps pour l'installer est nécessaire. Aussi il est fortement recommandé de lire la documentation officielle d'apple sur l'adaptor dans le WebObjects Deployment Guide. 12