Szerverek telepítése

Ismét nekiálltam picit mélyebben foglalkozni a szerverek lelkivilágával. Az utóbbi időben leragadtam az Ubuntu telepítéseknél, de kicsit szélesítenem kell a látókörömet. Mondjuk egy telepítés és alapbeállítás egyik rendszernél sem kihívás, a lényeges dolgokat pedig programokon belül kell beállítani, ami mindenhol ugyanaz.

Az új delikvensek az első körben a Debian, Arch és a Gentoo. Mindegyiknek van arm portja is, ami azért fontos most, mert pár héten belül veszek egy Raspberry Pi 2-t (vagy egy ONDROID-ot 😀 ). Addig marad a VirtualBox-ban való játszadozás.

A Debian installere elég kezes, nem igényel nagy szaktudást, de egy jó tutorial alapján egy arch, vagy gentoo felrakása sem kihívás. Elmúltak azok az idők, amikor értened kellet, hogy mit miért csinálsz, most vagy végig kattintgatod az installert, vagy szorgalmasan másolod a parancsokat egy tutorialból.

nginx webserver

A hétvégi frissítéséknek hála perverzitásom az egekbe szökött és telepítettem egy friss Ubuntu 14.04 szervert, majd arra egy LEMP stacket.

A LAMP ugye azt jelent, hogy Linux Apache MySQL PHP (néhány helyen az M feloldása MySQL helyett MariaDB, míg a P feloldása a PHP helyett Perl, vagy Python), ezzel szemben a LEMP a Linux nginx (engine-x) MySQL PHP.

Az nginx telepítése nem volt nagy kihívás, a php-t és a mysql-t is sikerült könnyen belőni hozzá. A virtual host-ok kezelése is egyszerűen megoldható. Érzésre az oldalak gyorsabban töltődnek be, bár a VirtualBox miatt csodát nem várhatok.

A következő kihívás a nginx webserver BSD alapokon ill. Linux és BSD alapokon a mongoose webserver használata. Kíváncsi vagyok, hogy melyik összetétel a gyorsabb, persze a VirtualBox korlátait figyelembe véve.

Ubuntu frissítés

Oktalan gondolattól vezérelve a hétvégén nekiálltam a VirtualBox-ban lévő Ubuntu 12.04-es szerveremet frissíteni 14.04-re. Hát nem a legegyszerűbb feladat. Maga a frissítés nem okozott problémát, először a 12.04-et kellett a legfrissebb állapotra hozni, majd egy paranccsal megoldható volt a 14.04-re való frissítés. Ami a gond, hogy ezt itthoni webszervernek használom, kényelmesen DropBox szinkronizációval a fileokra is. A 14.04-ben megváltozott az Apache konfigurációja és majdnem egy teljes napba telt, mire újra működésre bírtam. Sajnos elmúltak azok a régi szép idők, amikor simán lehetett verziót ugrani egy linuxon :(.

Webserver beállítása VirtualBox-ban

Mivel már nem először kell beállítanom a webservert 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ő webserver alkalmazások. Egyébként is tervbe van véve egy itthoni szerver, mely valószínűleg Ubuntu 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 webservert, 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 server 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 hoszt 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 futassuk 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 serverrő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 ;).

Innentől az Ubuntu server 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.conf fileba kellett beilleszteni a következő sort:

Include /etc/phpmyadmin/apache.conf

majd újra indítani az apache webservert.

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 server) 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 serveren á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-available kö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 webservert újra tölteni:

$ sudo /etc/init.d/apache2 reload

A .htaccess fileok engedélyezése

$ sudo a2enmod rewrite

Majd újra kell indítani a webservert:

$ 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;

Ubuntu 12.04

Pár hete frissítettem, teljes újra telepítést csináltam, az új Ubuntu-ra. Csalódtam, bár igazából nem, mert már az elvárásom is az volt, hogy számomra rosszabb lesz, mint az előző verzió, ami így is lett.

Nekem alapvetően nincs gondom a unity felülettel, egészen használhatónak tartom (bár még mindig a legjobb a régi netbook edition számomra). Az új kiadásban sokat javult használhatóság és sebesség szempontjából is, de nálam még így is lassú. (A Gnome 2 felülettel nem voltak ilyen gondjaim.)

Igazából az egész rendszer lassúnak tűnik. A beépített szoftver center jó megoldás a kezdőknek, de szintén lassan reagál, a Synaptic sokkal gyorsabb (pedig a Synaptic sem a gyorsaságáról volt híres már régebben sem). Nem jó, ha egy program telepítésénél a leghosszabb idő a telepítő indulása.

Lehet, hogy a gépem (Acer Aspire One netbook 2 GB RAM) miatt érzek mindent lassúnak, bár a 10.10-es Ubuntu-val azért nem voltak ilyen gondjaim.

A lassúság mellett a beállítások nehézkessége, lehetetlensége, mai még gond nálam. Nem szoktam sok mindent átállítani, de már a 11.10 esetében is külön hack volt, hogy a bluetooth ne induljon el minden indításkor, képtelen volt megjegyezni a kikapcsolt állapotot. A 12.04-ben párszor nem indul el (örülök), majd egyszer csak igen, WTF?.
A külső egeret, hol felismeri, hol nem, az adapter kihúzása és visszadugása megoldja. A külső billentyűzettel szintén ez a helyzet, hol elindul, hol nem. Sőt többször volt olyan is, hogy a külső billentyűzet angol nyelvű kiosztást kapott, míg a netbook sajátja magyar nyelvűt, WTF?. Ezek a gondok 11.10 esetében még nem jelentkeztek, ezt eléggé visszafejlődésnek érzem.

Jelenleg többször indítotok windowst, mint linuxot, pedig majd 6 évig szinte csak és kizárólag linuxot használtam, csak a telefonok frissítésére kellet windows. Ez most megváltozott, nagyobb szabadságot érzek windows alatt. Például a külső monitor kezelése, windows alatt kihúzom, netbook monitorát használja, bedugom, a külsőt, (Ubuntu 11.10 alatt hasonló volt a helyzet)12.04 alatt kihúzom és nincs kép, bedugom és nem jön vissza :(. Jó pár dolgot nem kedvelek a windowsban, ezért most új disztribúció keresésébe kezdtem, sajnos az Ubuntu (egy időre biztos) teljesen megbukott nálam.