GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer le serveur Web Apache sur Ubuntu 13.10

Installer le serveur Web Apache

Il y a quelque temps, j'ai mis à jour mon Ubuntu en 13.10, puis l'installation d'Apache PHP a été gâchée. J'ai donc dû le réinstaller rapidement pour continuer à travailler sur mes projets php.

Apache est là dans les référentiels Ubuntu et peut donc être installé sans trop d'effort. Voici la commande rapide dont vous avez besoin pour tirer sur le terminal.

$ sudo apt-get install apache2

Apache par défaut se configure rapidement pour que vous puissiez l'ouvrir depuis le navigateur avec l'url localhost

http://localhost/

Démarrer/Arrêter apache

Pour démarrer ou arrêter le serveur Web apache à partir de la ligne de commande, utilisez les commandes suivantes.

# Start web server
$ sudo service apache2 start
# Stop the web server
$ sudo service apache2 stop
# Restart the web server
$ sudo service apache2 restart
# Reload configuration without restarting
$ sudo service apache2 reload

Le répertoire racine Web par défaut est /var/www. Ainsi, tous les fichiers placés dans ce répertoire sont accessibles à partir de l'url localhost. Plus tard, nous verrons comment changer le répertoire racine Web par défaut

Pour vérifier quelle version d'apache est installée, utilisez la commande apache2 avec l'option v/

$ apache2 -v
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56

Rechercher les fichiers de configuration

Pour obtenir plus d'informations sur la configuration exacte d'Apache sur votre système, utilisez la commande apache2ctl.

$ apache2ctl -V
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56
Server's Module Magic Number: 20120211:23
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"
.....

Il indique le nom du fichier de configuration, le serveur mpm utilisé et de nombreux autres détails. Celles-ci sont utiles lors de la configuration ultérieure d'Apache.

Le fichier de configuration principal se trouve dans /etc/apache2/apache2.conf
Ajoutez simplement HTTPD_ROOT avec SERVER_CONFIG_FILE pour obtenir l'emplacement réel du fichier de configuration.

Ou il y a une autre option S qui rapporte également divers détails de configuration sur apache

$ apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

Toutes ces informations sont très utiles lors de la configuration d'Apache. Gain de temps qui serait autrement consacré à deviner.

Il y a beaucoup de fichiers de configuration impliqués avec apache. Le fichier de configuration principal est "apache2.conf" comme mentionné ci-dessus. Ce fichier de configuration contient des instructions pour charger d'autres fichiers de configuration. Voici la ligne qui le fait.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Corrigez le message d'erreur

Apache donne par défaut le message d'erreur suivant

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Pour résoudre ce problème, définissez la variable ServerName sur votre nom d'hôte ou votre nom de domaine complet dans le fichier de configuration apache

$ sudo nano /etc/apache2/apache2.conf

Ajoutez la ligne suivante à la fin

ServerName yourhostname

Recharger la configuration Apache

$ sudo service apache2 reload

Modifier le répertoire racine Web

Pour modifier le répertoire racine Web, nous devons modifier le paramètre dans les fichiers de configuration "sites-enabled". En règle générale, un fichier de configuration distinct est créé dans le répertoire activé pour les sites pour chaque hôte virtuel.

Un hôte virtuel est un domaine. Ainsi, vous pouvez avoir plusieurs domaines servis par apache. Dans cet exemple, nous utilisons simplement le fichier de configuration par défaut.

Il devrait y avoir un fichier appelé 000-default.conf dans le répertoire /etc/apache2/sites-enabled. Si ce n'est pas là, copiez-le depuis /etc/apache2/sites-available. Le fichier ressemble initialement à ceci.

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...
</VirtualHost>

Remplacez le chemin DocumentRoot par la nouvelle racine Web que vous souhaitez utiliser. Enregistrez le fichier et redémarrez apache.

$ sudo service apache2 restart

Essayez maintenant d'accéder à localhost. Si cela ne fonctionne pas, vérifiez le journal des erreurs situé à

$ cat /var/log/apache2/error.log

Depuis Apache 2.4.3, il existe une fonctionnalité de sécurité qui empêche apache d'accéder à d'autres répertoires. Et puis l'url localhost afficherait le message d'erreur "Interdit" et le journal des erreurs contiendrait un message comme celui-ci

[Sun Nov 03 11:25:24.521491 2013] [authz_core:error] [pid 6950] [client 127.0.0.1:41078] AH01630: client denied by server configuration: /var/www/phpinfo.php

L'erreur signifie qu'Apache n'est pas en mesure d'accéder au répertoire racine Web en raison d'une configuration. Pour résoudre ce problème, ajoutez ce qui suit à la configuration vhost

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
The "Require" directive fixes the problem. Newer version of Apache (2.3+) require the "Require" directive to allow access.

Le fichier final 000-default.conf devrait ressembler à ceci

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www2

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...

         # New directive needed in Apache 2.4.3: 
          <Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
</VirtualHost>

Maintenant, redémarrez Apache et le nouveau répertoire racine Web devrait enfin fonctionner.

Ajouter plus de vhosts ou de domaines

Pour ajouter plus d'hôtes virtuels, créez simplement plus de fichiers de configuration comme 000-default.conf et nommez-le autrement qu'avec une extension conf. Définissez un nom de serveur unique dans chaque fichier et attribuez à chaque hôte un répertoire racine Web distinct.

Vous pouvez également créer un fichier de configuration dans le répertoire sites-available et utiliser la commande a2ensite pour activer le site. Il créera les liens symboliques nécessaires dans le répertoire "sites-enabled".

Créez donc d'abord un fichier de configuration en copiant le fichier de configuration par défaut.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf

Modifiez le fichier de configuration selon vos besoins. La chose importante à changer est la racine du document pour le nouveau site.
Puis activez-la en utilisant la commande a2ensite

$ sudo a2ensite mysite

Redémarrez apache. Et le nouveau site devrait fonctionner correctement.

Activer le fichier htaccess

Le fichier htaccess permet de modifier divers paramètres de configuration apache par répertoire lors de l'exécution. Par défaut, apache n'est pas configuré pour utiliser le fichier htaccess. Pour ce faire, ajoutez simplement la ligne suivante dans la section Annuaire ci-dessus.

AllowOverride FileInfo

Ce qui précède indiquera à apache de commencer à lire les fichiers htaccess et d'analyser les instructions de configuration qui y sont écrites.

La configuration finale pourrait ressembler à ceci -

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   AllowOverride FileInfo
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

Après avoir installé apache, vous voudrez peut-être installer d'autres choses comme php, mysql, phpmyadmin en fonction de ce dont vous avez besoin. Alors allez-y et profitez !


Ubuntu
  1. Comment installer et configurer un serveur NFS sur Ubuntu 20.04

  2. Comment installer et configurer VNC sur Ubuntu 20.04

  3. Comment installer et configurer VNC sur Ubuntu 18.04

  4. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  5. Comment installer et configurer le serveur Redis dans Ubuntu

Comment installer et configurer le serveur LAMP sur Ubuntu

Comment installer et configurer le serveur OpenLDAP sur Ubuntu 16.04

Comment installer et configurer VNC sur Ubuntu Server 20.04

Comment installer le serveur Web Apache sur Ubuntu 18.04

Comment installer le serveur Web Apache sur Ubuntu 20.04

Comment installer et configurer un serveur Web LAMP sur Ubuntu 18.04