UwAmp

Documentation

UwAmp 4.0.0 · Windows 10 / 11 64 bits

Démarrer

  1. Téléchargez la version légère ou complète et dézippez-la où vous voulez : C:\UwAmp, D:\dev\UwAmp, une clé USB… UwAmp doit pouvoir écrire dans son dossier : évitez C:\Program Files.
  2. Double-cliquez sur UwAmp.exe. Il n'y a rien à installer : ni runtime Visual C++, ni .NET, ni service Windows.
  3. Avec la version légère, UwAmp propose au premier lancement d'installer Apache, PHP, MariaDB et phpMyAdmin. Un clic suffit ; il démarre ensuite les serveurs.

Si Windows affiche « Windows a protégé votre ordinateur », cliquez sur Informations complémentaires puis Exécuter quand même. Ce message apparaît pour les programmes récents peu téléchargés.

AdresseContenu
http://localhost/vos sites (dossier www)
http://localhost/mysql/phpMyAdmin
http://localhost/uwamp/phpinfo.phpphpinfo() de la version de PHP active
https://localhost/les mêmes sites en HTTPS (voir HTTPS local)
127.0.0.1:3306MySQL / MariaDB, utilisateur root, mot de passe root

Réduire la fenêtre place UwAmp dans la zone de notification, dont l'icône indique l'état des serveurs. Fermer UwAmp arrête les serveurs, après confirmation. Ces comportements, le démarrage avec Windows et le lancement automatique des serveurs se règlent dans Réglages.

Organisation des dossiers

UwAmp\
  UwAmp.exe, uwamp.ini        le programme et ses réglages
  www\                        vos sites (racine de http://localhost/)
  bin\apache\<version>\       une version d'Apache par dossier
  bin\php\<version>\          une version de PHP par dossier
  bin\database\<version>\     MariaDB ou MySQL, avec leurs bases dans data\
  bin\vcruntime\              runtime Visual C++ utilisé par les serveurs
  phpapps\                    phpMyAdmin et les pages d'UwAmp
  temp\                       sessions PHP, uploads, téléchargements

Tout votre environnement est dans ce dossier : copiez-le pour le sauvegarder ou le déplacer sur un autre PC, supprimez-le pour désinstaller.

Versions et composants

La page Composants liste les versions disponibles depuis les sources officielles : PHP (windows.php.net, versions actuelles et archives), Apache (Apache Lounge), MariaDB et phpMyAdmin. Les archives sont téléchargées en HTTPS, vérifiées (SHA-256) puis configurées automatiquement.

Installez autant de versions que nécessaire et choisissez celle à utiliser dans les listes du tableau de bord : UwAmp redémarre le serveur concerné. Une version de MySQL déjà présente dans bin\database fonctionne de la même manière.

  • PHP et Apache doivent avoir la même architecture (x64 avec x64) : UwAmp signale les combinaisons incompatibles.
  • Avec Apache, utilisez les versions Thread Safe de PHP (les builds NTS sont signalés).
  • Chaque version de MariaDB / MySQL a son propre dossier data : exportez vos bases avant de changer de version majeure.

Sites et virtual hosts

Un sous-dossier de www est un site : www\blog répond sur http://localhost/blog/. Le tableau de bord liste vos projets.

Nouveau site en un clic

Page Apache (ou bouton Nouveau site du tableau de bord) : donnez un nom, UwAmp crée www\<nom> et un virtual host http://<nom>.localhost/. Les navigateurs actuels envoient tous les noms en .localhost vers votre PC : il n'y a plus besoin de modifier le fichier hosts.

Virtual hosts

L'éditeur de la page Apache règle pour chaque virtual host : adresse et port, ServerName et ServerAlias, DocumentRoot, alias, blocs <Directory> (accès, .htaccess) et directives supplémentaires. Enregistrer et appliquer vérifie la configuration puis redémarre Apache.

Pour un nom qui ne se termine pas par .localhost (par exemple monsite.test), ajoutez la ligne 127.0.0.1 monsite.test dans C:\Windows\System32\drivers\etc\hosts (éditeur lancé en administrateur).

Port 80 occupé

Si un autre programme utilise le port 80, UwAmp affiche son nom. Fermez-le, ou changez le port HTTP principal dans la page Apache (par exemple 8080) : les adresses deviennent http://localhost:8080/.

Mode hors ligne / en ligne

L'interrupteur Accès réseau du tableau de bord choisit qui peut accéder à vos serveurs.

ModeApacheMySQL / MariaDB
Hors ligne (par défaut)écoute sur 127.0.0.1, Require localbind-address = 127.0.0.1
En ligneécoute sur toutes les interfaces, Require all grantedbind-address = 0.0.0.0

Hors ligne, vos sites ne sont visibles que depuis votre PC et Windows n'affiche pas d'alerte du pare-feu. En ligne, ils sont accessibles depuis le réseau local avec l'IP affichée sur le tableau de bord (Windows demande alors l'autorisation du pare-feu). phpMyAdmin et les pages d'UwAmp restent accessibles uniquement depuis votre PC.

