Table des matières

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

<VirtualHost *:80>
    ServerName monsitelocal.dev
    ServerAlias www.monsitelocal.dev
    ServerAdmin webmaster@monsitelocal.dev
    DocumentRoot /var/www/monsitelocal.dev/public_html

    <Directory /var/www/monsitelocal.dev/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/monsitelocal.dev-error.log
    CustomLog ${APACHE_LOG_DIR}/monsitelocal.dev-access.log combined
</VirtualHost>

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 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
<Limit GET POST>
require valid-user
</Limit>

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