Apache HTTP Server (Français)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale.pngCet article ou section a besoin d'être traduit(e).Tango-preferences-desktop-locale.png

Notes: Cet article ne respecte pas la structure de sa version anglophone, merci de le réécrire en conséquence. Vous pouvez aussi ajouter à la version anglophone les informations à-jour et dignes d’intérêt qui ne seraient portées que par la version francophone. Voir Archwiki:Translation_Team_(Français) (Discuss in Talk: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
Note: Installez MySQL depuis AUR si vous préférez utiliser le serveur de base de données d'Oracle en lieu et place de MariaDB.

Configuration

MariaDB

Reportez-vous à la page MariaDB (ou MySQL) pour l'installation, la configuration et le lancement du serveur SQL.

Note: Au premier lancement, le mot de passe est vide. Tapez donc Entrée lorsque le mot de passe est demandé. Puis, définissez un nouveau mot de passe (par défaut, phpMyAdmin, si vous comptez l'utiliser, impose d'avoir un mot de passe).

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

Attention: Depuis PHP 5.5, 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/.

Note: Si vous voulez modifier ce comportement et ainsi empêcher l'accès à ce répertoire depuis le réseau, il suffit de commenter la ligne suivante du fichier /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.