# Apache HTTP Server (Français)

From ArchWiki
Jump to navigation Jump to search
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.

Related articles

- XAMPP
- /mod_perl
- /mod_fcgid
- /mod_gnutls
- /mod_python
- /mod_wsgi

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.

Categories:

- Web server (Français)
- Apache (Français)