htibi.ro by: Heim Tibor

Virtualhostok

Akkor lássuk a virtualhostokat!

Kezdjük azzal, hogy létrehozzuk a leendő virtualhostoknak szánt mappákat a saját kis szemétdombunkon. Ezek a következők lesznek (mind a /home/felhasználó/ mappába kerül, nem kell sudo, sem semmi hasonló):

Egy éles webszerveren „public_html” a gyökérmappa neve. Nekem már volt gondom abból, hogy a működő weblap tárhelyére is be voltam jelentkezve FTP-n és szépen összekutyultam a dolgokat a megegyező mappák miatt (na jó, a figyelmetlenség is komoly szerepet játszott :-)). Azóta meghagyom a public_html nevet az éles webszervereknek, nekem jó valami más is a localhoston.

Viszont a továbbiakban már rendszergazdaként kell folytatnunk, vagyis terminálba: gksu caja

A megnyíló fájlkezelőben megnyitjuk a következő mappát: /etc/apache2/sites-enabled/.

Van egy „000-default.conf” nevű szimlink itt (a /etc/apache2/sites-available/ mappában lévő, hasonló nevű fájlra mutat), ezt ki kell kapcsoljuk, mert a későbbiekben nem lesz rá szükség.

Elég sokáig kutattam, de nem találtam se jó, se rossz ablakos alternatívát az Apache-nak szánt utasításokhoz. (Ha valaki ismer egy grafikus megoldást a lentebbiekre, az írja meg.) Tehát nyitunk egy újabb terminált (és ezt megtartjuk a további, Apache-ot érintő parancsoknak), majd beírjuk a következő parancsot:

sudo a2dissite 000-default

Ha most ismét megnézzük a fájlkezelőben, már üres lesz a /sites-enabled mappa. Elnavigálunk a /sites-available/ mappába, majd itt létrehozunk egy új fájlt „localhost.conf” névvel, majd megnyitjuk szerkesztésre.

A tartalma a következő (természetesen mindenki a saját felhasználónevét és mappanevét helyettesíti be, ahol kell):

<VirtualHost *:80>
ServerName localhost
ServerAdmin nemszukseges@megadni.ro
DocumentRoot /home/heimtibor/www/
AddDefaultCharset UTF-8
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddType application/x-httpd-php .php
ErrorLog /home/heimtibor/szerver_log/localhost.error_log
CustomLog /home/heimtibor/szerver_log/localhost.access_log combined

### Itt egy közös rész következik, minden hostnál kell ###
HostnameLookups Off
UseCanonicalName Off
ServerSignature Off

ErrorDocument 500 "Szerver hiba!"
ErrorDocument 403 "Nincs jogosultságod!"
### Eddig a közös rész ###

ScriptAlias /cgi-bin/ "/home/heimtibor/www/cgi-bin/"
<Directory "/home/heimtibor/www/cgi-bin">
        AllowOverride None
        Options +ExecCGI -Includes
        Require all granted
</Directory>
<Directory "/home/heimtibor/www/">
        Options FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
</Directory>
</VirtualHost>

Nagyon lényeges, hogy pontosak legyünk, mert egy apró elírás (bárhol) is végzetes lehet a működés szempontjából!

Mentjük, bezárjuk. Ellenőrizzük, illetve bekapcsoljuk az új localhost.conf-ot, a terminálba beírjuk:

sudo apache2ctl configtest

sudo a2ensite localhost

sudo service apache2 reload

Az első parancsra kommentálhat (de nem feltétlenül) a domainnév hiánya miatt, ez figyelmen kívül hagyható, viszont lényeges, hogy „Syntax OK” legyen a válasza végén. Ha elhibáztunk valamit az előbbi fájlszerkesztéskor, akkor e helyett hibaüzenete(ke)t kapunk. Ha „OK”, akkor jöhet a második utasítás, majd a harmadik.

Hagyjuk pihenni a rendszergazdit, egy sima fájlkezelőben megnyitjuk a /www/ mappát és létrehozunk egy „index.html” fájlt benne (egyelőre üresen :-)). Ha eddig mindent jól csináltunk, akkor a böngészőben a localhostra egy üres lapot kell kapjunk (az index.html létrehozása előtt pedig azt, hogy „Nincs jogosultságod!”).

