Paramétrer Apache pour Debian

Tags: #<Tag:0x00007f63f391d030>

Bonjour,

Un petit récapitulatif pour paramétrer Apache sous Debian :

1. Installer Apache

# apt install apache

2. Installer php et tous les modules optionnels

# apt install php

Installer si nécessaire les modules pour php :

php8.2-intl (internationalisation)
php8.2-gd (traitement des images)
php8.2-mbstring (traitement des chaines multi-octet)
php8.2-pgsql (module pour postegresql) ou le module pour MySql / MariaDb
php8.2-xml (module pour les fichiers xml)
php8.2-yaml (pour traiter les fichiers Yaml)

Ajouter éventuellement les outils de débogage :
php-codesniffer (pour debugger php, javascript, css).

3. Paramétrer Apache.

3.1. Les Virtual hosts

Par défaut, la configuration du mode userdir nécessite le création des sites perso uniquement sous le / les dossiers (ou sous dossiers) :
/home/*/public_html/
Nous allons y remédier et placer dans cet exemple, nos sites sous « ~/www/ »

Je trouve que le plus agréable consiste à paramétrer ses hôtes virtuels. Cela permet d’accéder à ses sites plus directement.
Pour cela il faut éditer le fichier /etc/hosts.

# nano /etc/hosts

Et ajouter ces lignes (à adapter selon le nom de nos sites) :

# /etc/hosts
127.0.0.1	localhost
127.0.0.1	monSite
127.0.0.1	monAutreSite

3.2. Les fichiers de configuration des sites.

Créer dans « /etc/apache2/sites-available/ » un fichier de configuration par site.
Par exemple /etc/apache2/sites-avaible/monSite.conf.

Exemple de contenu :

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName monSite.com
        ServerAlias monsite
        DocumentRoot /home/USER/www/monSite/public
       #DirectoryIndex    index.html  //ou index.php par exemple

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined            
   
    <Directory /home/USER/www/monSite>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
	Allow from All
        Require all granted
    </Directory>
  
       # ErrorLog /home/apache/logs/error.log
        LogLevel Warn
       # CustomLog /home/apache/logs/access.log combined
        ServerSignature Off
</VirtualHost>

Adapter le chemin du répertoire ou se trouve le site :
/home/USER/www/monSite/public
et
<Directory /home/USER/www/monSite>

3.3. Éditer le fichier de configuration Apache

Si le site est placé sous « /home » :
Modifier « /etc/apache2/userdir.conf »
Placer ces lignes :

# /etc/apache2/userdir.conf
	UserDir	www (nom du répertoire des sites)
	<Directory /home/*/www>

À adapter à son répertoire, dans cet exemple, les sites se trouvent « ~/www/ » ou « ~/*/www/ »

4. Activer les sites créés.

4.1. Activer chaque site créé précédemment.

Activer les sites créés sous « /etc/apache2/sites-available/ »

par exemple si on a un créé le fichier :
« /etc/apache2/sites-avaible/monSite.conf » :

# a2ensite monSite

4.2. Activer l’usage des sites dans le répertoire « /home/ »

Par défaut, l’usage des sites dans le répertoire « home » est désactivé.
# a2enmod userdir

Cela active le fichier « /etc/apache2/userdir.conf » précédemment modifié.

4.3. Désactiver le site par défaut

# a2dissite 000-default

C’est la page « it’s work » qui apparaît si on tape l’adresse « localhost » (cela appelle le fichier «  /var/www/html/index.html »).

5. Activer php

Par défaut php est désactivé donc :

5.1. Activer php dans les répertoires utilisateur.

Php est par défaut désactivé dans les répertoires utilisateur.

Éditer le fichier « /etc/apache2/mods-available/php8.2.conf »
et commenter ces lignes :

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

5.2. Activer le module php d’Apache.

# a2enmod php8.2

6. Redémarrer apache

Recharger la nouvelle configuration d"Apache que nous venons de réaliser.

# systemctl reload apache2

7. Modifier les permissions.

Apache est l’utilisateur « www-data », il doit donc avoir accès au dossier / fichiers qui constitue le site, donc bien penser à modifier les permissions par un « chmod » ou ajouter « www-data » à son groupe d’utilisateur.

Nous devrions atteindre notre site en tapant dans notre navigateur :
http://monsite

1 J'aime