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