Tutti i virtualhost che servono i file predefiniti di Apache

Sto cercando di configurare Apache come un server web in networking e sto usando la funzionalità abilitata ai siti / siti, in contrasto con i soli file vhost statici. Ho impostato un paio di VirtualHosts, tutti con un DocumentRoot unico, tuttavia la richiesta per tutti i VirtualHosts servire solo il "It's Working!" file predefinito. Non posso per la vita di me capire perché non servirà il contenuto dalla directory corretta. Ecco il contenuto dei file di direttiva virtuale, per far sapere se devo submit di più.

default (nota che apache rinomina questo a 000-default nei siti abilitati, quindi non è un problema di ordinazione)

  • Come mettere in pausa Postgres prima di prendere un'istantanea LVM / ZFS?
  • Come rimuovere tutte le versioni di Couchdb in Ubuntu 10.04 (server)? (dopo più installazioni)
  • Grafico di dipendenza del thread del kernel Linux?
  • Nginx - riscrivere o tornare per il reindirizzamento?
  • Utilizzo della memory del server MOLTO alto sulla nuova ledi dedi box Linux - Come trovare il problema?
  • Come mappare in modo affidabile i dischi vSphere <-> dispositivi Linux
  •  NameVirtualHost *:80 ServerName emp <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName emp DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> 

    billmed

     <VirtualHost *:80> ServerName billmed.emp ServerRoot /home/empression/Projects/billmed/web/httpdocs <Directory "/home/empression/Projects/billmed/web/httpdocs"> Order Allow,Deny Allow from All </Directory> </VirtualHost> 

    Notare che ho zone DNS per emp e billmed.emp , così come le voci in / etc / hosts. Il mio objective finale è quello di impostare questa macchina come un webserver interno con un custom tld (emp), ma i progressi sono stati piuttosto lenti.

    Alcune altre informazioni

    /etc/hosts voci /etc/hosts

     #custom-sites 192.168.1.100 emp 192.168.1.100 billmed.emp 

    ports.conf

     # If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default # This is also true if you have upgraded from before 2.2.9-3 (ie from # Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and # README.Debian.gz #NameVirtualHost *:80 Listen 80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule> 

    ls -l sites-enabled

     empression@empression-server1:/etc/apache2/sites-available$ ls -l ../sites-enabled/ total 0 lrwxrwxrwx 1 root root 26 2010-05-22 12:36 000-default -> ../sites-available/default lrwxrwxrwx 1 root root 26 2010-05-22 13:33 billmed -> ../sites-available/billmed 

    Aggiornamento 2010-06-16

    Non ho potuto lavorare su questo per poche settimane, ma ho provato tutte le soluzioni che sono state presentate finora, e non sono ancora in grado di risolvere il problema, quindi ho aggiunto una bontà.

    Aggiornare

    Ecco l'output di apache2ctl -t -D DUMP_VHOSTS

     empression@empression-server1:~$ apache2ctl -t -D DUMP_VHOSTS apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [Mon Jul 12 14:29:01 2010] [warn] NameVirtualHost 127.0.0.1:80 has no VirtualHosts VirtualHost configuration: 192.168.1.100:80 is a NameVirtualHost default server billmed.emp (/etc/apache2/sites-enabled/billmed:1) port 80 namevhost billmed.emp (/etc/apache2/sites-enabled/billmed:1) Syntax OK 

  • Impedire l'alto scambio: configuration apache per server con sito di traffico elevato
  • Come posso configurare un dominio NameCheap per indicare una sottocartella Apache?
  • Quali sono i migliori modi per confrontare RAM (no-ECC) sotto linux / arm?
  • Dite al kernel linux di mettere un file nella cache del disco?
  • dopo aver abilitato mod ssl apache arresta l'ascolto sulla port 80
  • Come pulire un elenco di inodati orfani non elaborati?
  • 9 Solutions collect form web for “Tutti i virtualhost che servono i file predefiniti di Apache”

    Nel file di definizione host virtuale, correggere la row sottostante.

    ServerRoot /home/empression/Projects/billmed/web/httpdocs a DocumentRoot /home/empression/Projects/billmed/web/httpdocs

    Utilizzare la direttiva DocumentRoot per servire il virtualhost. ecco il link per maggiori informazioni http://httpd.apache.org/docs/2.2/mod/core.html


    Aggiorna la definizione di virtualhost (/ etc / apache2 / sites-enabled / billmed) come segue,

     <VirtualHost *: 80>
      ServerName billmed.emp
      DocumentRoot / home / empression / Progetti / billmed / web / httpdocs
    
      <Directory "/ home / empression / Progetti / billmed / web / httpdocs">
       Ordine Consenti, negare
       Consenti a tutti
      </ Directory>
     </ VirtualHost>
    

    @yasin è corretto; è necessario disporre che i propri VirtualHosts specificino un DocumentRoot ('… la directory da cui httpd servirà i file …') non un ServerRoot ('… la directory in cui il server vive, in genere contiene le sottodirectory conf / e logs / …. ')

    Potrebbe anche essere un altro problema, ma questa parte è decisamente sbagliata.

    Qual è la tua mapping in /etc/hosts o nella configuration DNS? Prova a sostituire * con 127.0.0.1 Intendo <VirtaulHost 127.0.0.1:80> e NameVirtualHost 127.0.0.1:80 . Cosa c'è nel tuo /etc/apache2/ports.conf ? Controllare se sono presenti tutti i collegamenti. ad esempio: /etc/apache2/sites-enabled/<yoursite.emp>

    EDIT:

    Prova questo: In ports.conf :

     NameVirtualHost 127.0.0.1:80 Listen 127.0.0.1:80 NameVirtualHost 192.168.1.100:80 Listen 192.168.1.100:80 

    Quindi in 000-default : <VirtualHost 127.0.0.1:80> In billmed : <VirtualHost 192.168.1.100:80

    Vorrei aggiungere la maschera piuttosto che IP concreto al file host:

     #/etc/hosts/ # custom-sites 127.0.0.1 emp 127.0.0.1 billmed.emp 

    Modificare il ServerRoot in DocumentRoot nel file billmed .

    Aggiunta / Sposta la configuration di vhost billmed in / etc / apache2 / sites-available /.

    Allora abilita il vhost billmed come questo:

     sudo a2ensite billmed 

    Riavviare apache:

     sudo service apache2 restart 

    Modifica: cambiato a2enmod in a2ensite, typo stupido:)

    Poiché sembra che tu abbia provato tutto il resto, assicuratevi di includere la cartella abilitata ai siti dal file di configuration principale apache.

    Inoltre, se si distriggers tutto tranne l'host virtuale fatturato, è ansible get i file server da quella directory?

    Ci sono delle direttive Alias ​​che puntano / a / var / www che si trovano nella configuration globale, anziché essere all'interno di una sezione virtuale?

    Il nomeVirtualHost viene commentato.

    Se state configurando i contenitori per ciascuno e usando ServerName / ServerAlias, dovrai distriggersre il commento, riavviare apache.

    Hai HUP'd apache dopo aver creato il nuovo file di sito, in modo che il demone in esecuzione riesca a leggere la sua configuration?

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.