Apache : installation et configuration d'un serveur web. Configuration des hôtes virtuels Apache. Fichiers de configuration du serveur

Plus tôt dans notre série sur les bases de Linux, nous avons couvert les bases du travail avec le serveur Web Apache. Il s'agit du serveur Web le plus utilisé au monde sur Internet (en juillet 2015, Apache en avait 38 %, IIS 26 % et Nginx 15 %). Par conséquent, plus vous en saurez et comprenez son fonctionnement, plus vous réussirez à le pirater.

Aujourd'hui, nous allons passer en revue les bases de la configuration d'un serveur Apache. Comme nous l'avons écrit précédemment, la configuration et la configuration de presque toutes les applications sous Linux ou Unix se font via des fichiers de configuration, qui sont en texte brut. Apache ne fait pas exception ici. Par conséquent, dans cet article, nous allons nous concentrer sur le fichier de configuration apache2.conf situé dans le répertoire /etc/apache2.

Étape 1. Démarrez Apache2

Commençons par exécuter Apache2. Nous le ferons via le shell graphique Kali en allant dans Applications -> Kali Linux -> Services système -> HTTP -> démarrage d'apache2, comme indiqué dans la capture d'écran ci-dessous.

Ou exécutez-le via la ligne de commande en tapant la commande suivante dans le terminal

Kali> service apache2 démarrer

Cela démarre le démon Apache2, et à partir de maintenant, le serveur Web devrait servir notre contenu sur Internet.

Étape 2. Vérifiez la santé du serveur

Pour vérifier si notre serveur Apache, naviguons simplement vers localhost ou 127.0.0.1 dans le navigateur. Si vous voyez la page comme dans la capture d'écran ci-dessous, cela signifie que le serveur fonctionne correctement !

Étape 3. Ouvrez le fichier de configuration

Pour configurer Apache, il faut aller dans le répertoire /etc/apache2.

Kali>cd/etc/apache2

Affichez une liste de tous les fichiers de ce répertoire :

Kali> ls -l

Comme vous pouvez le voir, il y a plusieurs fichiers et sous-répertoires dans ce répertoire. Pour l'instant nous ne nous intéressons qu'au fichier apache2.conf, mais notez que nous avons un fichier ports.conf et un dossier sites_available dont nous aurons besoin un peu plus tard, et il y a plusieurs autres fichiers et dossiers de configuration.

Nous pouvons ouvrir apache2.conf dans n'importe quel éditeur de texte, mais ici, nous utiliserons Leafpad. Le fichier peut être ouvert en tapant simplement dans la console :

Kali> leafpad /etc/apache2/apache2.conf

Comme vous pouvez le voir, cette commande ouvre un fichier texte avec toutes les informations de configuration de notre serveur Web Apache. Pour mettre en place le serveur, nous allons maintenant essayer de vous familiariser avec tous les points clés de ce fichier.

Étape 4. ServerRoot

Faisons défiler vers le bas, sautons tous les commentaires et trouvons la ligne # 70, où commence la section des paramètres globaux. Ici, nous voyons les paramètres ServerRoot. Il s'agit du sommet de l'arborescence des répertoires où le serveur Apache stocke tous les fichiers liés au serveur. La ligne # 84 définit ServerRoot. Nous pouvons simplement décommenter cette ligne si nous voulons définir /etc/apache2 comme ServerRoot. Nous vous recommandons de le faire.

Étape 5. Délai d'attente

Dans la section suivante, nous avons des variables qui définissent les valeurs des paramètres : Timeout, KeepAlive, MaxKeepAliveRequests et KeepAliveTimeout.

  • Temps libre: C'est le temps pendant lequel le serveur doit répondre à la requête de l'utilisateur. Sa valeur par défaut est 300, ce qui signifie que le serveur doit traiter chaque requête dans les 300 secondes ou 5 minutes. C'est certainement trop long et peut être réglé sur 30 secondes.
  • Rester en vie: Cela signifie que le serveur reste actif (maintient la connexion) pour plusieurs requêtes du même client. La valeur par défaut est Activé. Cela signifie que les clients n'ont pas besoin de créer une nouvelle connexion pour chaque requête adressée à notre serveur. Cette approche permet d'économiser les ressources du serveur.
  • MaxKeepAliveRequêtes: cette valeur détermine quantité maximale secondes autorisées entre les demandes reçues d'une connexion établie avec un seul client. Si nous définissons cette valeur sur 0, la durée n'est pas limitée.
  • KeepAliveTimeout: Il s'agit de la durée entre les demandes pour déterminer si la connexion est toujours active (établie).

Nous vous suggérons de laisser toutes les valeurs par défaut, à l'exception du paramètre "Timeout". Chaque situation est différente et vous devrez peut-être modifier ces valeurs par défaut afin d'adapter les performances du serveur à votre environnement.

Étape 6. Utilisateur et groupes Apache2

Faisons à nouveau défiler quelques lignes dans apache2.conf jusqu'à ce que nous arrivions à la ligne # 177. Ici, nous pouvons définir l'utilisateur et les groupes Apache2. Notez le commentaire à la ligne # 177. Il indique que nous pouvons définir ces variables dans le fichier envvars (variables d'environnement). Nous laisserons cette question pour de futurs articles, mais pour l'instant, gardez à l'esprit que l'utilisateur et le groupe sont des variables provenant de / etc / apache2 / envvars.

Enfin, la dernière section, qui est d'une grande importance pour la sécurité d'Apache, commence à la ligne # 193. Cette section garantit que les clients Web ne peuvent pas accéder aux fichiers .htaccess et .htpasswd.

Étape 7. Journalisation

La section suivante décrit comment Apache gère les journaux (logs).

Dans la première sous-section, nous nous référons au paramètre HostNameLookups. Cette directive indique à Apache2 s'il doit effectuer des recherches DNS lorsqu'il se connecte connexion établie... Avec la valeur par défaut Off, Apache2 fonctionne bien mieux.

Étape 8. Sites disponibles

Regardons maintenant le répertoire site_available (sites accessibles) et, surtout, le fichier qui s'y trouve par défaut. Il est souvent appelé fichier Virtual Hosts par défaut. Ouvrez ce fichier en tapant dans la console :

