Webserver beállítása VirtualBox-ban

Mivel már nem először kell beállítanom a webszervert VirtualBoxban, úgy, hogy a host rendszer is elérje, leírom a lépéseket, hogy a későbbiekben egyben meglegyen. Alapvetően Windows 8 operációst használok (adták a géppel), viszont nem tetszenek a Windows-ra elérhető webszerver alkalmazások. Egyébként is tervbe van véve egy itthoni szerver, mely valószínűleg Ubuntu, vagy Debian alapú lesz. Sokáig használtam Ubuntu-t desktop rendszerként is, ezt valamelyest ismerem, ezért választottam ezt. Nem biztos, hogy a legjobb megoldás VirtualBoxban futtatni webszervert, de nekem bevált. Igazából csak az első lépés specifikus a VirtualBox miatt, a többi simán az Ubuntu webfejlesztő környezet beállítása. A cél egy Ubuntu szerver telepítése, megosztott mappával, fix IP címmel, több, párhuzamosan futó projekthez kapcsolódó oldallal.

1. Megosztott mappák beállítása

Én a host rendszeren szerkesztem a fileokat, ezért szükségem van megosztott mappákra, így telepítés után fel kell tenni a Guest Additions-t. Ehhez szükség lehet a gcc, a dkms telepítésére (máshol még megemlítik a build-essential, a linux-headers-generic és a linux-headers-$(uname -r) csomagokat is, utóbbi változóinak nem néztem utána még).

$ sudo apt-get install -y gcc dkms
$ sudo apt-get install -y build-essential linux-headers-generic
$ sudo apt-get install -y linux-headers-$(uname -r)

Ha minden csomag fent van a Guest Additions iso-ját mountoljuk fel, majd futtassuk rootként a VBoxLinuxAdditions.run filet. Nekem az autorun.sh még soha nem működött.

$ cd /media/cdrom
$ sudo ./VBoxLinuxAdditions.run

Most már elérhető a megosztott mappa az Ubuntu szerverről is.

$ sudo mount -t vboxsf mappaneve eleresiut

Például:

$ sudo mount -t vboxsf munka /media/munka

Praktikus a csatolást az Ubuntu server indulásakor megtenni, ezért a /etc/fstab fileba vegyük fel a következő sort (persze a /media/munka könyvtár előtte létrehozva és a felhasználómnak mindenre van joga benne, igaz, ezt nem használom).

munka /media/munka vboxsf rw,gid=100,uid=1000,auto 0 0

A fenti sor nem szükséges, ha a VirtualBox-ban a megosztott mappáknál beállítjuk az Automata csatolást, ebben az esetben a /media/sf_munka könyvtárba találjuk meg a fileokat.

Tipp: A munka mappa nekem dropbox-ra szinkronizál, így mindig van egy plusz mentésem is. Ha még nincs dropbox accountod ezen a linken regisztrálhatsz, ez plusz tárhelyet jelent nekem is 😉 . Innentől az Ubuntu szerver beállításai megegyeznek azokkal, amiket egy desktop Ubuntun is célszerű megtenni, ha fejlesztek.

2. Szükséges csomagok telepítése

Értelemszerűen kell az apache2, a php5 és a mysql. Én felszoktam tenni a phpmyadmint is. Valamiért gondot okozott a phpmyadmin csomag, nem látta a böngésző a felületet. A /etc/apache2/apache2.conffileba kellett beilleszteni a következő sort:

Include /etc/phpmyadmin/apache.conf

majd újra indítani az apache webszervert.

3. Fix, statikus IP cím beállítása

Ahhoz, hogy a gazda operációs rendszeren a böngészőbe címeket tudjunk használni az Ubuntu server mindig aktuális IP címe helyet be kell állítani, hogy fix IP címet kapjon a server. Ez praktikus akkor is, ha nem VirtualBoxba telepítettük az Ubuntut, hanem ez az elsődleges rendszerünk, de több projekten dolgozunk párhuzamosan. Szerkeszteni kell a /etc/network/interfaces filet:

iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8 8.8.4.4

Majd újraindítjuk a hálózatot:

$ sudo /etc/init.d/networking restart

Most már a 192.168.0.100 IP címen érjük el az Ubuntu servert. Ahhoz, hogy a gazda OS (jelen esetben a Windows) lássa a vendég OS-t (jelen esetben az Ubuntu szerver) VirtualBoxban a hálózati kártyát tegyük Bridge-elt módba.

4. Végső beállítások

Ahhoz, hogy ki is tudjuk használni az operációs rendszerünkön szerkeszteni kell a hosts filet. Ez linuxon a /etc/hosts, Windows 8-on a C:\Windows\System32\Drivers\etc\hosts útvonalon található. A hosts fileba vegyük fel az IP címünket és azt a domain nevet, amit használni szeretnénk. Én a .local végződést használom az itthoni gépen lévő oldalakhoz. Példa:

192.168.0.100 garrotter.local

Majd az Ubuntu szerveren állítsuk be a könyvtárakat. Minden projekthez létre hozunk egy külön filet, mely tartalmazza a weboldal elérési útvonalát. Ezt a filet elmentjük a /etc/apache2/sites-availablekönyvtárba a projekt nevével. Például a file neve: garrotter. Tartalma:

<VirtualHost *:80>
	ServerName garrotter.local
	DocumentRoot /media/munka/garrotter
	ErrorLog /media/munka/garrotter/log/error.log
	CustomLog /media/munka/garrotter/log/access.log combined
	<Directory /media/munka/garrotter>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>
</VirtualHost>

Megjegyzés: a log könyvtárat létre kell hozni! Majd engedélyezni a domaint:

$ sudo a2ensite garrotter

És az apache webszervert újra tölteni:

$ sudo /etc/init.d/apache2 reload

A .htaccess fileok engedélyezése

$ sudo a2enmod rewrite

Majd újra kell indítani a webszervert:

$ sudo /etc/init.d/apache2 restart

Ha nem akarunk feltenni phpmyadmint, akkor az adatbázisokat kezelhetjük parancssorból is:

$ mysql -u root -p
create database garrotter;