jeudi, janvier 04, 2007

PersoMenu WinDev, WebDev et WinDev Mobile.

Le « PersoMenu » permet de lancer n'importe quel exécutable à partir de l'éditeur grâce à une ligne de commande et des macros.

Dans le billet précédent, je parlais de WebDev 11 (35c) qui ne configurait pas le serveur Apache 2.2.3 automatiquement.

J'ai donc fait un programme en Wlangage permettant d'ajouter l'alias pour chaque site dans le fichier httpd.conf.

Puis dans WebDev j'ai créé un Perso menu :

La ligne de commande est la suivante :

"D:\Projet\ModifHttpd.conf\Exe\ModifHttpd_conf.exe" "C:\Program Files\Apache Software

Foundation\Apache2.2\conf\httpd.conf" "{$RepProjet}"


{$RepProjet} : c'est une macro disponible est cliquant sur le bouton « Macro ». Elle renvoie le chemin du répertoire du projet.

ModifHttpd_conf.exe : Mon programme WinDev permettant d'ajouter l'alias au fichier httpd.conf.


Astuce : Dans l'aide il n'est pas précisé comment créer une ligne de commande avec un chemin d'accès contenant des espaces. Le plus simple est de tester la ligne de commande dans « Demarrer...executer » de windows.


Code du programme WinDev « ModifHttpd_conf.exe » :


// Code de déclaration global du projet

LOCAL

gsRes est une chaîne

gnIdFic est un entier

gsCheminFic est une chaîne

gsALias est une chaîne

gsNomSite est une chaîne

gbRes est un booléen


// exemple de ligne de commande:

//"D:\Projet\ModifHttpd.conf\Exe\ModifHttpd_conf.exe" "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf" "C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML"


gsCheminFic = LigneCommande(1) //C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

gsALias = LigneCommande(2) //C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML


// Ligne de code pour test

SI EnModeTest() ALORS

gsCheminFic = "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf"

gsALias = "C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML\"

FIN


SI gsCheminFic <> "" ALORS

// Ouverture du fichier httpd.conf

gnIdFic = fOuvre(gsCheminFic,foAjout)

SI gnIdFic <> -1 ALORS

SI gsALias <> "" ALORS

// On rajoute _WEB au chemin du site

SI Droite(gsALias,1) = "\" ALORS

gsALias = gsALias[[1 A (Taille(gsALias)-1)]]

FIN

gsNomSite = ExtraitChaîne(gsALias,1,"\",DepuisFin)

gsNomSite = "/"+Majuscule(gsNomSite)+"_WEB/"

// Change les \ en /

gsALias = Remplace(gsALias,"\","/")

// On construit le chemin complet

gsALias = gsALias+gsNomSite

// Construction de la chaîne à ajouter au fichier httpd.conf

gsRes = [

Alias %1 "%2"

Options None

AllowOverride None

Order allow,deny

Allow from all

]

gsRes = RC+ChaîneConstruit(gsRes,gsNomSite,gsALias)

// Écriture dans le fichier

gbRes = fEcritLigne(gnIdFic,gsRes)

SI PAS gbRes ALORS

Erreur()

FIN

fFerme(gnIdFic)

// Redemarrer le serveur.

sr est une chaîne = [

"%1" "%2"

]

sr = ChaîneConstruit(sr,"C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe","-k restart")

LanceAppliAssociée(sr)

SINON

fFerme(gnIdFic)

gsRes = [

"%1"

]

gsRes = ChaîneConstruit(gsRes,gsCheminFic)

// que sous windows

LanceAppliAssociée(gsRes)

FIN

FIN

FIN


mardi, janvier 02, 2007

Comment configurer Apache 2.2.3 pour WebDev 11 et PHP 4.x

Après installation de la version 2.2.3 d'Apache, je me suis aperçu que je ne pouvais plus tester mes sites depuis WebDev.

Quelques recherches sur le web, m'ont permis de comprendre pourquoi.

Cette version d'apache ne fonctionne pas de la même manière que la version 2.0.59. Le fichier httpd.conf a été découpé en plusieurs fichiers ce qui le rend plus facile à lire.

Dans ce qui suit, on suppose que PHP est déjà installé sur le poste et que la version précédente d'Apache a été désinstallée.


Les étapes de la configuration :


1 – Installation d'Apache 2.2.3


Adresse téléchargement : http://www.apachefrance.com/Telechargement/4/


2 – Configuration d'Apache pour PHP


Avant de commencer il faut télécharger le fichier : php4apache2.dll-php4.4.x.zip

à l'adresse suivante : http://www.apachelounge.com/download/

Ensuite suivre les indication du fichier : Readme First.txt


Après ces manipulations, dans le fichier httpd.conf, les lignes suivantes apparaissent:

LoadModule php4_module "c:/php/php4apache2.dll"

AddType application/x-httpd-php .php

# configure the path to php.ini

PHPIniDir "C:/php"


Ensuite ajouter index.php dans la clause DirectoryIndex


Pour constater le bon fonctionnement, créer un fichier index.php contenant le code suivante :

phpinfo();

Le placer dans le répertoire \htdocs (DocumentROOT) du serveur et le lancer.


3 - Configuration d'Apache pour WebDev 11 :


Avant il suffisait d'ajouter ceci au httpd.conf :

ScriptAlias /WD110AWP/ "C:/WebDev 11/Programmes/Moteur/Windows/AWP/"

AddType application/WebDev11-awp .awp

Action application/WebDev11-awp /WD110AWP/WD110Awp.exe


maintenant en version 2.2.3 :

AddType application/WebDev11-awp .awp

Action application/WebDev11-awp /WD110AWP/WD110Awp.exe

<IfModule alias_module>

ScriptAlias /WD110AWP/ "C:/WebDev 11/Programmes/Moteur/Windows/AWP/"

</IfModule>


<Directory "C:/WebDev 11/Programmes/Moteur/Windows/AWP">

AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>


Puis pour chaque site il faut ajouter :


Alias /HAWAII_WEB/ "C:/WebDev 11/Exemples/Exemples complets/Hawaii/HAWAII_WEB/"

<Directory "C:/WebDev 11/Exemples/Exemples complets/Hawaii/HAWAII_WEB/">

Options None

AllowOverride None

Order allow,deny

Allow from all

</Directory>


4 – Les messages d'erreurs possibles :


  • « Page Not Found » au lancement d'un site WebDev :

    Le ScriptAlias ou l'Alias du site n'ont pas été déclarés dans le httpd.conf

  • « Forbidden » au lancement d'un site WebDev :

    Manque les droits sur le répertoire du moteur WebDev. Ajouter :

<Directory "C:/WebDev 11/Exemples/Exemples complets/Hawaii/HAWAII_WEB/">

Options None

AllowOverride None

Order allow,deny

    Allow from all

    </Directory>

  • Les images n'apparaissent pas sur la page ou erreur javascript :

    C'est la clause

    <Directory « X:/..../MonSITE_WEB/ » sur le répertoire <MonSite>_WEB qui est manquante.


  • « Impossible de démarrer le serveur apache » lors du chargement du projet ou la mise à niveau du projet :

    Webdev ne semble pas trouver le serveur Apache et ne peut donc pas le configurer. Cette erreur n'est visiblement pas bloquante. Penser à créer l'Alias dans le fichier httpd.conf (voir §3)