2014-05-21 33 views
5

Ho Apache 2.4.7 installato sulla mia macchina Ubuntu 14.04, e alcuni dei miei VirtualHosts non sono d'accordo con me. Ho 5 host virtuali che sto tentando di eseguire; 3 di loro funzionano, 2 no. I file .conf per i due che non funzionano sono:Ubuntu 14.04: Apache 2.4.7 virtualhost non funzionante/riorientare

002-tmpnet.conf

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html/tmpnet 
    ServerName tmpnet 
    <Directory /> 
     Options FollowSymLinks 
     AllowOverride All 
    </Directory> 
    <Directory /var/www/html/tmpnet/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     #Order allow,deny 
     #allow from all 
     Require all granted 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

003-tmpcom.conf

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html/tmpcom 
    ServerName tmpcom 
    <Directory /> 
     Options FollowSymLinks 
     AllowOverride All 
    </Directory> 
    <Directory /var/www/html/tmpcom> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     #Order allow,deny 
     #allow from all 
     Require all granted 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

Entrambi questi ritorno

500 Internal server errors 

whe n cercando di visitarli. Se li visito tramite localhost (ad esempio localhost/html/tmpnet) funziona perfettamente, non solo quando si tenta di utilizzare l'host virtuale.

il mio file hosts è:

127.0.0.1 localhost 
127.0.1.1 Eagle 
127.0.1.1 tmpcom 
127.0.1.1 tmpbiz 
127.0.1.1 tmporg 
127.0.1.1 tmpnet 
127.0.1.1 thatsmybrick 

# The following lines are desirable for IPv6 capable hosts 
::1  ip6-localhost ip6-loopback 
fe00::0 ip6-localnet 
ff00::0 ip6-mcastprefix 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 

e la mia apache2.conf è:

Mutex file:${APACHE_LOCK_DIR} default 
PidFile ${APACHE_PID_FILE} 
Timeout 300 
KeepAlive On 
MaxKeepAliveRequests 100 
KeepAliveTimeout 5 

# These need to be set in /etc/apache2/envvars 
User ${APACHE_RUN_USER} 
Group ${APACHE_RUN_GROUP} 

HostnameLookups on 
ErrorLog ${APACHE_LOG_DIR}/error.log 
LogLevel warn 
IncludeOptional mods-enabled/*.load 
IncludeOptional mods-enabled/*.conf 
Include ports.conf 

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
    Require all denied 
</Directory> 

<Directory /usr/share> 
    AllowOverride All 
    Require all granted 
</Directory> 

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

AccessFileName .htaccess 

<FilesMatch "^\.ht"> 
    Require all denied 
</FilesMatch> 

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined 
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %O" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

IncludeOptional conf-enabled/*.conf 

IncludeOptional sites-enabled/*.conf 

Sono stato bloccato su questo per un lungo tempo ormai, e vorrei davvero apprezzare un po 'di aiuto. Qualsiasi puntamento nella giusta direzione sarebbe sorprendente.

Grazie

risposta

1

Stai ancora affrontando il problema?

Forse si guarda al log degli errori situato a /var/log/apache2/error.log. Il log degli errori è auto esplicativo e darà un buon risultato al problema.

L'errore sulla mia macchina ha mostrato questa (ultima parte della dichiarazione di errore)

.htaccess: Comando non valido 'RewriteEngine', forse errata o definito da un modulo non incluso nella configurazione del server

Nel mio caso il modulo riscrittura di Apache non è stato abilitato. Ho abilitato il modulo e voilà le impostazioni dell'host virtuale sono diventate vive.

Inoltre vedo che si sta utilizzando l'istruzione 'AllowOverride All', che indica che si sta tentando di utilizzare il modulo riscrittura. Abilita il modulo 'riscrivi', se non già, utilizzando il comando sudo a2enmod rewrite e riavvia apache2 sudo /etc/init.d/apache2 restart

Vedere se questo aiuta!

7

Questo potrebbe essere un po 'in ritardo, non sono sicuro se hai trovato una soluzione o no, ma questo è quello che ho fatto. Dopo aver passato molte ore a modificare i miei file di configurazione e ad aggiustare il mio vhost, ho deciso di lasciare un altro 2000 ... il sito predefinito e ricaricato l'apache. Una volta fatto questo, il reindirizzamento funzionava come epossessivo. Non so come si evolverà quando avrai più di un sito su un server, se sarà impostato per default sul primo vhost caricato o ... Ho sempre avuto l'impressione che apache avesse un host predefinito, potrei sii sbagliato su questo

+0

Grazie !!! Ho eseguito 'a2dissite 000-default.conf' e aggiunto' .conf' ai miei file esistenti e ha funzionato! – Skovy

4

Ero di fronte a questo problema e ho scoperto che dovevo disabilitare l'host virtuale predefinito.

sudo a2dissite 000-default.conf 
-1

Bene, il punto è questo:

IncludeOptional sites-enabled/*.conf

vuol dire che sarà solo include file host virtuali con .conf alla fine del nome del file.

Rinominarli o modificare la direttiva.

Ciao, Gelma

+0

Non penso che tu abbia letto la domanda. I suoi file ** sono ** chiamati '.conf' e ancora non vengono caricati. – Machavity

0

se si esegue l'aggiornamento da preciso (12.04), allora avete bisogno di aggiungere .conf estensione al tuo host virtuale file di configurazione

per esempio, in precedenza si ha questa configurazione

/etc/apache2/sites-available/project 

allora avete bisogno di aggiungere .conf estensione ad esso,

/etc/apache2/sites-available/project.conf 

e, naturalmente, è necessario creare un nuovo collegamento simbolico nella cartella siti abilitati, cd alla cartella del sito abilitato e

sudo ln -s ../sites-available/project.conf 

riavvio apache e il gioco è fatto.

5

Non solo ho dovuto disattivare il default:

sudo a2dissite 000-default.conf 

ma ho avuto anche ricaricare apache come sudo - senza sudo non stava ricaricando correttamente

sudo service apache2 reload 
+1

SUDO durante la ricarica ha fatto il suo lavoro! grazie :) –

Problemi correlati