Apache HTTP Server (Français)
Ce document décrit la procédure de mise en place d'un serveur Apache / MariaDB ou MySQL / PHP sur la distribution ArchLinux.
Installation
pacman -S apache php php-apache mariadb
Configuration
MariaDB
Reportez-vous à la page MariaDB (ou MySQL) pour l'installation, la configuration et le lancement du serveur SQL.
PHP
Une fois PHP installé, il faut configurer ce dernier pour prendre en compte MariaDB. Décommentez (enlevez le « ; » au début) d'au moins l'une des deux lignes suivantes :
/etc/php/php.ini
extension=mysqli extension=pdo_mysql
mysql.so
est déprécié et remplira le fichier de logs.Apache
Il ne reste plus qu'à configurer le serveur Apache pour prendre en compte PHP, pour cela :
Commentez la ligne :
/etc/httpd/conf/httpd.conf
#LoadModule mpm_event_module modules/mod_mpm_event.so
Et décommentez la ligne :
/etc/httpd/conf/httpd.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Puis rajoutez :
- À la fin des chargements de modules (la liste des LoadModule):
/etc/httpd/conf/httpd.conf
# Load php7 module LoadModule php7_module modules/libphp7.so
- À la fin des inclusions de fichiers de configuration (la liste des Include):
/etc/httpd/conf/httpd.conf
# PHP settings Include conf/extra/php7_module.conf
Pour démarrer automatiquement le serveur Apache :
systemctl enable httpd
Et éventuellement, pour le démarrer sans redémarrer :
systemctl start httpd
Si votre serveur ne démarre pas, vérifiez que le fichier /etc/hosts
contient votre hostname. Dans l'exemple ci-dessous mon hostname est monSuperServeurHttpd :
/etc/hosts
# # /etc/hosts: static lookup table for host names # #<ip-address> <hostname.domain.org> <hostname> 127.0.0.1 localhost.localdomain localhost monSuperServeurHttpd # End of file
Si vous obtenez l'erreur "Apache is running a threaded MPM", c'est que apache utilise le module MPM threaded qui ne permet pas l'utilisation de php (Sauf via CGI). Remplacez :
/etc/httpd/conf/httpd.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
Par :
/etc/httpd/conf/httpd.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Migration php7 vers php8
Lors de la mise à jour de votre système, il est possible que les paquets de php7 soient remplacés par la version 8, ce qui provoque une erreur lors du redémarrage du serveur Apache.
Il suffit de changer le nom du fichier de configuration et du module de php. Remplacez :
/etc/httpd/conf/httpd.conf
Include conf/extra/php7_module.conf LoadModule php7_module modules/libphp7.so
Par :
/etc/httpd/conf/httpd.conf
Include conf/extra/php_module.conf LoadModule php_module modules/libphp.so
Enfin, vous devez redémarrer le serveur Apache avec la commande suivante:
systemctl restart httpd.service
Des erreurs peuvent également survenir sur l'interface de PhpMyAdmin. Pour les corriger, reportez vous aux sections Phrase de passe et Activer la mise en cache de la page PhpMyAdmin
Tests
Pour voir si le serveur MariaDB est démarré:
mysql
Pour Apache et PHP, rajoutez le fichier suivant dans /srv/http
:
/srv/http/test.php
<?php phpinfo (); ?>
Puis allez sur http://localhost/test.php, si vous tombez sur une page détaillant les options de PHP, votre serveur LAMP est fonctionnel.
Avancé
Répertoire utilisateur
Par défaut, Apache est configuré pour permettre l'accès au répertoire $HOME/public_html
depuis l'url http://localhost/~user/.
/etc/httpd/conf/httpd.conf
:
#Include conf/extra/httpd-userdir.conf
Pour pouvoir accéder aux pages du répertoire $HOME/public_html
, vous devez vous assurer d'avoir correctement défini les permissions afin qu'Apache puisse y accéder. Il faut pour cela que le répertoire $HOME/public_html
ainsi que ses parents soit au minimum accessible en exécution pour l'utilisateur http
, définir un +x
à others
est suffisant:
chmod o+x ~ chmod o+x ~/public_html
L'autre moyen serait de créer un groupe commun à l'utilisateur et à http
et de lui donner l'accès à ce répertoire.
phpMyAdmin
Une page sur la configuration de PhpMyAdmin est disponible afin de pouvoir administrer le serveur MariaDB de manière plus conviviale.