Comment modifier httpd.conf pour ajouter un site supplémentaire dans Apache 2.4.6? Voici mon httpd.conf:
ServerRoot "/etc/httpd"
Include conf.modules.d/*.conf
Listen 80
User Apache
Group Apache
ServerAdmin root@localhost
ServerName xx.xx.xx.xx:80
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 150
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog logs/error_log
LogLevel crit
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined env=!dontlog
CustomLog "logs/my_log" combined env=!dontlog
#CustomLog "|sbin/rotatelogs -f logs/my_log 60" combined env=!dontlog
SetEnvIf Remote_Addr "::1" dontlog
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
HostnameLookups Off
ProxyPreserveHost On
DocumentRoot /var/www/html
RLimitCPU 120|max
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
<VirtualHost *:80>
HostnameLookups Off
ProxyPreserveHost On
DocumentRoot /var/www/html
RLimitCPU 120|max
ServerName domain1.com
<directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</directory>
</VirtualHost>
ExpiresActive On
<FilesMatch "\.(jpg|jpeg)$">
</FilesMatch>
<FilesMatch "\.(css|png|js|gif)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
<ifmodule deflate_module>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
</ifmodule>
Mon problème est que j'ai déjà un site dans '/ var/www/html' avec domain1.com. Si j'ajoute un autre site domain2.com, crée un nouveau dossier tel que /var/www/new
ou /var/www/html/new
, comment puis-je modifier la partie <VirtualHost *:80>
? Parce que j'ai défini DocumentRoot /var/www/html
. Merci.
Mon problème est que j'ai déjà un site dans '/ var/www/html' avec domain1.com. Si j'ajoute un autre site domain2.com et crée un nouveau dossier tel que/var/www/new ou/var/www/html/new, comment modifier
<VirtualHost *:80>
part? parce que j'ai déifiéDocumentRoot /var/www/html
.
Je ne sais pas vraiment quel est le "problème"? Vous copiez l'intégralité du conteneur <VirtualHost *:80>
pour chaque site à configurer, en modifiant les conteneurs ServerName
, DocumentRoot
et <Directory>
de manière appropriée. La "balise" <VirtualHost *:80>
d'ouverture reste inchangée pour les hôtes virtuels nommés.
Que ServerName
corresponde à Host
dans l'en-tête de la requête HTTP, contrôle quel <VirtualHost>
est utilisé. Ce <VirtualHost>
annule tous les paramètres par défaut (DocumentRoot
etc.) que vous pourriez avoir dans le fichier de configuration principal.
un nouveau dossier comme/var/www/new ou/var/www/html/new
S'il s'agit de sites entièrement séparés, il peut être préférable de les placer dans des arborescences de répertoires distinctes en raison de la façon dont Apache config/.htaccess hérite le long du chemin du système de fichiers. (Bien que cela puisse également être utilisé à votre avantage si vous gérez un cluster de sites. Par exemple, bloquer les bad bots à un endroit, plutôt que pour chaque site séparément.)
Si vous avez plus de deux hôtes virtuels sur votre serveur, il est plus facile (plus modulaire) d’avoir vos hôtes virtuels dans un fichier séparé et de les inclure dans la configuration principale d’Apache, par exemple:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf