apache2 nem kezel le egy vhostot, de hibát nem jelez

 ( sipiatti | 2013. augusztus 23., péntek - 10:00 )

Sziasztok, egy fura problémával szembesültem, és nem találok rá megoldást.
Egy barátomnak van pár domainje, és most bérelt egy vps-t, hogy egy helyen
és saját kézben legyen minden, én konfigolom neki a rendszert.
Ubuntu 12.04 szerver a rendszer.
Öt domainhez kézzel csinálom a konfigokat, megcsináltam a vhostokat stb
Még nincsenek ráirányítva a domainnevek, így itthonról a hosts fájlba
beírtam a domaineket, hogy tesztelni tudjam.
Az egyik domain esetében viszont nem szolgáltatja az apache a megadott
könyvtárat, helyette a /var/www-t adja ki. Végignéztem a konfigokat,
sőt alapból egyikből a másikba másolva hoztam őket létre a megfelelő
dolgokat átírva, de akármit csinálok ez a jelenség.
A problémás domain tartalmát átraktam egy másik alá, azon a néven lehozza.
A logokban semmi utalás vagy hiba. Már debugra raktam a loglevelt, látszik, hogy
a kérés a problémás domainhoz megy, de mégis a /var/www-t szolgáltatja.

Mi lehet a probléma? Merre induljak tovább?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Első körben ezeket nézd meg, kimeneteket vizsgáld meg:


apache2 -D DUMP_VHOSTS
apache2ctl configtest
diff jovhostfile rosszvhostfile

Illetve lesd meg, hogy default vhostként mit adtál meg, gondolom ott a /var/www van. Ha az, akkor mindenképpen valami konfolási hiba lesz és ezért dobja oda.

köszi ez hasznos.
nos, kivettem minden vhostot a defaulton kívül.
erre ezt hozza
root@server1:/etc/apache2/sites-enabled# apache2ctl -S
apache2: Could not reliably determine the server's fully qualified domain name, using server1.csysc.eu for ServerName
VirtualHost configuration:
178.238.227.92:80 is a NameVirtualHost
default server osawa.hu (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost osawa.hu (/etc/apache2/sites-enabled/000-default:1)
Syntax OK

A gond csak az, hogy az osawa.hu a kérdéses vhost, és a default fájlban egy betű sem szól róla,
a gép neve server1.csysc.eu. Honnan veszi ezt vajon magára?

default vhost fájl:

root@server1:/etc/apache2/sites-enabled# cat 000-default
<VirtualHost 178.238.227.92:80>

ServerAdmin

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 ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug

CustomLog ${APACHE_LOG_DIR}/access.log vhost_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>

---
Why use Windows, if you have open doors… to Linux

ARRRGGH!
Megtaláltam...
Felvettem a hosts fájlba ezeket a domaineket az ip-hez, amíg nincsenek ideirányítva a domainek,
onnan szedte az apache.
Fél délelőtt ment csak rá :D
---
Why use Windows, if you have open doors… to Linux

És akkor most már örülés van, vagy jelentkezik még egyéb probléma?

Nem tudom, mennyire konstruktív, amit most leírok, de az apache a sites-enabled könyvtár alól az ABC rend szerinti legelső vhost-ot fogja default-nak tekinteni. Ezért mi egy "0_" prefix-et szoktunk adni annak a vhostnak, amit defaultnak akarunk használni, hogy ne legyen ebből kavarodás.

Az is lehet a háttérben, hogy a lehívott domain nincs hozzárendelve semelyik vhost-hoz sem, vagyis sem ServerName, sem ServerAlias nem hivatkozik rá a megfelelő VirtualHost blokkban. Ezt is érdemes ellenőrizni, illetve - tudom, triviális - de azt is nézd meg, hogy a domain-hez tartozó vhost konfig be van-e symlinkelve a sites-available könyvtárból a sites-enabled-be.

Ha látszólag minden rendben, teszteld le a konfigot egy "apache2ctl configtest" paranccsal. Ha ez nem jelez hibát, apache reload után nézd meg, hogy van-e változás.