2014-05-21 21 views
5

Mam zainstalowany Apache 2.4.7 na moim komputerze Ubuntu 14.04, a niektóre z moich wirtualnych hostów nie zgadzają się ze mną. Mam 5 wirtualnych hostów, które próbuję uruchomić; 3 z nich działają, 2 nie. Pliki .conf dla dwóch, które nie działają to:Ubuntu 14.04: Apache 2.4.7 virtualhost nie działa/przekierowuje

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> 

Oba powrócić

500 Internal server errors 

whe n próbuje je odwiedzić. Jeśli odwiedzę je za pośrednictwem hosta lokalnego (tj. Localhost/html/tmpnet), działa to doskonale, ale nie podczas próby użycia hosta wirtualnego.

złożyć Moi gospodarze jest:

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 

i mój apache2.conf jest:

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 

Zostałem zatrzymany na to przez długi czas, a ja naprawdę doceń trochę pomocy. Każde wskazanie we właściwym kierunku byłoby niesamowite.

Dziękujemy

Odpowiedz

1

Nadal stoisz w obliczu problemu?

Czy spojrzeć na dziennik błędów znajduje się w /var/log/apache2/error.log. Dziennik błędów jest oczywisty i da dobry początek temu problemowi.

Błąd na moim komputerze pokazał to (Dalsza część rachunku błędu)

.htaccess: Nieprawidłowe polecenie „RewriteEngine”, być może błędnie lub zdefiniowany przez moduł nieuwzględnione w konfiguracji serwera

W moim przypadku przepisanie modułu Apache nie zostało włączone. Włączyłem moduł i uruchomiłem ustawienia wirtualnego hosta.

Widzę również, że używasz instrukcji "AllowOverride All", która oznacza, że ​​próbujesz użyć modułu przepiszania. Włącz moduł "przepisz", jeśli jeszcze nie jest, użyj polecenia sudo a2enmod rewrite, a następnie uruchom ponownie apache2 sudo /etc/init.d/apache2 restart

Sprawdź, czy to pomaga!

7

Może to być trochę za późno, nie jestem pewien, czy znalazłeś rozwiązanie, czy nie, ale to właśnie zrobiłem. Po wielu godzinach modyfikacji moich plików konfiguracyjnych i modyfikacji mojego vhosta, zdecydowałem się na a2dissite 000 ... domyślną stronę i ponownie załadowałem apache. Kiedy raz to zrobiłem, przekierowanie działało tak samo jak z epoką. Nie wiem, jak to się rozwinie, jeśli masz więcej niż jedną witrynę na serwerze, jeśli domyślnie będzie to pierwszy załadowany vhost lub ... Zawsze miałem wrażenie, że apache musiał mieć domyślnego hosta, mógłbym bądź w błędzie.

+0

Dziękujemy! Uruchomiłem 'a2dissite 000-default.conf' i dodałem' .conf' do moich istniejących plików i działało! – Skovy

4

Miałem do czynienia z tym problemem i okazało się, że musiałem wyłączyć domyślny host wirtualny.

sudo a2dissite 000-default.conf 
-1

Cóż, punkt jest taki:

IncludeOptional sites-enabled/*.conf

to znaczy, że będzie tylko obejmuje wirtualne pliki gospodarze z .conf na końcu nazwy pliku.

Zmień ich nazwę lub zmień dyrektywę.

Ciao, Gelma

+0

Nie sądzę, że czytasz pytanie. Jego pliki ** mają ** nazwę '.conf' i nadal nie ładują się. – Machavity

0

jeśli uaktualniania precyzyjny (12,04), a następnie trzeba dodać .conf rozszerzenie do wirtualnego hosta pliku konfiguracyjnym

na przykład wcześniej masz ten config

/etc/apache2/sites-available/project 

następnie trzeba dodać .conf rozszerzenie do niego

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

i oczywiście trzeba utworzyć nowy folder Witryny dowiązania-włączony, cd do folderu serwisu obsługą i

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

restart apache i gotowe.

5

Nie tylko muszę wyłączyć domyślnie:

sudo a2dissite 000-default.conf 

ale miałem też przeładować apache jako sudo - bez sudo nie było przeładowania prawidłowo

sudo service apache2 reload 
+1

SUDO podczas przeładowania spełniło swoje zadanie! Dziękuję Ci :) –