Kali> leafpad / etc / apache2 / site_available / default

Comme vous pouvez le voir, il y a trois domaines critiques dans ce fichier. La première ligne définit sur quel port le serveur Web écoute. Il est défini ici qu'il écoute n'importe quelle interface sur le port 80 (* : 80). La deuxième ligne définit l'adresse E-mail, auquel vous devez envoyer des notifications en cas de problème avec le serveur. Par défaut, il y a une adresse. Si vous êtes administrateur système, vous pouvez entrer votre adresse e-mail ici. Le troisième élément peut être le plus important - le DocumentRoot. Il détermine où le contenu de cet hôte virtuel sera placé, la valeur par défaut est /var/www. Nous vous suggérons de tout laisser tel qu'il a été défini par les développeurs.

Étape 9. Ports

Enfin, nous pouvons descendre encore plus bas dans le fichier apache2.conf jusqu'à la ligne #248 - "include port.conf". Cette directive indique simplement à Apache d'aller dans le fichier port.conf pour trouver les ports sur lesquels il doit écouter.

Maintenant, si nous ouvrons le fichier port.conf, nous pouvons voir qu'il est configuré pour écouter sur le port 80 (ligne # 9). La section suivante, qui commence à la ligne 11, vérifie si mod_ssl.c est activé et, s'il est activé, ouvre le port 443 (ligne 17).

Préparation des dossiers

Je n'aime vraiment pas que tout traîne, alors pour commencer, nous allons créer des dossiers où seront situés les programmes et les sites.
Créons un dossier "Serveur" sur le lecteur "C: \" (ou là où cela vous convient le mieux) :
C:\Serveur\
Nous allons y créer 2 dossiers :
C:\Server\web est le dossier dans lequel nous aurons des programmes
C:\Serveur\domaines - ce dossier contiendra nos sites
Ainsi, dans le dossier \web\, nous allons créer 3 dossiers pour apache, php, mysql :
C:\Serveur\web\apache\
C:\Serveur\web\php\
C:\Serveur\web\mysql\
Ensuite, allez dans le dossier domaines et créez un dossier \ localhost \
C:\Serveur\domaines\localhost\
A l'intérieur du dossier, nous aurons 2 sous-dossiers : public_html - pour les fichiers du site ; journaux - pour fichiers texte, quel enregistrement « qui » ​​a eu accès au site et quelles erreurs sont apparues sur le site.
C:\Serveur\domaines\localhost\public_html\
C:\Serveur\domaines\localhost\logs\
Ceci conclut la structure des dossiers, passons à la configuration d'Apache.

Configuration d'Apache

Pour installer Apache, nous avons besoin d'Apache lui-même (Cap). Puisque nous avons Windows 8.1 x64, nous allons installer Apache x64.
Pour télécharger, suivez le lien :
www.apachelounge.com/download/win64
et téléchargez "httpd-2.4.6-win64.zip". Nous avons également besoin de travail normal Package redistribuable Microsoft Visual C ++ 2010 (x64). Pour cela, téléchargez-le à partir de ce lien :
www.microsoft.com/ru-ru/download/details.aspx?id=14632
et installer.
Après avoir téléchargé notre archive depuis Apache, ouvrons-la. Après avoir ouvert l'archive, nous verrons le dossier "Apache24", allez-y. De nombreux dossiers et fichiers de programme apparaîtront, nous décompressons le tout dans le dossier préparé précédemment :
C:\Serveur\web\apache\
Ça devrait ressembler à ça:
C:\Serveur\web\apache\bin\
C:\Serveur\web\apache\cgi-bin\
C:\Serveur\web\apache\conf\
C:\Serveur\web\apache\erreur\
C:\Serveur\web\apache\htdocs\
C:\Serveur\web\apache\icons\
C:\Serveur\web\apache\include\
C:\Serveur\web\apache\lib\
C:\Serveur\web\apache\logs\
C:\Serveur\web\apache\manuel\
C:\Serveur\web\apache\modules\
Nous n'avons pas besoin de dossiers comme \ cgi-bin \, \ htdocs \, \ icons \ et \ manual \ - vous pouvez les supprimer.
Allons dans le dossier :
C:\Serveur\web\apache\conf\
Et ouvrez le fichier de configuration Apache - "httpd.conf" avec n'importe quel éditeur de texte. Dans ce fichier, chaque ligne contient des directives pour la configuration d'Apache, et les lignes commençant par un signe # (dièse) sont des commentaires et des explications. Commençons la configuration :

fichier de configuration Apache

# Directive Apache
ServerRoot "C:/Serveur/web/apache"
# On écoute sur le port IP local (80 par standard)
Écouter 127.0.0.1:80
# plus loin, nous allons connecter les bibliothèques d'extension pour Apache
LoadModule rewrite_module modules / mod_rewrite.so
LoadModule php5_module "C: /Server/web/php/php5apache2_4.dll"
# indique à Apache que les fichiers avec l'extension php doivent être interprétés comme des scripts php
Application AddHandler / x-httpd-php .php
# spécifiez l'emplacement du fichier de paramètres php
PHPIniDir "C:/Serveur/web/php"
# changer le nom du serveur
Nom du serveur 127.0.0.1:80
# modifier l'accès au répertoire

Les options incluent les index FollowSymLinks
AutoriserTout remplacer
Autoriser de tous


# annuaire avec nos sites
DocumentRoot "C:/Serveur/domaines"
# fichiers d'indexation, par priorité.

RépertoireIndex index.php index.html index.htm index.shtml

# dossier pour les fichiers journaux
ErrorLog "C: /Server/domains/logs/error.log"
CustomLog "C: /Server/domains/logs/access.log"
# ajouter un alias pour phpMyAdmin et corriger l'alias pour cgi

Alias ​​/ pma "C:/Serveur/domaines/phpMyAdmin"
ScriptAlias ​​/ cgi-bin / "C:/Serveur/web/apache/cgi-bin/"

# modifier le chemin pour cgi

