====== XAMPP ====== ===== Installation ===== Aller sur [[https://portableapps.com/]] et télécharger la version portable de Xampp : xampp-portable-win32-7.3.0-0-VC15.7z Décompresser le contenu de l'archive dans le dossier **C:\xampp** : C:\xampp Ne pas installer ailleurs car plein de chemins sont préconfigurés sur **\xampp** donc pour éviter de tout changer on va laisser ça comme ça. ===== Configuration ===== Lancer **C:\xampp\xampp-control.exe** Cliquer sur le bouton **Config** {{:apache:xampp1.png?nolink|}} Remplacer **notepad.exe** par un éditeur digne de ce nom, et cocher **Show debug information** {{:apache:xampp2.png?nolink|}} Cliquer sur **Service and Port Settings** Dans l'onglet **Apache**, remplacer les ports 80 et 443 par **8080** et **8443** {{:apache:xampp3.png?nolink|}} À ce stade, Apache ne doit plus se plaindre du port 80, mais n'arrive quand même pas à tourner (voir chapitre suivant) {{:apache:xampp4.png?nolink|}} ===== Error: Apache shutdown unexpectedly ===== Pour voir la cause de cette erreur, ouvrir un terminal et y lancer la commande suivante pour voir directement l'affichage d'Apache : c:\xampp\apache\bin\httpd.exe Sur la ligne **Apache**, cliquer sur le bouton **Config** puis sur **Apache (httpd.conf)** {{:apache:xampp5.png?nolink|}} Remplacer le port **80** par **8080** partout où il apparaît. Ensuite cliquer sur **Apache (httpd-ssl.conf)** Remplacer le port **443** par **8443** partout où il apparaît. Cliquer sur **Start** et cela devrait maintenant fonctionner, sinon lancer **httpd.exe** manuellement comme ci-dessus pour voir le message affiché par Apache. ===== Configuration du DocumentRoot ===== Modifier **httpd.conf** pour changer le dossier. Par exemple si le projet se trouve dans **C:\data\prgweb\monprojet** : DocumentRoot "C:/data/prgweb/monprojet" Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted Puis redémarrer Apache. ===== Configuration de PHP ===== Éditer le fichier **C:\xampp\php\php.ini** date.timezone = Europe/Brussels extension=gd2 extension=intl extension=pdo_firebird extension=pdo_sqlite Redémarrer Apache. **Librairies 32 ou 64 bits ?** * [[https://superuser.com/questions/358434/how-to-check-if-a-binary-is-32-or-64-bit-on-windows]] Télécharger la version 64 bits de fbclient.dll * Aller sur [[https://firebirdsql.org/en/firebird-3-0/]] dans la section Windows 64 bits * Télécharger la version **zip** * En extraire le fichier **fbclient.dll** et la copier dans le dossier **./php/ext** de PHP * C'est au même endroit que php_pdo_firebird.dll Redémarrer Apache => :!: **non, ça ne marche quand même pas...** :!: ===== Faire des VirtualHost ===== Pour faire des VirtualHost * éditer le fichier **C:\xampp\apache\conf\extra\httpd-vhosts.conf** * Y ajouter une section pour chaque VirtualHost. * Faire pointer le VirtualHost sur le dossier voulu * Par exemple sur le dossier **webroot** d'un projet **CakePHP**. Si au moins un VirtualHost est configuré, il prend le dessus sur la configuration principale faite dans le **httpd.conf**, et on n'a plus accès au reste du dossier sur l'adresse **localhost**. On peut alors faire un VirtualHost global suivi d'un VirtualHost par projet : => sera accessible sur http://localhost:8080 ServerName localhost ServerAdmin marclebrun2@gmail.com DocumentRoot "C:/data/prgweb" Options Indexes FollowSymLinks MultiViews AllowOverride all Require all denied Require all granted => sera accessible sur http://cake.localhost:8080 ServerName cake.localhost ServerAdmin marclebrun2@gmail.com DocumentRoot "C:/data/prgweb/MonSiteCake/webroot" Options Indexes FollowSymLinks MultiViews AllowOverride all Require all denied Require all granted