Gép a gépben
Építsünk fejlesztői gépet VirtualBox segítségével.
Épp a sorozatos oldal második verziójának fejlesztésébe készülök komolyabban belevágni. Ennek kapcsán eszembe jutott, hogy milyen jó bejegyzést lehetne ebből kanyarítani. Mármint abból, hogy milyen módjai vannak a kényelmes otthoni projekt fejlesztésnek.
Összepiszkíthatnánk például a jelenlegi operációs rendszerünket mindenféle web- és egyéb szerverekkel, de ez nem egy szép megoldás. Telepíthetnénk egy extra operációs rendszert egy külön partícióra, de az, hogy a jelenlegiből ki kell lépni, oda pedig be... esélytelenné teszi a fejlesztést egy kellően lusta ember számára (én :)). A legjobb lenne egy külön gép, amit hálózaton keresztül elérünk. Ennek a legköltséghatékonyabb változata a virtuális gép, így ezen a vonalon fogunk tovább haladni. Hozzávalók egy személyre:
- VirtualBox
- Ubuntu Server
- némi sör és pár napra elegendő hideg élelem
Pro tipp: az Ubuntu szerver iso-ját ne a VirtualBox telepítése közben töltsük le, mert a VirtualBox telepítés közben hajlamos időlegesen megkavarni az internet kapcsolatot és jól meg fog szakadni a letöltés.
Telepítés
A letöltések és a szokásos next-next-finish telepítés befejeztével hozzáadhatunk egy új Linux / Ubuntu típusú virtuális gépet és egy új virtuális merevlemezt a varázsló segítségével. Még mielőtt elindítanánk, a Settings / Shared Folders részben érdemes hozzáadni egy könyvtárat a saját gépünkről, amiben a projekteket fogjuk tárolni, hogy ne kelljen később Samba-t telepíteni. Az Auto-mount részt ne pipáljuk be, azt később kézzel beállítjuk majd. A Settings / Network részbe se árthat benézni és az Adapter 1-et ízlés szerint megpiszkálgatni. Nálam a Bridged Adapter volt a nyerő az Attached to részben. A VirtualBox elég okos és az első indításnál felajánlja, hogy etessünk meg a géppel egy CD-t. Ajánlatos itt beadagolni a korábban letöltött Ubuntu szerver iso-ját, mert az nagyban megkönnyíti a telepítést. :)
Az Ubuntu nem egy bonyolult jószág, így valószínűleg a telepítéssel se lesznek problémák. Amíg fut, tetszés szerint lehet fogyasztani a bespájzolt hideg élelmet illetve sört. Hogy, hogy nem előbb-utóbb eljutunk egy ilyen képernyőhöz:
Itt a LAMP server-t az Apache-PHP-MySQL szentháromság miatt erősen ajánlott bepipálni, mert valószínűleg szükségünk lesz rá. Én telepíteni szoktam OpenSSH server-t is, mert már annyira hozzászoktam a PuTTY használatához. :)
Ha ezzel megvagyunk, az első belépés után rögtön érdemes is nyomni egy frissítést:
sudo apt-get update
sudo apt-get upgrade
Valamint telepíteni a VirtualBox Guest csomagját a jobb támogatás érdekében:
sudo apt-get install virtualbox-guest-utils
A projekt könyvtárak beállítása
A fejlesztés a /var/www/
könyvtárban fog történni a virtuális gép nézőpontjából. Hogy kényelmes legyen, érdemes ezt kivezetni valahova a gazda gép merevlemezére. Ezért állítottuk be korábban a Shared Folders részt. A művelet elvégzéséhez a következő sorokat kell felvenni az /etc/fstab
fájl végére (na jó, a komment nem kötelező :)):
# VirtualBox Shared Folder
projects /var/www vboxsf auto,rw,uid=1000,gid=33 0 0
A projects
helyére a Shared Folder felvitelénél megadott nevet kell írni. Az uid=1000
a rendszer telepítése során létrehozott felhasználó, a gid=33
a www-data
csoport. A módszernek az az előnye is megvan a Samba-féle megoldással szemben, hogy nem kell futnia a virtuális gépnek ahhoz, hogy a fájlokat módosítani tudjuk. Az uid és gid értékeként megadható számok után az /etc/passwd
és /etc/group
fájlokban lehet érdeklődni.
Szerver elérés
Ha minden jól ment, az ifconfig eth0
által kidobott ip címen el tudjuk érni a gépet. Ha nem, akkor a VirtualBox beállítások Network részénél érdemes a lehetőségeket végigpróbálgatni, hogy melyik jön be (ahány hálózat, annyi beállítás).
Az egyszerűséget szem előtt tartva érdemes valami egyedi, egyébként nem létező domain-el felruházni a gépet, hogy ne ip címeket kelljen mindig írogatni. Nálam a *.vbox
domain-ek vannak erre fenntartva. A legegyszerűbb, ha a hosts fájlba felvesszük őket (Windows: c:\Windows\System32\drivers\etc\hosts
, Linux: /etc/hosts
), pl.:
192.168.1.117 default.vbox
192.168.1.117 projektneve.vbox
192.168.1.117 subdomain.projektneve.vbox
Apache, PHP, MySQL beállítás
Az egyes projektek a /var/www/projektneve.vbox/
könyvtárban kapnak helyet. Az alap Apache confignak csinálunk egy default.vbox
nevet/könyvtárat:
mkdir /var/www/default.vbox
sudo mcedit /etc/apache2/sites-available/default
A megnyíló fájlban a DocmentRoot
és a Directory
résznél szereplő /var/www/
után kell még egy default.vbox/
-ot írni. Aztán pedig
sudo service apache2 reload
A /etc/apache2/httpd.conf
-ba esetleg még érdemes egy ServerName default.vbox
sort beledobni és újraindítani az Apache-ot, hogy megszűnjön a "Could not reliably determine the server's fully qualified domain name" hibaüzenet.
A projekt VirtualHost beállításai a /etc/apache2/sites-available/projektneve.conf
fájlba kerülnek. Egy egyszerű példa, hogy nagyjából mit is tartalmaz egy ilyen:
<VirtualHost *:80>
ServerName projektneve.vbox
ServerAlias www.projektneve.vbox
DocumentRoot /var/www/projektneve.vbox/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/projektneve.vbox/www/>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/www/projektneve.vbox/log/apache_www_error.log
CustomLog /var/www/projektneve.vbox/log/apache_www_access.log combined
LogLevel warn
</VirtualHost>
A kész site beállításokat a következő parancsokkal tudjuk engedélyezni:
sudo a2ensite projektneve.conf
sudo service apache2 reload
A MySQL-en nincs sok beállítani való, telepítéskor elkérte a root felhasználójához az új jelszót, mást meg nem nagyon kell piszkálni. A vizuálisabb típusoknak esetleg egy phpmyadmin telepítése még nem árthat:
sudo apt-get install phpmyadmin
Ha kértük, a csomagból telepítés során be is köti magát az Apache-ba a /etc/apache2/conf.d/phpmyadmin.conf
segítségével és a http://ipcím/phpmyadmin/
címen el is érhető az oldal. Ehelyett, ha kedvünk tartja létrehozhatunk neki egy saját VirtualHost-ot is akár.
A PHP beállításánál érdemes arra törekedni, hogy minél jobban hasonlítson az éles rendszerre, így ezzel kapcsolatban nem sokat tudok mondani.
Első körben ennyi, kellemes telepítgetést. :)