Installation guide
Windows + Apache
Step-by-step deployment on Windows 10/11 with Apache 2.4 and PHP 8.2
(loaded as an Apache module), from the package generated by the application.
Requirements
| Windows | 10 or 11 (64-bit) |
| Apache HTTPD | 2.4.x — VS17 x64 binaries (apachelounge.com) |
| PHP | 8.2.x Thread Safe (TS) x64 |
| Oracle Instant Client | 19c — lightweight “Basic” (or “Basic Light”) package, 64-bit |
| The application package | sw_pkg_*.zip archive (see step 5) |
php8apache2_4.dll). For IIS, the Non-Thread-Safe build is the one to use (see the Windows + IIS guide).
1. Install Apache 2.4
- Download the Apache 2.4 binaries for Windows (VS17 x64) from apachelounge.com.
- Extract into
C:\app\httpd-2.4\. - Install the matching Visual C++ Redistributable (required by both Apache and PHP).
2. Install PHP 8.2 and enable the extensions
- Download PHP 8.2.x Thread Safe x64 from windows.php.net.
- Extract into
C:\app\php-8.2\. - Copy
php.ini-productiontophp.iniand adjust:
; Extensions directory
extension_dir = "C:/app/php-8.2/ext"
; Extensions required by the application
extension=sqlite3 ; internal database (native SQLite, NOT pdo_sqlite)
extension=oci8_19 ; Oracle Instant Client 19c
extension=ldap ; LDAP / Active Directory authentication
extension=openssl
extension=mbstring
extension=curl
extension=fileinfo
extension=gd
extension=intl
extension=zip
extension=sockets
extension=exif ; must come after mbstring
; Encoding and time zone
default_charset = "UTF-8"
date.timezone = "Europe/Paris"
; Uploads (ZIP updates, Oracle wallets, logo)
upload_max_filesize = 64M
post_max_size = 72M
memory_limit = 256M
pdo_sqlite: the application uses the native SQLite3 class (the sqlite3 extension).
3. Install the Oracle Instant Client
The Oracle module uses the OCI8 extension, which requires the Oracle Instant Client.
- Download Instant Client Basic (or Basic Light if you only use English) 19c, 64-bit, from oracle.com.
- Extract into
C:\oracle\instantclient_19_25\. - Add that folder to the Windows system PATH (Settings » Environment variables).
- Install the Visual C++ Redistributable required by the Instant Client (if not already present).
4. Configure Apache
Edit C:\app\httpd-2.4\conf\httpd.conf:
Define SRVROOT "C:/app/httpd-2.4"
ServerRoot "${SRVROOT}"
Listen 80
# Load PHP (Apache module)
PHPIniDir "C:/app/php-8.2"
AddHandler application/x-httpd-php .php
LoadModule php_module "C:/app/php-8.2/php8apache2_4.dll"
# Web root = the mon-appli subfolder of the package
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 is essential: the application’s .htaccess file (router / mod_rewrite) must be taken into account. Check that mod_rewrite is loaded.
5. Get and deploy the package
The application is deployed from the downloaded archive:
- Download the package from the Download page, choosing the archive:
- CDN: JS/CSS libraries are loaded from the Internet (small archive; the target server needs Internet access).
- Portable: libraries are bundled into the archive (no Internet access required at runtime).
- Transfer the archive to the server and extract it into
C:\app\my-app\.
The package holds mon-appli\ (web root), lib\, docs\ and a minimal securite\database.sqlite pre-filled with the title, theme and library URLs. It carries no secret:
- the
securite\master.keyencryption key is generated automatically on first access; - the full schema (users, roles, Oracle databases…) is created by the migrations on first start;
- default account: admin / admin123 — change it immediately.
6. Access rights
The account Apache runs under must be able to write into two folders (created automatically if missing), located outside the web root:
C:\app\my-app\securite\ ← SQLite database, master.key, wallets, backups
C:\app\my-app\log\ ← application logs
7. Start and check
:: Install Apache as a Windows service (optional)
C:\app\httpd-2.4\bin\httpd.exe -k install -n "Apache24"
net start Apache24
:: Check that PHP loads oci8 and sqlite3
C:\app\php-8.2\php.exe -m | findstr /i "oci8 sqlite3"
Open http://localhost/ in a browser: the application redirects to the login page. Log in with the default account, then change it.
