Le blog a été déplacé
Vous pouvez me retrouver sur IT-Signal

mercredi 19 septembre 2007

Installation d'un serveur Glassfish + Apache + PHP + MySQL sur Windows

1.Jdk Java (jdk 6 update 2) [La base Java]

Installation

Installer le jdk (lancer l’exécutable), laisser la configuration standard.

Configuration

Définir la variable d’environnement JAVA_HOME qui pointe sur le répertoire d’installation du Jdk (généralement C:Program FilesJavajdk_6_2_0).

Redéfinir la variable d’environnement PATH, pour qu’elle intègre les exécutables Java. (Généralement dans C:Program FilesJavajdk_6_2_0bin).

Pour accéder aux variables d’environnement, aller dans les propriétés système (clic droit sur le poste de travail / propriétés), aller dans l’onglet Paramètres systèmes avancés, puis cliquer sur variables d’environnement.

2.Apache 2.2 [le serveur web qui reçoit les requêtes des clients]

Installation

Installer Apache 2.2 (si possible à la racine pour éviter des espaces dans les adresses) (lancer le msi)

Suivre les indications pour la configuration, en spécifiant que le serveur écoute sur le port 80 (port standard du web). Pensez à indiquer le nom du domain, du serveur ainsi que l’adresse mail du webmaster.

Demander un démarrage en service pour que le serveur web soit démarré à chaque reboot.

Redéfinir la variable d’environnement PATH, pour qu’elle intègre les exécutables (Généralement dans C:apachebin).

Configuration

Le répertoire de configuration est trouve dans Apacheconf et le principal fichier de configuration est httpd.conf.

Le répertoire des documents web (site web et application légères) est htdocs.

Il faut bien lire ce fichier ainsi que les explications pour comprendre le paramétrage du serveur, mais aucune configuration n’est nécessaire pour le moment.

Utile

Pour démarrer le serveur (le service pour être exact), utilisez la commande suivante :

NET START APACHE2

Pour l’éteindre :

NET STOP APACHE2

3.PHP 5.2.3 [le serveur applicatif léger, pour PhpMyAdmin…]

Installation

Installer PHP5.2.3 (si possible à la racine pour éviter des espaces dans les adresses) (lancer le msi)

Suivre les indications pour la configuration, sélectionnez le module pour Apache 2.2.x et demander l’installation de toutes les extensions ainsi que de tous les composants optionnels. Vous devez aussi indique le répertoire de configuration d’Apache, c'est-à-dire le dossier conf de votre installation du serveur Apache 2.2.0.

Redéfinir la variable d’environnement PATH, pour qu’elle intègre les exécutables.

Configuration

Le principal fichier de configuration est PHP/php.ini

On peut créer un fichier à partir d’un fichier type fourni par PHP en le modifiant ensuite.

Quel que soit le fichier que vous utilisez, vous devez redéfinir les chemins d’accès aux fichiers. Recherchez la variable extension_dir et modifiez sa valeur pour qu’elle pointe sur le répertoire ext de votre installation de PHP. Modifiez aussi les variables upload_tmp_dir et session.save_path pour qu’elles pointent sur des dossiers existants.

Pour que les fichiers PHP soient interprétés avant d’être servi par le serveur web Apache, il faut qu’Apache connaisse ce type de fichier et sache avec quel logiciel le traiter.

Pour cela l’installation de PHP a rajouté les lignes suivantes dans le fichier de configuration d’Apache (httpd.conf) (en pensant à adapter le chemin d’accès). Vous n’avez donc plus qu’à vérifier que l’ajout a bien été effectué.

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:\php\"
LoadModule php5_module "C:\php\php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

Vous devez ensuite ajouter la reconnaissance du type mime dans mime.types (contenu dans le dossier conf d’Apache) :

application/x-httpd-php php php3 php4 php5
application/x-httpd-php-source phps

Pour que les pages d’index en PHP soit prises en compte, il vous faut aussi modifier la liste des fichiers d’index d’Apache. Dans le fichier de configuration httpd.conf, modifiez les lignes suivantes (on en profite pour ajouter quelques autres pages qui nous servirons plus tard). Vous devez ajouter les éléments en gras, le reste ne doit pas être modifié.

<IfModule dir_module>
DirectoryIndex index.html index.shtml index.htm index.php index.php3 index.php4 index.jsp default.html
</IfModule>

