# Paramétrer Apache pour Debian

**URL:** <https://www.debian-fr.org/t/parametrer-apache-pour-debian/89682>\
**Category:** Trucs et Astuces\
**Tags:** php\
**Created:** [Mars 11, 2024, 11:22 UTC](https://www.debian-fr.org/t/parametrer-apache-pour-debian/89682 "2024-03-11T11:22:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![oustaou](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/o/b77776/32.png) [@oustaou](https://www.debian-fr.org/u/oustaou)\
**Post date:** [Mars 11, 2024, 11:22 UTC](https://www.debian-fr.org/t/parametrer-apache-pour-debian/89682/1 "2024-03-11T11:22:21Z")

</div>

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 «&nbsp;`~/www/`&nbsp;»

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) :

```auto
# /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 «&nbsp;/etc/apache2/sites-available/&nbsp;» un fichier de configuration par site.  
Par exemple `/etc/apache2/sites-avaible/monSite.conf`.

Exemple de contenu :

```auto
<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 «&nbsp;/home&nbsp;» :  
Modifier «&nbsp;`/etc/apache2/userdir.conf`&nbsp;»  
Placer ces lignes :

```auto
# /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 «&nbsp;`~/www/`&nbsp;» ou «&nbsp;`~/*/www/`&nbsp;»

**4. Activer les sites créés.**

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

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

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

`# a2ensite monSite`

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

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

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

**4.3.** Désactiver le site par défaut

`# a2dissite 000-default`

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

**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 «&nbsp;`/etc/apache2/mods-available/php8.2.conf`&nbsp;»  
et commenter ces lignes :

```auto
#<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 «&nbsp;www-data&nbsp;», il doit donc avoir accès au dossier / fichiers qui constitue le site, donc bien penser à modifier les permissions par un «&nbsp;chmod&nbsp;» ou ajouter «&nbsp;www-data&nbsp;» à son groupe d’utilisateur.

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