PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WD - Configurando o Apache HTTPDCONF via Windev
WD - Configurando o Apache HTTPDCONF via Windev
Iniciado por BOLLER ADRIANO, ago., 09 2016 11:41 PM - Sem resposta
Membro registado
3.659 mensagems
Popularité : +175 (223 votes)
Publicado em agosto, 09 2016 - 11:41 PM
Prezados,

Segue exemplo de como configurar o Apache HTTPDCONF via Windev

//Codigo Global
GLOBALE
gsDebug est une chaîne
gbModeDebug est un booléen = Faux

LOCAL
gsRes est une chaîne
gnIdFic est un entier
gsCheminFicConf est une chaîne
gsALias est une chaîne
gsNomSite est une chaîne
gbRes est un booléen
sCheminExeServeurWeb est une chaîne
sContenuHttpdAvant est une chaîne
sNomChemFicLog est une chaîne
nPos est un entier


gsCheminFicConf = LigneCommande("HTTPDCONF") // /HTTPDCONF=<chemin d'accès httpd.conf>
gsALias = LigneCommande("PROJET") // /PROJET=<chemin d'accès au projet>
sCheminExeServeurWeb = LigneCommande("APACHE") // /APACHE=<chemin d'accès au httpd.exe>
gsDebug = LigneCommande(4) // /DEBUG

SI gsCheminFicConf ~="" ALORS
sMess est une chaîne = [
L'exécutable attend jusqu'à 4 paramètres :

1 - /HTTPDCONF : Le chemin d'accès complet au fichier httpd.conf,
2 - /PROJET : Le chemin complet du répertoire du projet,
3 - /APACHE : Le chemin complet du serveur Web (httpd.exe) pour le redémarrage du serveur,
4 - /DEBUG pour constituer un fichier de log en exécution.
]
Info(sMess)
RETOUR
FIN

SI gsDebug ~="/DEBUG" ALORS
gbModeDebug = Vrai
sNomChemFicLog = fFichierTemp("$$W",SysRep(srMesDocuments))
TraceDébut(trFichier,sNomChemFicLog)
FIN

SI gsCheminFicConf <> "" ALORS
// Recherche si Alias existe Déjà
sContenuHttpdAvant = fChargeTexte(gsCheminFicConf)

gnIdFic = fOuvre(gsCheminFicConf,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/"
Trace("Nom Alias : "+gsNomSite)
// Change les \ en /
gsALias = Remplace(gsALias,"\","/")
// On construit le chemin complet
gsALias = gsALias+gsNomSite
Trace("Chemin complet du site : "+gsALias)
// recherche si l'alias est présent
npos = Position(sContenuHttpdAvant,gsNomSite,1,SansCasse)
SI npos > 0 ALORS
// l'alias existe déjà
// Recherche du chemin d'accès. entre ""
npos1 est un entier = Position(sContenuHttpdAvant,"""",npos,SansCasse)
npos2 est un entier = Position(sContenuHttpdAvant,"""",npos1+1,SansCasse)
// chemin d'accès de l'alias
schem est une chaîne = sContenuHttpdAvant[[npos1+1 A npos2-1]]
// on vérifie que le chemin d'accès à l'alias est identique sinon on remplace
SI schem <> gsALias ALORS
sContenuHttpdAvant = Remplace(sContenuHttpdAvant,schem,gsalias)
SI PAS fSauveTexte(gsCheminFicConf,sContenuHttpdAvant) ALORS
Erreur(ErreurInfo(errComplet))
FIN
SINON
Info("L'alias "+gsNomSite+" existe déjà dans le fichier : "+RC+gsCheminFicConf+RC+"Aucune modification n'a été effectuée")
FIN
SINON
// Construction de la chaine à ajouter au fichier httpd.conf
gsRes = [
Alias %1 "%2"
<Directory "%2">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
]
Trace("Chaine Ajouter au httpd.conf : "+gsRes)
gsRes = RC+ChaîneConstruit(gsRes,gsNomSite,gsALias)
// Ecriture dans le fichier
gbRes = fEcritLigne(gnIdFic,gsRes)
SI PAS gbRes ALORS
Erreur()
FIN
fFerme(gnIdFic)
// Redemarrer le serveur Apache.
sr est une chaîne = [
"%1" "%2"
]
sr = ChaîneConstruit(sr,sCheminExeServeurWeb,"-k restart")
// rédemarrage du serveur WEB Apache
LanceAppli(sr)

SI gbModeDebug ALORS
Info("Un fichier de log a été créé à l'emplacement suivant : "+RC+sNomChemFicLog)
FIN
FIN

SINON
// ouverture du fichier httpd.conf dans notepad pour modification manuelle
fFerme(gnIdFic)
gsRes = [
"%1"
]
gsRes = ChaîneConstruit(gsRes,gsCheminFicConf)
// Uniquement sous windows
LanceAppliAssociée(gsRes)
FIN

FIN
FIN



Procedure Trace(smessage)

SI gbModeDebug ALORS
WL.Trace(smessage)
FIN


:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/