AllowOverride Aucun
Options Aucune
Exiger tout accordé

# types de fichier


AddType text / html .shtml
AddOutputFilter INCLUT .shtml
Application AddType / x-httpd-php .php
Application AddType / x-httpd-php-source .phps

# Autres configurations :



NavigateurMatch "MSIE 10.0 ;" mauvais_DNT


RequestHeader unset DNT env = bad_DNT

Ceci termine la configuration de httpd.conf.
Des configurations supplémentaires ont été incluses dans le fichier de configuration Apache httpd.conf :
Inclure conf / extra / httpd-mpm.conf
Inclure conf / extra / httpd-autoindex.conf
Inclure conf / extra / httpd-vhosts.conf
Inclure conf / extra / httpd-manual.conf
Inclure conf / extra / httpd-default.conf
Ouvrons le fichier "C:\Server\web\apache\conf\extra\httpd-mpm.conf" et parcourons-le rapidement.
# spécifiez où nous allons stocker le fichier pid :

PidFile "C: /Server/web/apache/logs/httpd.pid"

Laissez le reste des paramètres inchangés. Ouvrons le fichier "httpd-autoindex.conf", ne changeons que les lignes avec le chemin :
Alias/icones/"c:/Serveur/web/apache/icones/"

Options Index Multivues
AllowOverride Aucun
Exiger tout accordé

Fichier d'hôtes Apache

# par exemple domaine localhost

DocumentRoot "C:/Serveur/domaines/localhost/public_html"
Nom du serveur localhost
ErrorLog "C: /Server/domains/localhost/logs/error.log"
CustomLog "C: /Server/domains/localhost/logs/access.log" commun


# ajouter phpMyAdmin pour le futur (n'oubliez pas de créer un dossier)

DocumentRoot "C:/Serveur/domaines/phpmyadmin/public_html"
Nom du serveur localhost
ErrorLog "C: /Server/domains/phpmyadmin/logs/error.log"
CustomLog "C: /Server/domains/phpmyadmin/logs/access.log" commun

Ceci termine l'édition du fichier. De plus, dans les fichiers restants, nous ne modifions que les chemins :
Le fichier "httpd-manual.conf":
AliasMatch ^ / manuel (?: / (?: da | de | en | es | fr | ja | ko | pt-br | ru | tr | zh-cn))? (/.*)? $ "C: / Serveur/web/apache/manuel 1$"

Aucune modification n'est apportée au fichier "httpd-default.conf". Ceci termine la configuration de la configuration Apache.

Paramétrage PHP

Puisque nous avons Windows 8.1 x64 et qu'Apache x64 est installé et configuré, php doit également être x64.
Nous allons sur le site :

et téléchargez la dernière archive php. Nous avons besoin de php comme module, c'est-à-dire pour ce faire, téléchargez Thread Safe. Une fois l'archive téléchargée, ouvrez-la et transférez le contenu dans le dossier "C:\Server\web\php\". Créons deux dossiers vides "tmp" et "upload". Ensuite, dans ce dossier, recherchez le fichier "php.ini-development" et renommez-le en "php.ini". Ouvrez le fichier dans un éditeur de texte et modifiez les directives (la mise en commentaire des lignes du fichier commence par un point-virgule).

Configuration de php.ini

short_open_tag = Activé
zlib.output_compression = Activé
post_max_size = 64M
include_path = ".; : \ Server \ web \ php \ include"
extension_dir = "C:/Serveur/web/php/ext"
upload_tmp_dir = "C:/Serveur/web/php/upload"
upload_max_filesize = 64M
extension = php_bz2.dll
extension = php_curl.dll
extension = php_gd2.dll
extension = php_mbstring.dll
extension = php_mysql.dll
extension = php_mysqli.dll
extension = php_pdo_mysql.dll
extension = php_sockets.dll
extension = php_sqlite3.dll
; dans la section nous indiquons le fuseau horaire de notre serveur (http://php.net/date.timezone)
date.timezone = "Asie / Iekaterinbourg"
session.save_path = "С:/Serveur/web/php/tmp/"


Ceci termine la configuration de php.

Configuration de MySQL

Nous installons MySQL x64 en tant que socket sous windows. Téléchargez les archives de dernière version MySQL x64 :
dev.mysql.com/downloads/mysql
En bas de la page, nous trouvons Windows (x86, 64 bits), ZIP Archive et cliquez sur le bouton "Télécharger". Vous serez redirigé vers la page d'inscription sur le site. Cliquez en bas de la page "Non merci, lancez simplement mon téléchargement" pour lancer le téléchargement de l'archive MySQL. Une fois l'archive téléchargée, ouvrez-la et transférez tout le contenu du dossier dans "C:\Server\web\mysql\"
Ouvrez maintenant le fichier de paramètres MySQL - "C: \ Server \ web \ mysql \ my-default.ini". Nous supprimons tout son contenu et y ajoutons nos données.
port = 3306
hôte = 127.0.0.1
port = 3306
adresse-liée = 127.0.0.1
activer-tuyau-nommé
basedir = "C:/Serveur/web/mysql/"
datadir = "C:/Serveur/web/mysql/données/"
sql_mode = NO_ENGINE_SUBSTITUTION, STRICT_TRANS_TABLES
C'est tout. Dans le fichier de configuration, nous avons indiqué que les scripts peuvent accéder au serveur via des connexions IP locales et socket.
Il reste peu à faire. Ajoutez les chemins vers Apache et MySQL à la variable système "PATH", pour cela :
  1. Faites glisser le curseur de la souris dans le coin inférieur droit de l'écran
  2. Cliquez sur l'icône Rechercher et entrez : panneau de configuration
  3. Sélectionnez Système -> Avancé
  4. Sélectionnez Variables d'environnement dans le menu Variables système, recherchez la variable PATH et cliquez dessus.
  5. Ajoutez les chemins vers Apache et MySQL :
; C:\Serveur\web\apache\bin; C:\Serveur\web\mysql\bin
Ensuite, nous allons installer les services Apache et MySQL. Pour ce faire, utilisez la combinaison de touches "Win + X", un menu déroulant apparaîtra dans le coin inférieur gauche. Choisissons "Ligne de commande (administrateur)".
DANS ligne de commande nous entrons pour installer Apache :
httpd –k installer
pour installer MySQL :
mysqld.exe --install MySQL --defaults-file = "C: \ Server \ web \ mysql \ my-default.ini"
Définissons un mot de passe pour l'utilisateur MySQL. Pour ce faire, démarrez le service MySQL avec la commande :
NET démarrer MySQL
Une fois le service démarré, définissez le mot de passe :
mysqladmin –u mot de passe root YourPassword
Nous avons enregistré deux sites dans le fichier "httpd-vhosts.conf", afin que le navigateur puisse les voir, les noms des sites doivent être ajoutés au fichier "hosts". Allons dans le dossier :
C:\Windows\System32\Pilotes\etc\
ouvrez le fichier "hosts" avec n'importe quel éditeur de texte (exécutez en tant qu'administrateur) et ajoutez à la fin du fichier :
127.0.0.1 hôte local
127.0.0.1 phpmyadmin
Nous sauvegardons le fichier.
Pour faciliter le démarrage et l'arrêt des services Apache et MySQL, créons les fichiers start-server.bat et stop-server.bat.
Pour cela, allez dans le dossier "C:\Server\" et créez ces deux fichiers.
Contenu de "start-server.bat":
@Écho off
NET démarrer Apache2.4
NET démarrer MySQL
Contenu de "stop-server.bat":
@Écho off
NET arrêt Apache2.4
NET arrêter MySQL
La configuration d'Apache, PHP et MySQL est maintenant terminée. Afin de tester le serveur, créons un fichier « index.php » avec le contenu suivant dans le dossier « C: \ Server \ domains \ localhost \ public_html » :

