====== 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