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