Si certaines applications vous demandent d’ajouter des modules, vous devrez les ajouter en retirant le signe de commentaire (#) de la ligne de chargement du module, par exemple :

#LoadModule autoindex_module modules/mod_autoindex.so

Pour tester que tout marche bien, créez, à la racine du serveur (Apache/htdocs/), un fichier index.php qui contient :

<?php
phpinfo();
?>

Redémarrer le serveur Apache pour qu’il prenne en compte les modifications que vous venez d’effectuer, puis tenter de lire ce fichier en demandant la page suivante à votre navigateur internet (Firefox, Internet Explorer...) : http://localhost/

Vous devriez normalement tomber sur une longue page dans les tons violets. Dans ce cas, vous savez que le fichier index.php a été considéré comme un fichier d’index et que le fichier PHP a été traité par le serveur applicatif PHP.

Si ce n’est pas le cas, reprenez ce manuel depuis le début pour voir ou vous avez décroché.

Utile

Ce serveur PHP ne tourne pas en continu, un exécutable est appelé par Apache si nécessaire, donc pas de nécessité de démarrer et d’éteindre le serveur PHP.

4.MySQL 5.0.45 [le serveur de bases de données]

Installation

Installer MySQL 5.0.45 (si possible à la racine pour éviter des espaces dans les adresses) (dézipper puis lancer l’exécutable).

Suivre les indications pour la configuration, mais mettre un mot de passe pour l’utilisateur root.

Redéfinir la variable d’environnement PATH, pour qu’elle intègre les exécutables.

Décompressez PhpMyAdmin dans un dossier PhpMyAdmin à la racine du serveur web (Apache/htdocs/). Copiez le fichier config.sample.inc.php et renommez le config.inc.php. Ouvrez ce fichier et ajoutez un mot quelconque à la ligne suivante :

$cfg[‘blowfish_secret’] = ‘secret’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!*/


Configuration

Le principal fichier de configuration de MySQL est my.ini

Un fichier de configuration est créé par l’installation, mais on peut aussi en créer un à partir d’un fichier type fourni par MySQL (my-medium.ini) en le modifiant ensuite.

On va configurer les bases de données grâce à l’interface graphique en allant sur http://localhost/phpmyadmin/, loguez-vous.

Pour ajouter un utilisateur, cliquez sur privilèges, puis laissez-vous guider.

S’il en existe supprimer toute base de test existante ainsi que tout utilisateur de test.

Evitez les utilisateurs sans mot de passe.

Restreignez l’accès au compte root au serveur (pas d’accès distant)

Utile

Pour démarrer le service MySQL, utilisez la commande suivante :

NET START MySQL

Pour l’éteindre :

NET STOP MySQL

5.Mise en place du site

Installation

Décompressez le contenu de PhpMyVisites2_2.zip dans un dossier PhpMyVisites à la racine du serveur web (Apache/htdocs/).

Installez votre site à la racine du serveur web (Apache/htdocs/).

Configuration

Tout se passe dans PhpMyVisites, aller sur http://localhost/phpmyvisites/ pour le configurer. Il vous faudra créer une base de données phpmv ainsi qu’un utilisateur phpmv (vous pouvez choisir le mot de passe) tout cela grâce à PhpMyAdmin installé précédemment.

PhpMyVisites et le site doivent être sur le même serveur (sinon, il faut modifier les liens des logiciels vers PhpMyVisites). Il faudra ajouter la portion de code donnée par PhpMyVisites dans toutes les pages html comme indiqué par PhpMyVisites

6.Sun Application Server Platform Edition 9.0.0.1 [le serveur applicatif]

Installation

Pour installer JAP (Java Application Platform), lancer l’exécutable sjsas_pe-9_0_01-p01-windows.exe récupéré depuis le site de sun.

Installez-le à la racine pour éviter les problèmes d’espace dans les adresses.

Le serveur doit écouter sur les ports 8080 et 8181 (ou 80 et 81 s’il est en stand-alone)

Pensez à accepter la mise en Service pour que le serveur démarre automatiquement.

Redéfinir la variable d’environnement PATH, pour qu’elle intègre les exécutables (surtout asadmin), même si l’installation vous a dit qu’elle l’avait fait.

Copier dans JAP/lib la librairie java d’accès à la base MySQL : mysql-connector-java-5.0.6-bin.jar, itext-2.0.4.jar (qui gère la création des PDF), ainsi que jdom.jar

Configuration

La configuration se fait grâce à l’écran d’administration intranet (accès à http://localhost:4848/).

Un domaine a automatiquement été créé (il s’appelle généralement domain1), il est dans JAP/domains/domain1/ un dossier config permet de configurer à la main le serveur, mais on ne l’utilisera pas.

Asadmin est l’utilitaire en ligne de commande qui permet de gérer le serveur.


Pour récupérer les erreurs générées par le serveur applicatif, loguez-vous dans l’administration web et cliquez sur ‘View log files’ ou ‘Search Log Files’. Vous n’avez, à priori, aucune modification à faire à la configuration par défaut (à part celle demandée par ce manuel).

Utile

Pour démarrer le serveur, utilisez la ligne de commande suivante :

asadmin start-domain

Pour l’éteindre :

asadmin stop-domain

Pour connaitre l’état des domaines :

asadmin list-domains

Déploiement

Dernière étape, la plus simple, le déploiement des applications sur le serveur applicatif :

Démarrer le serveur applicatif, connectez vous sur l’interface d’administration intranet.

Cliquez sur Application/Web-Application, puis sur deploy… Choisissez l’archive war (web archive) correspondante à l’application à déployer, puis sur next.

7.Mod_jk (Connecteur Apache -> Serveur applicatif)

Mod_jk permet de router les requêtes du serveur applicatif reçues par Apache vers le serveur applicatif : Le serveur applicatif écoute sur le port 8080 et pourtant on se connecte sur le port 80 (port par défaut d’internet). Apache écoute sur ce port 80. On doit lui préciser comment et quelle requêtes renvoyer.

Installation

Une autre source : http://weblogs.java.net/blog/jfarcand/archive/2006/03/running_glassfi_1.html

Eteignez les serveurs Apache et JAP.

Copiez mod_jk.so disponible sur le site d’Apache dans le répertoire modules d’Apache (Apache/modules).


Demandez à Apache de charger le module, ajoutez les lignes suivantes à httpd.conf (en pensant à adapter le chemin d'accès) :

# Chargement du module JK (adaptez le chemin d’acces)
LoadModule jk_module C:/Apache/modules/mod_jk.so
JkWorkersFile C:/Apache/conf/worker.properties
# L’adresse des logs (avec ceux de Apache par exemple)
JkLogFile C:/Apache/logs/mod_jk.log
# Le niveau de log [debug/error/info]
# Passez le temporairement en debug, si nécessaire
JkLogLevel info
# Le format de log
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions (ne pas modifier)
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories# JkRequestLogFormat (ne pas modifier)
JkRequestLogFormat "%w %V %T"

On va ensuite prévenir le serveur applicatif de l’utilisation de mod_jk.

On va commencer par lui donner les outils nécessaires à la communication. Copiez les 3 archives jar (commons-logging.jar, commons-modeler.jar, tomcat-ajp.jar) vers le dossier lib de JAP.

On va ensuite lui demander d’écoute ce connecteur, pour cela appeler la commande suivante :

Asadmin start-domain (pour démarrer le serveur)

asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8080

Faites bien attention à ne pas faire de fautes de frappe, c’est bien enterprise et non entreprise !

Cette option va créer une option dans la machine virtuelle java qui exécute le serveur, elle va forcer le serveur applicatif à écouter le connecteur.

Le serveur écoutait déjà sur le port 8080, ce qui pose un problème car deux processus ne peuvent pas écouter sur le même port (l’accepteur http et l’accepteur du connecteur). Nous devons donc en supprimez un (l’accepteur HTTP, ce qui évitera les demandes directes sur le serveur applicatif).

Pour supprimer cet écouteur, démarrer le serveur, connectez vous sur l’interface web d’administration, loguez-vous, cliquez sur configuration puis http-service, puis http listeners.

Sélectionnez les http-listener-1 et http-listener-2 sur les ports 8080 et 8181 (ssl) et supprimez-les.

Le serveur applicatif peut enfin écouter sans problème.

Eteignez le serveur applicatif. (asadmin stop-domain)

Dernière étape de cette configuration, vous devez indiquer à Apache quelles requêtes renvoyer, à qui et comment. Pour cela, nous allons créer un fichier configurant des worker (les objets qui renvoient les requêtes). Créer un fichier worker.properties dans le dossier Apache/conf/ (si le serveur applicatif est sur un serveur distant, modifiez la propriété host) :

# Creation d’un worker pour le serveur applicatif
worker.list=workerJava
# Donnons quelques propriété pour info
worker.workerJava.type=ajp13
worker.workerJava.host=localhost
worker.workerJava.port=8080

Nous avons définit un worker qui connectera le serveur web avec le serveur applicatif (on a donc le comment et le où).

Spécifions maintenant les règles de routage :

Dans httpd.conf, ajoutez les lignes suivantes :

# On envoie les requêtes au serveur applicatif :
# Pour test
JkMount /test/* workerJava

Normalement ici, tout devrait être fonctionnel. Pour le vérifier, démarrer le serveur (asadmin start-domain).


Aucun commentaire:

Enregistrer un commentaire