Ensuite, démarrons notre serveur, pour ce faire, exécutez "start-server.bat" en tant qu'administrateur. Une fois le serveur démarré, ouvrez votre navigateur et entrez "localhost" dans la barre d'adresse.
La page d'informations PHP devrait s'afficher.

Dernière mise à jour : 20.10.2017

Téléchargez le package du serveur Web Apache sur http://www.apachelounge.com/. Choisissons la dernière version du serveur. Sur la page de téléchargement, nous pouvons trouver deux versions du package Apache - pour les systèmes 64 bits et pour les systèmes 32 bits.

Avant d'installer Apache, il convient de noter que si notre système d'exploitation est Windows, alors le package pour C++ doit être installé sur le système, qui se trouve à l'adresse pour 64 bits et pour 32 bits.

Après avoir téléchargé le package Apache, décompressez l'archive téléchargée. Nous y trouverons directement le dossier contenant les fichiers du serveur Web - le répertoire Apache24. Déplaçons ce répertoire sur le lecteur C afin que le chemin complet vers le répertoire soit C: / Apache24.

Nous devons maintenant installer Apache en tant que service Windows. Pour ce faire, lancez la ligne de commande Windows en tant qu'administrateur et accédez au répertoire du serveur Web à l'aide de la commande

httpd.exe -k install

Si l'installation est réussie, la ligne de commande affichera le message "Le service Apache2.4 est installé avec succès". Le serveur sera également testé :

Dans mon cas, comme le montre l'image ci-dessus, Apache n'a pas pu se connecter au port 80, qui est la valeur par défaut dans la configuration, car mon port 80 est écouté par un autre serveur Web - IIS. C'est l'un des problèmes courants lors du démarrage d'Apache. Pour résoudre ce problème, nous devons soit désactiver le service IIS, soit spécifier un nouveau port pour Apache. Je choisirai la deuxième voie.

Après l'installation, nous allons configurer le serveur pour le lier à l'interpréteur PHP précédemment installé. Pour cela, dans le dossier C:\Apache24\conf trouvez le fichier httpd.conf et ouvrez-le dans un éditeur de texte.

Le fichier httpd.conf configure le comportement du serveur Web. Nous n'aborderons pas de la même manière ses descriptions, mais apporterons seulement de petites modifications dont nous avons besoin pour travailler avec PHP.

Tout d'abord, trouvons la ligne

Écouter 80

Cette ligne indique le port d'écoute. La valeur par défaut est le port 80. S'il n'y a pas de conflits avec les ports, vous pouvez le laisser tel quel. Je vais le changer pour le port 8080.

#NomServeur www.exemple.com:80

et changer pour

Nom du serveur localhost : 8080

Connectons maintenant PHP. Pour cela, recherchez la fin du bloc de chargement du module dans le fichier httpd.conf ChargerModule

// ...................... #LoadModule watchdog_module modules / mod_watchdog.so #LoadModule xml2enc_module modules / mod_xml2enc.so

Et à la fin de ce bloc, ajoutez les lignes

LoadModule php7_module "C:/php/php7apache2_4.dll" PHPIniDir "C:/php"

DocumentRoot "c:/Apache24/htdocs"

Par défaut, le répertoire "c:/Apache24/htdocs" est utilisé comme référentiel de documents. Remplaçons cette ligne par la suivante :

DocumentRoot "c:/localhost"

Modifions les chemins des fichiers dans lesquels les informations sur les erreurs ou les visites du site seront enregistrées. Pour ce faire, recherchez la ligne

ErrorLog "journaux / error.log"

Et remplacez-le par

ErrorLog "c: /localhost/error.log"

CustomLog "logs/access.log" commun

Et remplacez-le par

CustomLog "c: /localhost/access.log" commun

Et aussi trouver le bloc et ajoutez-y deux lignes :

Application AddType / x-httpd-php .php Application AddType / x-httpd-php-source .phps

Et à la fin nous trouverons un bloc :

Index de répertoire index.html

Et remplacez-le par ce qui suit :

RépertoireIndex index.html index.htm index.shtml index.php

Il s'agit de la configuration minimale requise pour travailler avec PHP. Pour gérer le serveur (démarrer, arrêter, redémarrer), on peut utiliser l'utilitaire fourni avec le kit -. Cet utilitaire se trouve dans le répertoire C:\Apache24\bin