Dans vos propres blocs <Directory>, écrivez {ONLINE_MODE} pour suivre ce réglage.

HTTPS local

UwAmp génère au premier démarrage un certificat auto-signé pour localhost et active un virtual host sur le port 443 : https://localhost/ fonctionne tout de suite. Le navigateur signale que le certificat n'est pas reconnu : acceptez l'exception pour ce site.

Le bouton Régénérer le certificat SSL de la page Apache en crée un nouveau. Le certificat et sa clé sont dans bin\apache\<version>\conf\ssl\ ; ils sont propres à votre PC.

MySQL / MariaDB

Au premier démarrage, UwAmp crée les bases système avec l'utilisateur root et le mot de passe root. Connexion depuis PHP :

$db = new PDO('mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8mb4', 'root', 'root');

Changer le mot de passe root

Utilisez le formulaire de la page MySQL / MariaDB : UwAmp change le mot de passe dans le serveur et met à jour phpMyAdmin en même temps. Si vous l'avez changé autrement (phpMyAdmin, ligne de commande), indiquez le nouveau mot de passe dans Réglages pour que phpMyAdmin continue de se connecter.

La même page change le port, ouvre la console MySQL et le dossier data. L'arrêt des serveurs est propre et ne demande pas de mot de passe.

PHP

  • Extensions : cochez celles à activer, avec une description de chacune. Les DLL manquantes sont signalées.
  • Réglages : display_errors, memory_limit, upload_max_filesize, post_max_size, max_execution_time, date.timezone, OPcache, Xdebug…
  • Console PHP : une invite de commandes ouverte dans www, avec la version de PHP active dans le PATH.
  • Certificats : un fichier de certificats racines est fourni à curl et openssl, les requêtes HTTPS sortantes fonctionnent sans réglage.

Chaque version de PHP a son propre php_uwamp.ini, créé à partir de php.ini-development. Vous pouvez le recréer depuis php.ini-development ou php.ini-production dans la page PHP.

Fichiers de configuration

UwAmp génère httpd.conf, php.ini et my.ini à chaque démarrage à partir de modèles. Modifiez les modèles, jamais les fichiers générés :

ServeurModèle à modifier
Apachebin\apache\<version>\conf\httpd_uwamp.conf
PHPbin\php\<version>\php_uwamp.ini
MySQL / MariaDBbin\database\<version>\my_uwamp.ini

Les boutons Modifier de chaque page ouvrent le modèle dans votre éditeur (choisi dans Réglages). Quand vous enregistrez, UwAmp redémarre le serveur concerné. Avant chaque démarrage, la configuration d'Apache est testée (httpd -t) et l'erreur éventuelle s'affiche dans la console.

Macros

Dans les modèles, ces mots entre accolades sont remplacés par leur valeur (chemins avec des /) :

