====== Développement web sur Debian ======
Quelques notes pour tester des sites en local. (Debian 9 / Apache 2.4.25)
===== Accéder au site local par un nom de domaine =====
Par exemple, avec le domaine **monsitelocal.dev**
1) créer la structure dans le dossier ''/var/www'' :
/var/www
|__monsitelocal.dev
|_index.html
2) éditer ''/etc/hosts'' et ajouter le site à la ligne 127.0.0.1 (la créer si nécessaire)
127.0.0.1 localhost monsitelocal.dev www.monsitelocal.dev
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
3) créer un fichier monsitelocal.dev.conf dans le dossier ''/etc/apache2/sites-available''
ServerName monsitelocal.dev
ServerAlias www.monsitelocal.dev
ServerAdmin webmaster@monsitelocal.dev
DocumentRoot /var/www/monsitelocal.dev/public_html
Options -Indexes +FollowSymLinks
AllowOverride All
ErrorLog ${APACHE_LOG_DIR}/monsitelocal.dev-error.log
CustomLog ${APACHE_LOG_DIR}/monsitelocal.dev-access.log combined
4) Activer le nouveau virtualhost
sudo a2ensite monsitelocal.dev.conf
5) redémarrer Apache
sudo systemctl restart apache2
Mais ça ne marchait pas dans firefox 78.15.0esr, après avoir épluché les forums et testé différentes solutions sans succès (pas de proxy, vider le cache, désactiver le DNS cloudfare, changé quelques clés d'about:config), toujours rien. En revanche, cela fonctionne bien avec chromium...
===== Installer PHP 7.4 sur Debian 9 =====
Procédure complète d'après [[https://tecadmin.net/install-php-debian-9-stretch/|source]]
sudo apt update
sudo apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
# Configurer le dépôt PPA pour les versions de PHP (7.4, 7.3, 7.2, 7.1, 5.6)
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt install php7.4
sudo apt install php7.4-cli php7.4-common php7.4-curl php7.4-mbstring php7.4-mysql php7.4-xml
sudo apt install libapache2-mod-php7.4
Puis désactiver la version précédente utilisée par apache2,
sudo a2dismod php7.0
Et activer la nouvelle version
sudo a2enmod php7.4
Enfin, redémarrer apache2
sudo systemctl restart apache2
On peut vérifier la configuration en utilisant ''phpinfo()'' dans un script php
===== Restreindre l'accès avec htaccess / htpasswd =====
Pour autoriser l'accès à quelques utilisateur·ice·s au site en construction. \\
Placer un fichier **.htaccess** à la racine du site comprenant
AuthUserFile /home/user/pssst/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès Restreint"
AuthType Basic
require valid-user
Pour créer le fichier **.htpasswd** (contient nom et mot de passe chiffré de chaque user autorisé), on peut utiliser les commandes suivantes
htpasswd -c .htpasswd utilisateur # pour le premier, la commande demandera le mot de passe
htpasswd .htpasswd autreutilisateur # pour le suivant, etc.
===== Divers =====
**Quelle version d'apache ?**
/usr/sbin/apache2 -v
**Statut d'Apache**
systemctl status apache2
**Infos sur le fonctionnement réseau de firefox** \\
Saisir ''about:networking'' dans la barre d'URL
**Où sont les logs d'Apache ?** \\
Dans ''/var/log/apache2''
**Installer php-gd pour apache2** \\
sudo apt install php-gd
sudo apt install php7.4-gd
sudo systemctl restart apache2
**Liste des modules installés** \\
Les modules disponibles sont visibles dans le répertoire ''/etc/php/7.4/mods-available/'' \\
**Activer mod_rewrite** \\
sudo a2enmod rewrite
sudo systemctl restart apache2
**Requetes CORS**
* en détail : https://developer.mozilla.org/fr/docs/Web/HTTP/CORS
* pour s'en passer sur firefox, en test de développement local :
* aller à ''about:config'' dans la barre d'adresses
* chercher ''security.fileuri.strict_origin_policy''
* passer la valeur à ''false''