Windows + Apache

Guide d’installation

Windows + Apache

Déploiement pas à pas sur Windows 10/11 avec Apache 2.4 et PHP 8.2
(chargé comme module Apache), à partir du paquet généré par l’application.

Prérequis

Windows 10 ou 11 (64-bit)
Apache HTTPD 2.4.x — binaires VS17 x64 (apachelounge.com)
PHP 8.2.x Thread Safe (TS) x64
Oracle Instant Client 19c — paquet léger “Basic” (ou “Basic Light”), 64-bit
Le paquet de l’application archive sw_pkg_*.zip (voir étape 5)
Important : PHP doit être en version Thread Safe car il est chargé comme module Apache (php8apache2_4.dll). Pour IIS, c’est la version Non-Thread-Safe qu’il faut (voir le guide Windows + IIS).

1. Installer Apache 2.4

  1. Télécharger les binaires Apache 2.4 pour Windows (VS17 x64) depuis apachelounge.com.
  2. Extraire dans C:\app\httpd-2.4\.
  3. Installer le Visual C++ Redistributable correspondant (requis par Apache et PHP).

2. Installer PHP 8.2 et activer les extensions

  1. Télécharger PHP 8.2.x Thread Safe x64 depuis windows.php.net.
  2. Extraire dans C:\app\php-8.2\.
  3. Copier php.ini-production vers php.ini et ajuster :
; Repertoire des extensions
extension_dir = "C:/app/php-8.2/ext"

; Extensions requises par l'application
extension=sqlite3        ; base interne (SQLite natif, PAS pdo_sqlite)
extension=oci8_19        ; Oracle Instant Client 19c
extension=ldap           ; authentification LDAP / Active Directory
extension=openssl
extension=mbstring
extension=curl
extension=fileinfo
extension=gd
extension=intl
extension=zip
extension=sockets
extension=exif           ; doit etre apres mbstring

; Encodage et fuseau
default_charset = "UTF-8"
date.timezone = "Europe/Paris"

; Uploads (mises a jour ZIP, wallets Oracle, logo)
upload_max_filesize = 64M
post_max_size = 72M
memory_limit = 256M
Ne pas activer pdo_sqlite : l’application utilise la classe native SQLite3 (extension sqlite3).

3. Installer le client léger Oracle (Instant Client)

Le module Oracle utilise l’extension OCI8, qui nécessite l’Oracle Instant Client.

  1. Télécharger Instant Client Basic (ou Basic Light si vous n’utilisez que l’anglais) 19c, 64-bit, depuis oracle.com.
  2. Extraire dans C:\oracle\instantclient_19_25\.
  3. Ajouter ce répertoire au PATH système Windows (Paramètres » Variables d’environnement).
  4. Installer le Visual C++ Redistributable requis par l’Instant Client (si non déjà présent).
Astuce : le PATH n’est lu qu’au démarrage du processus. Apache doit être redémarré après modification du PATH pour que OCI8 trouve les DLL Oracle.

4. Configurer Apache

Éditer C:\app\httpd-2.4\conf\httpd.conf :

Define SRVROOT "C:/app/httpd-2.4"
ServerRoot "${SRVROOT}"
Listen 80

# Chargement de PHP (module Apache)
PHPIniDir "C:/app/php-8.2"
AddHandler application/x-httpd-php .php
LoadModule php_module "C:/app/php-8.2/php8apache2_4.dll"

# Racine web = le sous-dossier mon-appli du paquet
DocumentRoot "C:/app/my-app/mon-appli"
<Directory "C:/app/my-app/mon-appli">
    Options +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
AllowOverride All est indispensable : le fichier .htaccess de l’application (routeur / mod_rewrite) doit être pris en compte. Vérifier que mod_rewrite est chargé.

5. Récupérer et déployer le paquet

L’application se déploie à partir de l’archive téléchargée :

  1. Télécharger le paquet depuis la page Téléchargement, en choisissant l’archive :
    • CDN : les librairies JS/CSS sont chargées depuis Internet (archive légère ; le serveur cible à besoin d’un accès Internet).
    • Portable : les librairies sont embarquées dans l’archive (aucun accès Internet requis à l’exécution).
  2. Transférer l’archive sur le serveur et l’extraire dans C:\app\my-app\.

Le paquet contient mon-appli\ (racine web), lib\, docs\ et une base securite\database.sqlite minimale pré-remplie (titre, thème, URLs des librairies). Il ne contient aucun secret :

  • la clé de chiffrement securite\master.key est générée automatiquement au premier accès ;
  • le schéma complet (utilisateurs, rôles, bases Oracle…) est créé par les migrations au premier démarrage ;
  • compte par défaut : admin / admin123à changer immédiatement.

6. Droits d’accès

Le compte sous lequel tourne Apache doit pouvoir écrire dans deux dossiers (créés automatiquement si absents), situés hors de la racine web :

C:\app\my-app\securite\   ← base SQLite, master.key, wallets, sauvegardes
C:\app\my-app\log\        ← journaux applicatifs

7. Démarrer et vérifier

:: Installer Apache en service Windows (optionnel)
C:\app\httpd-2.4\bin\httpd.exe -k install -n "Apache24"
net start Apache24

:: Verifier que PHP charge bien oci8 et sqlite3
C:\app\php-8.2\php.exe -m | findstr /i "oci8 sqlite3"

Ouvrir http://localhost/ dans un navigateur : l’application redirige vers la page de connexion. Se connecter avec le compte par défaut puis le modifier.

C’est prêt. La base SQLite et la clé de chiffrement ont été créées au premier accès. Configurez ensuite vos bases Oracle, vos utilisateurs et l’authentification depuis l’administration.