Apache est le serveur web le plus utilisé au monde
son site de référence est ici : https://httpd.apache.org/
Sur l’IBMi ,il est installé sous la forme d’un logiciel sous licence 5770 DG1
Vous avez un interface IBM Web Administration for i qui permet de gérer vos instances


Une instance IBMi par défaut c’est :
Un répertoire dans /www avec les éléments de l’instance, le principale fichier est HTTPCONF qui contient les directives de votre instance
et vous avez un membre dans le fichier QUSRSYS/QATMHINSTC
Vous avez besoin de recopier une instance d’une partition sur une autre !
Voici une méthode pour vous simplifier ces opérations
Sur la machine source
programme clle
PGM PARM(&INSTANCE)
/*-----------------------------------------------------*/
/* ce programme sert à sauvegarder un instance apache */
/* dans une bibliothèque que vous pourrez ensuite */
/* Envoyer sur une autre partition */
/*-----------------------------------------------------*/
DCL VAR(&INSTANCE) TYPE(*CHAR) LEN(10)
if cond(%parms < 1) then(do)
SNDUSRMSG MSG('Vous devez indiquer l''instance') +
MSGTYPE(*INFO)
return
enddo
DLTLIB LIB(MIGHTTP)
monmsg CPF2100
CRTLIB LIB(MIGHTTP) TEXT('Migration Apache')
CRTSAVF FILE(MIGHTTP/HTTPIFS)
CRTSAVF FILE(MIGHTTP/HTTPDEF)
/* saugegarde de la configuration */
SAV DEV('/QSYS.LIB/MIGHTTP.LIB/HTTPIFS.FILE') +
OBJ(('/www/' *tcat &instance )) +
SUBTREE(*ALL) DTACPR(*YES)
/* sauvegarde de la configuration */
CPYF FROMFILE(QUSRSYS/QATMHINSTC) +
TOFILE(MIGHTTP/QATMHINSTC) +
FROMMBR(&INSTANCE) TOMBR(&INSTANCE) +
MBROPT(*REPLACE) CRTFILE(*YES)
SAVOBJ OBJ(QATMHINSTC) LIB(MIGHTTP) +
DEV(*SAVF) SAVF(MIGHTTP/HTTPDEF) +
OBJTYPE(*FILE)
SNDUSRMSG MSG('Sauvegarde de l''instance,' *BCAT +
&INSTANCE *BCAT ' effectuée') +
msgtype(*info)
ENDPGM
commande
CMD PROMPT('Sauvegarde instance apache')
PARM KWD(INSTANCE) TYPE(*NAME) LEN(10) MIN(1) +
PROMPT('Nom de l''instance')
Envoyer la bibliothèque MIGHTTP sur la partition cible par ACS ou FTP
sur la machine cible
PGM PARM(&INSTANCE)
/*-----------------------------------------------------*/
/* ce programme sert à restaurer un instance apache */
/* Vous devez avoir la bibliothèque de sauvegarde */
/* MIGHTTP sur votre partition */
/*-----------------------------------------------------*/
DCL VAR(&INSTANCE) TYPE(*CHAR) LEN(10)
if cond(%parms < 1) then(do)
SNDUSRMSG MSG('Vous devez indiquer l''instance') +
MSGTYPE(*INFO)
return
enddo
CHKOBJ OBJ(MIGHTTP) OBJTYPE(*LIB)
monmsg CPF9801 exec(do)
SNDUSRMSG MSG('La Bibliothèque MIGHTTP doit exister') +
MSGTYPE(*INFO)
return
enddo
RST DEV('/QSYS.LIB/MIGHTTP.LIB/HTTPIFS.FILE') +
OBJ(('/www/' *tcat &instance)) +
SUBTREE(*ALL)
RSTOBJ OBJ(QATMHINSTC) SAVLIB(MIGHTTP) +
DEV(*SAVF) SAVF(MIGHTTP/HTTPDEF) +
OBJTYPE(*FILE) RSTLIB(MIGHTTP)
CPYF FROMFILE(MIGHTTP/QATMHINSTC) +
TOFILE(QUSRSYS/QATMHINSTC) +
FROMMBR(&instance) TOMBR(&instance) +
MBROPT(*REPLACE) CRTFILE(*NO)
SNDUSRMSG MSG('Sauvegarde de l''instance,' *BCAT +
&INSTANCE *BCAT ' effectuée') +
msgtype(*info)
ENDPGM
La commande
CMD PROMPT('Restaurer instance apache')
PARM KWD(INSTANCE) TYPE(*NAME) LEN(10) MIN(1) +
PROMPT('Nom de l''instance')
Pour contrôler
WRKLNK OBJ(‘/www/monsite/conf/httpd.conf’)
STRTCPSVR SERVER(*HTTP) HTTPSVR(MONSITE)
WRKACTJOB SBS(QHTTPSVR) JOB(MONSITE)
Remarque :
Vous devrez vérifier les dépendances, vous en avez essentiellement 2 points à contrôler
Les certificats si votre instance apache est en https vous devrez créer le certificat et l’association dans DCM
Les programmes CGI avec leur bibliothèque qui doivent être présent pour fonctionner
et vous n’êtes pas obliger de restaurer les logs …