Exécutons l'utilitaire. L'icône ApacheMonitor apparaîtra dans la barre d'état. Cliquez dessus et dans le menu contextuel qui apparaît, sélectionnez l'élément Démarrer.

Si tout est configuré correctement, le serveur Web doit démarrer.

Maintenant, notre tâche est de nous assurer que php est connecté et fonctionne correctement. Pour ce faire, accédez au dossier c: / localhost que nous avons créé pour stocker les documents et ajoutez-y un fichier texte brut. Renommez-le en index.php et ajoutons-y le contenu suivant :

Dans ce cas, nous avons créé script le plus simple qui affiche des informations générales sur PHP. Passons maintenant à ce script en tapant l'adresse dans la ligne du navigateur http://localhost:8080/index.php

Que s'est-il passé ici? Lors de l'accès à un site sur une machine locale, http:// localhost est spécifié comme adresse. Puisque nous avons indiqué 8080 comme port, le port est également indiqué dans l'adresse par deux points. Si nous utilisions le 80e port, qui est utilisé par défaut, il n'aurait pas besoin d'être spécifié.

Ensuite, le nom de la ressource en cours d'accès est indiqué. Dans ce cas, le fichier index.php est utilisé comme ressource. Et puisque dans le fichier httpd.conf, le répertoire est spécifié comme magasin de documents du serveur Web C: \ localhost, alors c'est dans ce répertoire que le serveur web va rechercher les fichiers nécessaires.

Et puisque plus haut, lors de la configuration, nous avons indiqué que comme page d'accueil le fichier peut être utilisé index.php alors nous pouvons également accéder à cette ressource simplement http:// localhost: 8080/

Ceci termine l'installation et la configuration du serveur web Apache, et nous pouvons créer nos sites.

andou

2016-07-23T17 : 54 : 43 + 00 : 00

2017-08-25T04 : 44 : 37 + 00 : 00

6400

L'article donne un aperçu de la configuration serveur Web Apache sur serveur Ubuntu avec installation LAMP standard sur Ubuntu. La logique et la structure de l'organisation des fichiers de configuration du serveur web sont données. Le but des configurations de serveur principal est décrit. Les commandes de base Linux Ubuntu pour la manipulation de la configuration, la configuration et la gestion du serveur Web Apache sont fournies. Le site par défaut, qui est créé lors de l'installation d'Apache, est pris en compte. L'article vous sera utile lors de la configuration et de l'administration de votre serveur LAMP.

Comment ajouter de l'assistance PHP comme moteur de script dans Apache sur le Ubuntu ou alors les fenêtres décrit en détail dans l'article Installer PHP7 sous Windows Au chapitre Personnalisation.

Page WEB par défaut d'Apache

Lors d'une installation de serveur Web standard Apache dans Ubuntu serveur un site de test est créé, qui sert à tester les performances du serveur web après son installation. Ce site, par défaut, est configuré pour autoriser l'accès du navigateur uniquement aux fichiers et répertoires à l'intérieur / var / www répertoires Ubuntu serveur. Si, à la fin de l'installation Apache, vous ouvrirez une page Web dans votre navigateur à l'adresse IP votre serveur web, vous verrez page de démarrage serveur - Page par défaut d'Apache2 Ubuntu... Cela dira tout d'abord que Apache installé avec succès et fonctionne. Cette page est physiquement située sur le serveur dans un fichier /var/www/html/index.html et la configuration d'hôte virtuel par défaut ( /etc/apache2/sites-available/000-default.conf), qui définit l'hôte virtuel (site) du répertoire /var/www/html et est créé lors de l'installation du serveur Apache... Par conséquent, si vous placez vos fichiers dans ce dossier, ils seront traités par le serveur Web. Aussi sur ce Page par défaut dans la rubrique Présentation de la configuration vous verrez un diagramme schématique de la structure des fichiers de configuration du serveur. Ici, vous devez comprendre que la structure, les noms et les emplacements des configurations Apache dans Ubuntu différer du schéma généralement accepté, ce qui est fait pour la commodité de la gestion du serveur. Mais il y a une mise en garde ici, c'est que si vous n'étiez pas familiarisé avec l'organisation des répertoires dans le répertoire personnel Apache sur le Ubuntu, alors ce schéma ne peut que vous embrouiller, car il ne contient pas tous les dossiers, mais uniquement les répertoires dans lesquels se trouvent symbolique Liens vers activé fichiers de configuration. Par conséquent, pour plus bonne compréhension, consultez le diagramme complet du répertoire de base du serveur Web Apache ci-dessous dans cet article. De valeur dans la section de la page Web Apache, ce sont des liens vers homme« NS Debian pour les équipes a2enmod, a2dismod, a2ensite, a2dissite, a2enconf, a2disconf, qui permettent d'activer et de désactiver certains types de fichiers de configuration et seront décrits en détail. Il dit aussi ici que pour envoyer des commandes au serveur web ( démarré / arrêté etc.) vous devez contacter /etc/init.d/apache2 ou pour apache2ctl qui est également une caractéristique du serveur dans Ubuntu. Sur le serveur Ubuntu dans le fichier /usr/share/doc/apache2/README.Debian.gz vous pouvez trouver une documentation complète sur Apache.

Répertoire d'accueil Apache sur Ubuntu

Défaut, domicile répertoire du serveur Web Apache dans Ubuntuêtre sur /etc/apache2/ chemins dans le système de fichiers. Tous les fichiers de configuration se trouvent dans ce répertoire et ses sous-répertoires. Apache... Vous pouvez modifier la valeur du chemin du répertoire personnel du serveur Web en utilisant la directive ServerRoot "/etc/apache2" dans la configuration principale apache2.conf... Là, par défaut, la directive ServerRoot est commentée, ce qui équivaut à sa signification comme "/ etc / apache2" ( La barre oblique finale ne doit pas être dans cette directive !). Valeur du chemin du répertoire personnel Apache(ServerRoot) est nécessaire pour le serveur afin qu'il sache où dans le système de fichiers il doit rechercher ses fichiers de configuration. La valeur ServerRoot peut également remplacer server dans certaines directives attend comme argument façon dans le système de fichiers Ubuntu... Par conséquent, dans de tels cas, si le chemin est spécifié sans initiale barre alors Apache le prendre comme relatif manière par rapport à votre domicile répertoires. Ainsi, par exemple, si vous spécifiez la directive AuthUserFile .htpasswd, alors dans cette version Apache interprétera le chemin spécifié comme relatif et le transformer en /etc/apache2/.htpasswd, en substituant devant la valeur de son chemin domicile répertoires.