A folytatásban létrehozzuk a virtualhostokat, amelyeket majd használunk a fejlesztés során. Minden „honlaphoz” külön-külön egyet. Jelen esetben ez az „egyiklap” és a „masiklap”. A böngészőben egyiklap.ht és masiklap.ht lesz a nevük. Egoista vagyok így nálam „.ht” a vége minden virtualhostnak. Az mindenképpen rossz ötlet, hogy a valós, regisztrált domainnévvel megegyező formát használjuk. Tehát, ha van egy „egyiklap.hu” regisztrált nevünk, localhoston a fejlesztéshez ne használjuk ugyanezt a formát, sőt semmi olyan végződést, ami valóban létezik a neten. Használhatunk bármit ezek helyett, például: „.sajat”, „.home”, „.ht” (:-D), stb.

Akkor most ismét rendszer-garázdálkodunk. A /sites-available/ mappában, a localhost.conf mellé létrehozunk egy újabb fájlt „egyiklap.conf” néven, megnyitjuk szerkesztésre és a következőt írjuk bele:

<VirtualHost *:80>
ServerName egyiklap.ht
ServerAlias egyiklap
ServerAdmin nemszukseges@megadni.ro
DocumentRoot /home/heimtibor/www/egyiklap/
AddDefaultCharset UTF-8
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddType application/x-httpd-php .php
ErrorLog /home/heimtibor/szerver_log/egyiklap.error_log
CustomLog /home/heimtibor/szerver_log/egyiklap.access_log combined

### Itt egy közös rész következik, minden hostnál kell ###
HostnameLookups Off
UseCanonicalName Off
ServerSignature Off

ErrorDocument 500 "Szerver hiba!"
ErrorDocument 403 "Nincs jogosultságod!"
### Eddig a közös rész ###

ScriptAlias /cgi-bin/ "/home/heimtibor/www/egyiklap/cgi-bin/"
<Directory "/home/heimtibor/www/egyiklap/cgi-bin">
        AllowOverride None
        Options +ExecCGI -Includes
        Require all granted
</Directory>
<Directory "/home/heimtibor/www/egyiklap/">
        Options FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
</Directory>
</VirtualHost>

Mentjük, bezárjuk. Ezt a mintát követve létrehozzuk a masiklap.conf fájlt is, a szükséges módosításokkal benne.

Most bekapcsoljuk őket:

sudo apache2ctl configtest

sudo a2ensite egyiklap

sudo a2ensite masiklap

sudo service apache2 reload

Be kell állítsuk a helyi domainneveket a /etc/host fájlban. A tartalma:

127.0.0.1	localhost
127.0.1.1	heim-www
127.0.2.1	egyiklap.ht		egyiklap
127.0.2.2	masiklap.ht		masiklap

# 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

A vastagon szedett két sor az új benne, a többi eredetileg is benne volt.

Még egy beállítás van, amit érdemes megtenni, mert most már szinte elvárás a szép url használata a weblapokon és ehhez (meg egyéb „finomságokhoz”) az Apache rewrite moduljára is szükségünk van (a .htaccess fájl működéséhez), ami alapból nincs bekapcsolva. Bekapcsoljuk tehát ezt is:

sudo a2enmod rewrite

Újraindítjuk az Apache-ot (sudo service apache2 reload).

Ezen a ponton gyakorlatilag végeztünk a rendszerbeli garázdálkodással, bezárhatjuk az ehhez használt terminált és fájlkezelőt.

Most már kellene valami tartalom is azokba a mappákba. Kicsit korábban létrehoztunk egy üres, index.html nevű fájlt a /www/ mappába. Most megnyitjuk ezt a fájlt szerkesztésre és a következőt írjuk bele:

<!DOCTYPE html>
<head>
    <title>VirtualHostok</title>
    <meta charset=”UTF-8”>
</head>
<body>
    <ul>
        <li><a href="http://egyiklap.ht">egyiklap</a></li>
        <li><a href="http://masiklap.ht">masiklap</a></li>
        <li><a href="http://localhost/phpmyadmin/">PhpMyAdmin</a></li>
    </ul>
</body>
</html>

Így már könnyedén elérjük mindegyik „weblapunkat” a locahostról.

Ezzel végeztünk is. Később, ha egy újabb hostot szeretnénk beállítani, akkor a megfelelő lépéseket ismételjük az egyiklap.conf létrehozásától kezdődően.

Az mappák (/www/egyiklap, /www/masiklap) tartalommal való feltöltése már mindenkinek a saját házi feladata.

> | < © Heim Tibor > | < Az oldal elkészült 0.0263 másodperc alatt. > | < Valid HTML5 > | < Valid CSS > | <