Ubuntu Apache: httpd.conf ou apache2.conf?

43

Lequel de ces deux fichiers devrais-je utiliser pour configurer Apache?

Le httpd.confest vide, alors que apache2.confnon.

Ça me perturbe!

ajsie
la source

Réponses:

46

Le fichier httpd.conf est conçu pour les configurations utilisateur. Vous ne devriez vraiment pas modifier le fichier apache2.conf car il pourrait être mis à jour lors de futures mises à niveau.

Une option supplémentaire consiste à simplement placer votre configuration personnalisée dans /etc/apache2/conf.d; tous les fichiers de ce répertoire sont également inclus.

Rob Di Marco
la source
5
Je n'ai pas de fichier appelé apapche2.conf
Doug Molineux le
18

Ce ne sont pas vos seules options. Sur Ubuntu / Debian, Apache traite également tous les fichiers /etc/apache2/sites-enabled/(qui doivent être des liens symboliques vers les fichiers dans le sites-available/répertoire, gérés par les a2ensiteet a2dissiteprogrammes)

Vous êtes censé utiliser ces répertoires pour VirtualHosts.

Powerlord
la source
1
c'est la bonne réponse! et aussi les ports / mods disponibles des fichiers de configuration si vous souhaitez développer votre réponse
Sudhi
5

apache2.conf inclut httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf

Je pense que httpd.conf est obsolète, mais il est laissé pour les conservateurs afin qu'ils trouvent leur chemin ... :)

MODIFIER:

Après avoir lu la réponse de Rob, j'ai fait un meilleur grep:

a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf 
# Include all the user configurations:
Include /etc/apache2/httpd.conf

Les configurations utilisateur c'est ...

Alexander T
la source
6
+1 "httpd.conf est obsolète"
feeela
1

Apache Software Foundation publie de nombreux logiciels, dont l’un est un serveur Web nommé httpd. Les sources de projet httpd incluent notamment un httpd.confexemple de fichier de configuration, installé par défaut dans /usr/local/etc/httpdou /etc/httpd. Vous trouverez httpd nommé comme tel sur la plupart des systèmes.

Cependant, il y a longtemps et loin, quelqu'un dans la distribution Debian GNU / Linux a décidé de changer le nom du logiciel dans cette distribution de httpdla apache2. Ainsi, sur un système Debian, vous trouverez un fichier de configuration nommé apache2.confdans un répertoire nommé /etc/apache2. Je ne sais pas qui a fait cela ni pourquoi, mais c'est une source perpétuelle de confusion, comparable à l'appel de Windows "Microsoft" ou d'ESXi "VMware". Les distributions basées sur Debian, telles que Ubuntu, héritent de cette étrangeté. Plus étrange encore, ils comprennent alors un fichier /etc/apache2/httpd.confqui est Included à partir apache2.confdans laquelle les utilisateurs peuvent placer une configuration personnalisée.

La réponse est donc: si vous utilisez un système basé sur Debian, vous vous laissez aller à faire ce que Debian souhaite que vous fassiez. Sinon, vous faites généralement les choses normalement, comme le fait le projet httpd en amont.

Michael Hampton
la source
1

Apache 2.4

Utilisez-vous:

Placez toutes les configurations personnalisées dans /etc/apache2/conf-available/{name}.conf

Activer / désactiver votre configuration avec sudo a2enconf {name}ou sudo a2disconf {name}.

(Ensuite, redémarrez le service apache2.)

Ne pas utiliser:

httpd.conf est obsolète et vous ne devriez PAS le voir plus - si vous le voyez, laissez-le vide tel qu'installé.

apache2.conf est toujours installé, mais laissez-le tranquille si vous souhaitez mettre à niveau Apache proprement / facilement.

-

Tout ce que vous pourriez voir dans une configuration Apache «globale» peut être ajouté / remplacé dans votre configuration personnalisée, comme indiqué ci-dessus.

Plus: https://stackoverflow.com/a/11687212/503621

bshea
la source
0

Si apache2.confn'est pas vide et httpd.confs'il est vide, vous devriez probablement utiliser apache2.conf;-)

Mais je suppose que l’un inclut l’autre (et que l’un d’entre eux est conservé uniquement pour des raisons de compatibilité ascendante) - alors, cela ne devrait pas beaucoup changer.


Néanmoins, si vous voulez ajouter quelque chose, comme un nouveau VirtualHost: n’y at-il pas un autre sous-répertoire dans lequel vous pourriez mettre votre fichier et l’inclure?

Ce serait probablement une meilleure solution: vous ne modifieriez pas le fichier par défaut, ce qui simplifierait les mises à jour.

Pascal MARTIN
la source
Comme mentionné par Pascal, si vous souhaitez ajouter un nouveau VirtualHost, vous devez ajouter un nouveau fichier sous sites-available, puis le définir comme lien symbolique dans sites-enabled avec la commande a2ensite - help.ubuntu.com/6.06/ubuntu/serverguide/. C / httpd.html
ccheneson
0

ouvrez simplement apache2.conf et regardez le contenu:

Include /etc/apache2/mod-enabled/*.conf
Include /etc/apache2/httpd.conf

Donc, si vous souhaitez inclure votre propre configuration, ajoutez-la à httpd.conf et apache2.conf l'obtiendra automatiquement.

Comme d'autres personnes le disent, apache2.conf peut être généré automatiquement et il est préférable de ne pas le toucher.

Pour plus d'informations, Ubuntu utilise généralement apache2.conf et Centos utilise httpd.conf. Donc, tous ces fichiers dépendent de votre système d'exploitation.

kazi Tanvir Ahsan
la source
-2

Pour trouver le nom et l'emplacement du fichier de configuration, vous devez:

1) La recherche en tant que processus s'appelle, dans le cas présent avec l'utilisateur apache:

ps -ef | grep apache

(dans cet exemple, retourne: httpd)

2) Affiche les variables utilisées par le binaire:

httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'

Extrait et captures d'écran sur: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html

Ray Tatooine
la source
Bonjour, Il me semble que vous avez répondu à une question à laquelle vous avez déjà répondu, à laquelle il a été répondu il y a des années. De plus, votre solution n’aide pas le questionneur initial à résoudre le problème, fichier de configuration recommandé.
M. Glatki