Structure du répertoire de base Apache dans Ubuntu

Dans le processus la norme Installation de serveur WEB Apache dans Ubuntu la structure de fichiers et de répertoires suivante du répertoire home du serveur Web est créée :

/ etc / apache2 / ............................... Répertoire de base Apache dans Ubuntu - ServerRoot | - conf-disponible...................... répertoire, contient différentes configurations | `- charset.conf ................... fichier pour spécifier les encodages | `- localized-error-pages.conf ..... fichier pour définir les pages d'erreur | `- other-vhosts-access-log.conf ... fichier pour la configuration des journaux d'hôtes virtuels | `- security.conf .................. fichier pour les directives de sécurité | `- serve-cgi-bin.conf ............. fichier pour les directives de configuration CGI | - conf-activé activé les configurations de conf-disponible| `- @ .............................. LIENS vers les configurations activées de conf-disponible |-- mods disponibles...................... répertoire, contient les configurations des modules Apache installés | `- ... ........................configurations disponibles pour les modules Apache | - mods activés........................ répertoire, contient des LIENS vers activé configurations de module de mods disponibles| `- @ .............................. LIENS vers les configurations activées des modules Apache | - sites-disponibles..................... répertoire contient les configurations disponibles des hôtes virtuels | `- 000-default.conf ............... fichier hôte virtuel par défaut pour le port 80, créé lors de l'installation d'Apache | `- default-ssl.conf ............... fichier hôte virtuel par défaut pour le port 443, créé lors de l'installation d'Apache | - activé pour les sites....................... répertoire, contient des LIENS vers activé configs d'hôtes virtuels de activé pour les sites| `- @ 000-default.conf .............. lien vers la configuration activée de l'hôte virtuel | - apache2.conf........................PRINCIPALE Configuration du serveur Web Apache dans Ubuntu | - envvars ............................. fichier avec les paramètres de chemin pour l'environnement Apache | - magic .. ................................. Fichier de scripts pour le module mime_magie(ce module n'est pas actif par défaut) | - ports.conf .......................... fichier à définir ports qui acceptera les connexions Apache

Les exemples donnés proviennent du serveur OS Ubuntu 16.04 LTS, mais il en sera de même dans d'autres versions et distributions d'Ubuntu, à la fois dans la version serveur et dans la version bureau.

Logique d'organisation de la configuration Apache

Comme mentionné ci-dessus, dans Ubuntu utilisé par excellentà partir de la structure organisationnelle d'origine des fichiers de configuration et des répertoires du serveur Web Apache.

d'abord, dans Ubuntu, configuration Apache divisé en un tas de différentes configurations par leur fonctionnel rendez-vous. Par exemple, les directives spécifiant Port pour le serveur, déplacé vers un fichier séparé ports.conf... Les directives responsables de certains paramètres de sécurité du serveur sont placées dans un fichier security.conf... Ainsi, les directives sont en quelque sorte regroupées selon leurs propres sens dans des fichiers de configuration séparés. C'est assez logique et pratique pour lire, éditer, activer et désactiver des configs. Avec cette approche, chaque fichier individuel devient plus petit et est hautement spécialisé partie de la configuration. Cependant, vous devez comprendre qu'un tel fractionnement est effectué uniquement pour la commodité et l'automatisation de la configuration, et techniquement, si vous le souhaitez, vous pouvez écrire toutes les directives et tous les paramètres dans un seul fichier, il ne sera tout simplement pas si pratique de travailler avec de tels un fichier.

en deuxième: centre toute la configuration est principale configuration Apache serveur Web - apache2.conf fichier. C'est ce fichier dans la première la file d'attente recherche et lit le serveur web Apache au démarrage ou au redémarrage. Et déjà dans ce fichier en utilisant des directives Comprendre, à la place de leur indication, la connexion et le chargement de toutes les autres configurations spécifiées sont effectués. De cette façon, tous les fichiers de configuration sont fusionnés dans uni configuration du serveur Web et cela se produit lorsque Apache lit les fichiers par ordre leurs connexions commençant par le principal configuration. Une note importante en découle - ordre directives suivantes dans la configuration Apache et en conséquence, ordre la connexion des fichiers de configuration est importante, car les directives lues par le serveur ultérieurement peuvent écraser les directives lues par le serveur plus tôt. Gardez cela à l'esprit lors de la configuration de votre serveur.

Troisièmement: si vous regardez la structure du répertoire domicile répertoires Apache tu verras trois des couples répertoire avec des noms comme : dir_ préfixe-disponible / activé... Une telle structure logique est conçue pour distribuer vos configurations à trois groupes, basé préfixe nom du répertoire où conf- * ce sont des répertoires pour vos autres configs, mods- * ce sont les répertoires des configs des modules Apache et des sites- * ce sont les répertoires de vos configs virtuel hôtes. La deuxième partie du nom de ces répertoires -disponible / -activé indique logiquement disponible en général et seulement actif actuellement les configurations. Donc dans les répertoires * -disponible tous disponible pour utiliser des fichiers de configuration, et déjà dans des répertoires comme * -activée symbolique liens (raccourcis) uniquement pour les configurations de * -disponible répertoires qui doivent être lus par le serveur web lors du chargement de la configuration. Apache ne lit que les répertoires comme * -activée, donc, uniquement les configs pour lesquelles il y a dans ces répertoires liens... Cette approche offre un niveau de commodité supplémentaire dans la mesure où elle vous permet de stocker toutes vos configurations dans les répertoires du répertoire personnel du serveur et d'utiliser uniquement le nécessaire dans les monnaies actuelles.

Quatrième: directives de configuration du serveur Web Apache avoir le contexte() dans lequel ils opèrent. Concept le contexte directive indique où, à quel niveau et dans quelle configuration la directive donnée peut êtreêtre utilisé. Une seule et même directive peut être utilisée à la fois dans un seul type de contexte et dans plusieurs types de contexte. Si une directive est utilisée / écrite dans un contexte qui n'est pas valide pour elle, alors elle sera erreur web du serveur Apache lors du chargement de la configuration, ce qui entraînera son arrêt. Par conséquent, lors de la rédaction de vos directives, faites toujours attention au contexte de leur application, qui est toujours indiqué dans la documentation de la directive sur le site Web d'Apache.

Cinquième: vous devez comprendre que Apache lit et applique toutes les configurations actives uniquement lorsque début ou redémarrer. Après le démarrage, Apache ne relit plus la configuration. Une exception est le fichier .htaccess lequel est fichier local niveau catalogue site et est relu lorsque tous se référant à ce répertoire de sites. Par conséquent, si vous avez modifié les paramètres de configuration en dehors .htaccess fichier, alors pour qu'ils prennent effet, vous devez recharger la toile serveur Apache.

Types de contexte de directive :

  • configuration du serveur - global niveau de directive à appliquer dans les fichiers de configuration générale du serveur à l'extérieur et à l'extérieur conteneurs et à l'extérieur fichier .htaccess;
  • hôte virtuel- niveau virtuel hôte d'appliquer la directive dans récipient;
  • annuaire- niveau catalogue, la directive doit être utilisée à l'intérieur des conteneurs , , , ;
  • .htaccess- niveau répertoire local site, la directive peut être appliquée dans le fichier.

Commandes de gestion de configuration

Pour plus de commodité et d'automatisation de la gestion de la configuration Apache dans Ubuntu il existe des commandes spéciales, à l'aide desquelles vous pouvez inclure ou exclure certains fichiers de configuration de la configuration du serveur, démarrer et redémarrer le serveur, afficher et modifier les paramètres des variables d'environnement Apache et beaucoup plus.

Commandes on/off de configuration

Pour activer et désactiver certaines configs dans Ubuntuà condition de commandes des assistants à l'écoute disponible/activée et préfixe annuaire. Par exemple, la commande a2enconf, qui peut être déchiffré comme apache2-enable-conf, active le fichier de configuration spécifié dans son argument de conf-disponible répertoire en créant une symbolique liens dans le catalogue conf-activé... Équipe a2disconf effectue l'action inverse, c'est-à-dire supprime ce lien. Une logique similaire s'applique au reste des commandes : a2enconf/a2disconf, a2enmod/a2dismod, a2ensite/a2dissite... Mais vous pouvez également créer/supprimer manuellement des liens symboliques vers les configurations dont vous avez besoin dans des répertoires comme * -activée.

Attention: pour que les modifications apportées aux configurations prennent effet, vous devez exécuter redémarrer Paramétrage du serveur WEB Apache.

a2enconf / a2disconf

Pour activer ou désactiver la config souhaitée depuis le répertoire conf-disponible dans la configuration du serveur utilisez les commandes :

Activer la configuration:

sudo a2enconf

Désactiver la configuration:

sudo a2disconf

a2enmod / a2dismod

Pour activer le module Apache installé depuis le répertoire mods disponibles

Activer le module Apache

sudo a2enmod

Désactiver le module Apache

sudo a2dismod

a2ensite / a2dissite

Pour activer une configuration d'hôte virtuel à partir d'un répertoire sites-disponibles et pour le désactiver utilisez les commandes :

Activer l'hôte virtuel dans Apache

sudo a2ensite

Arrêter l'hôte virtuel dans Apache

sudo a2dissite

Commandes de gestion Apache

DANS Ubuntu, grâce à l'utilisation de variables d'environnement, pour se référer à démon httpd web server, vous pouvez utiliser des appels de la forme : /etc/init.d/apache2 ou alors apache2ctl ou alors apache2:

sudo/etc/init.d/apache2 sudo apache2ctl sudo apache2

Aujourd'hui, nous allons exécuter le serveur Web Apache 2.2.2 et examiner ses paramètres de base.
Pour commencer, vérifions comment s'est déroulée notre installation : Ouvrez votre navigateur et saisissez http:// localhost -Vous verrez une page d'accueil : It Works ! Notre installation s'est donc bien déroulée.

Ensuite, cliquez sur l'icône du stylo dans la barre des tâches avec le bouton droit de la souris et sélectionnez "Ouvrir les services". Dans la fenêtre de gestion des services qui s'ouvre, sélectionnez la ligne "Apache2.2" et double-cliquez dessus, puis dans l'onglet "Général", sélectionnez le démarrage manuel du service - "Type de démarrage : Manuel"... Cela doit être fait pour que les services inutiles ne chargent pas le système. Étant donné que ordinateur de famille est utilisé non seulement pour le développement Web, mais aussi pour de nombreux autres besoins, le démarrage et l'arrêt manuels des services non utilisés en permanence sont les plus acceptables.

A la racine du lecteur C:, vous devez créer un répertoire "apache" - il contiendra vos hôtes virtuels (domaines), le fichier journal d'erreur global "error.log" (créé par le programme au premier démarrage, automatiquement ), le fichier d'accès global "access.log" (généré automatiquement). Dans le répertoire "apache", créez un autre dossier vide - "localhost", dans lequel, à son tour, créez le dossier "www", c'est dans ce dernier que le projet de notre site sera ajouté sous forme de scripts locaux. Cette structure de répertoires apparemment étrange est dictée par un schéma similaire pour la construction de répertoires dans les systèmes Unix, et est destinée à simplifier sa compréhension et son utilisation à l'avenir.

Modification du fichier httpd.conf
1. Pour charger le module mod_rewrite, recherchez et décommentez (supprimez le symbole "#" en début de ligne) cette ligne :

LoadModule rewrite_module modules / mod_rewrite.so


2. Pour charger l'interpréteur PHP, ajoutez la ligne suivante à la fin du bloc de chargement du module :

#LoadModule php5_module "C: /php/php5apache2_2.dll"


3. Déterminez le répertoire contenant la configuration fichier PHP en ajoutant en dessous la ligne suivante :

#PHPIniDir "C:/php"


décommenter après l'installation de php

4. Trouvez la ligne :

DocumentRoot "C:/serveur/htdocs"

Attribuez le répertoire de gestion du site racine (vous l'avez déjà créé un peu plus tôt) :

DocumentRoot "C:/apache"

5. Trouvez ce bloc :


Options FollowSymLinks
AllowOverride Aucun
Ordre refuser, autoriser
Refuser de tout


Et remplacez-le par ce qui suit :


Les options incluent les index FollowSymLinks
AutoriserTout remplacer
Autoriser de tous

6. Supprimez ou commentez le bloc de répertoire d'origine (nous n'en aurons pas besoin), qui ressemble à ceci sans commentaires :


#
# Les valeurs possibles pour la directive Options sont "Aucun", "Tous",
# ou toute combinaison de :
# Les index incluent FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Notez que "MultiViews" doit être nommé * explicitement * --- "Options All"
# ne vous le donne pas.
#
# La directive Options est à la fois compliquée et importante. S'il te plait regarde
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# pour plus d'informations.
#
Index des options FollowSymLinks

#
# AllowOverride contrôle quelles directives peuvent être placées dans les fichiers .htaccess.
# Il peut s'agir de "Tous", "Aucun" ou de n'importe quelle combinaison des mots-clés :
# Options FileInfo AuthConfig Limit
#
AllowOverride Aucun

#
# Contrôle qui peut obtenir des éléments de ce serveur.
#
Ordre autoriser, refuser
Autoriser de tous

7. Trouvez le bloc :


Index de répertoire index.html

Remplacez-le par :


RépertoireIndex index.html index.htm index.shtml index.php

8. Trouvez la ligne :

ErrorLog "journaux / error.log"


Remplacez par ce qui suit (dans ce cas, il sera plus pratique d'afficher le fichier d'erreur global du serveur) :

ErrorLog "C: /apache/error.log"

9. Trouvez la ligne :

CustomLog "logs/access.log" commun


Changer pour :

CustomLog "C: /apache/access.log" commun

10. Pour que SSI fonctionne (activation côté serveur) lignes suivantes situé dans le bloc, vous devez trouver et décommenter :

AddType text / html .shtml
AddOutputFilter INCLUT .shtml

11. Ajoutez ci-dessous, dans le même bloc, deux lignes :

Application AddType / x-httpd-php .php
Application AddType / x-httpd-php-source .phps

12. Enfin, trouvez et décommentez les lignes :

Inclure conf / extra / httpd-mpm.conf
Inclure conf / extra / httpd-autoindex.conf
Inclure conf / extra / httpd-vhosts.conf
Inclure conf / extra / httpd-manual.conf
Inclure conf / extra / httpd-default.conf

Enregistrez les modifications et fermez le fichier "httpd.conf"

Ouvrez maintenant le fichier "C:\server\conf\extra\httpd-vhosts.conf" et apportez-y les modifications suivantes.

Les exemples de blocs d'hôte virtuel existants doivent être supprimés et seuls les suivants insérés :

NomVirtualHost * : 80


DocumentRoot "C:/apache/localhost/www"
Nom du serveur localhost
ErrorLog "C: /apache/localhost/error.log"
CustomLog "C: /apache/localhost/access.log" commun

Enregistrez les modifications et fermez le fichier "httpd-vhosts.conf"

Poursuivons - nous installons le démarrage manuel du service Apache2.2 pour lequel nous passons par le chemin: "Démarrer" → "Panneau de configuration" → "Outils d'administration" → "Services" (" Services "), dans la fenêtre de gestion des services qui s'ouvre, sélectionnez la ligne " Apache2.2 " et double-cliquez dessus, puis dans l'onglet " Général ", sélectionnez le démarrage manuel du service - " Type de démarrage : Manuel " (" Type de démarrage : manuellement "). Cela doit être fait pour que les services inutiles ne chargent pas le système. Étant donné qu'un ordinateur personnel est utilisé non seulement pour le développement Web, mais également pour de nombreux autres besoins, le démarrage et l'arrêt manuels des services non utilisés en permanence sont les plus acceptables.

Un exemple de création d'un hôte virtuel

Si vous devez configurer vos propres hôtes virtuels, procédez comme suit :

Ouvrez le fichier "httpd-vhosts.conf" et créez-y un bloc qui ressemble à ce qui suit :

# Dossier où se trouvera la racine de votre hébergeur.
DocumentRoot "C: /apache/dom.ru/www"
# Le domaine par lequel vous pouvez accéder à l'hôte virtuel.
Nom du serveur dom.ru
# Alias ​​(nom d'extension) du domaine.
ServerAlias ​​​​www.dom.ru
# Fichier où les erreurs seront écrites.
ErrorLog "C: /apache/dom.ru/error.log"
# Fichier journal d'accès à l'hôte.
CustomLog "C: /apache/dom.ru/access.log" commun

Ensuite, dans le répertoire "apache", créez un dossier "dom.ru", dans lequel, à son tour, créez un dossier "www".
La prochaine étape de la création d'un hôte virtuel consiste à modifier le fichier C:\WINDOWS\system32\drivers\etc\hosts système opérateur... S'ouvrir ce fichier et ajoutez-y deux lignes :
127.0.0.1 dom.ru
127.0.0.1 www.dom.ru
Redémarrez maintenant le serveur Apache, ouvrez votre navigateur, entrez « dom.ru » ou « www.dom.ru » dans la barre d'adresse et vous vous retrouverez dans votre hôte virtuel. Attention, vous pouvez désormais accéder au site d'origine avec le nom de l'hôte virtuel ("www.dom.ru", s'il existe), uniquement en commentant ou en supprimant la ligne : "127.0.0.1 www.dom. ru", dans le fichier ci-dessus " hosts ".
documentation Apache, à serveur en cours d'exécution, disponible sur http://localhost/manual/
L'installation et la configuration du serveur Web Apache sont maintenant terminées.

gastroguru 2017