web-dev-qa-db-fra.com

Comment modifier httpd.conf pour ajouter un site supplémentaire dans Apache 2.4.6?

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.

2
fish man

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
1
MrWhite