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;