MacroValeur
{UWAMPPATH}dossier d'UwAmp
{DOCUMENTPATH}dossier www
{APACHEPATH}dossier de la version d'Apache active
{PHPPATH}, {PHPEXTPATH}, {PHPZENDPATH}dossier de la version de PHP active, de ses extensions, de ses extensions Zend
{PHPAPACHE2FILE}, {PHPMODULENAME}DLL et nom du module PHP pour Apache
{PHPAPPS}, {TEMPPATH}dossiers phpapps et temp
{CACERTPATH}fichier de certificats racines (curl, openssl)
{ONLINE_MODE}Require local hors ligne, Require all granted en ligne
{LISTEN_VIRTUAL_HOST_PORT}lignes Listen construites à partir des ports des virtual hosts
{MYSQLPATH}, {MYSQLBINPATH}, {MYSQLDATAPATH}dossier de la version de MySQL / MariaDB active, de ses programmes, de ses bases
{MYSQL_PORT}, {MYSQL_BIND}port de MySQL, 127.0.0.1 ou 0.0.0.0 selon le mode

Le bouton Restaurer la configuration initiale de chaque page remet le modèle d'origine.

Mises à jour

UwAmp vérifie au lancement puis toutes les 12 heures si une nouvelle version existe. La barre latérale affiche alors Mise à jour disponible : le bouton Mettre à jour et redémarrer télécharge la version légère, vérifie son empreinte SHA-256, remplace UwAmp.exe et relance UwAmp.

Seul le programme change : serveurs, sites, bases de données et réglages restent en place, et Apache et MySQL continuent de tourner. La vérification se désactive dans Réglages.

Les versions d'Apache, de PHP et de MariaDB se mettent à jour séparément, depuis la page Composants.

Ligne de commande

Utile pour un script de démarrage ou une intégration continue :

UwAmp.exe --cli start               démarre Apache et MySQL
UwAmp.exe --cli stop                arrête les serveurs
UwAmp.exe --cli restart             redémarre les serveurs
UwAmp.exe --cli status              affiche l'état
UwAmp.exe --cli install-defaults    installe Apache, PHP, MariaDB et phpMyAdmin
UwAmp.exe --cli install-defaults --php 8.4
UwAmp.exe --cli site monprojet      crée www\monprojet et http://monprojet.localhost/
UwAmp.exe --cli check-update        cherche une nouvelle version d'UwAmp
UwAmp.exe --cli update              met UwAmp à jour

Ajoutez --root "D:\autre\dossier" pour piloter un autre dossier UwAmp.

Dépannage

Apache ou MySQL ne démarre pas

Lisez la console en bas de la fenêtre et la page Journaux : la sortie des serveurs et leur error.log s'y affichent. Le bouton Tester la configuration de la page Apache indique la ligne fautive de httpd_uwamp.conf.

Port déjà utilisé

UwAmp indique le programme qui occupe le port (IIS, Skype, un autre serveur WAMP…). Arrêtez-le ou changez de port (page Apache pour HTTP, page MySQL pour MySQL).

Un autre Apache ou MySQL tourne déjà

UwAmp détecte les serveurs d'autres logiciels et les fichiers my.ini ou libmysql.dll parasites (dans C:\Windows par exemple) qui perturbent MySQL, et les signale au démarrage.

Accès refusé, fichiers non enregistrés

Déplacez le dossier UwAmp hors de C:\Program Files : Windows y bloque l'écriture. Si un antivirus bloque httpd.exe ou mariadbd.exe, ajoutez une exception pour le dossier UwAmp.

Venir d'UwAmp 3.x

UwAmp 4 reprend un dossier UwAmp 3.x tel quel : copiez le nouveau UwAmp.exe dans votre dossier 3.x (gardez l'ancien sous un autre nom si vous voulez revenir en arrière) et lancez-le. Vos serveurs, sites, bases, uwamp.ini et modèles *_uwamp sont réutilisés.

Vous pouvez ensuite installer des versions récentes de PHP, Apache et MariaDB depuis la page Composants. Les anciennes versions de PHP 5.x compilées avec Visual C++ 2008 ou 2012 peuvent encore demander le Visual C++ Redistributable x86 correspondant (liens sur la page Téléchargement, section Versions précédentes).

Pour repartir de zéro, dézippez UwAmp 4 dans un nouveau dossier puis copiez-y votre dossier www et exportez / importez vos bases avec phpMyAdmin.