A tervek szerint körülbelül két hét múlva a Canonical útjára fogja indítani az Ubuntu 12.04-es verzióját, a jeles esemény vélhetően szokás szerint nagy hullámokat fog kelteni a Windows felhasználók körében, hiszen a Wubi névre hallgató segédprogramjával az OS a partíciók megváltoztatása nélkül is telepíthető a redmondiak rendszerei mellé.
Jelen beszámolónkkal elsősorban azok életét kívánjuk megkönnyíteni, akik az installálása után kedvet kapnának a népszerű PHP szerveroldali szkriptelési nyelvvel való megismerkedésre, ám nem tudják, hogyan is álljanak neki Linuxon egy saját gépen futó webszerver kialakításának.
Példánkban egy hagyományos LAMP (Linux/Apache/MySQL/PHP) kiszolgálót fogunk telepíteni és beállítani, amelyen a tartalmak csak és kizárólag a saját gépről érhetőek el, így IP címünk birtokában mások nem lesznek képesek olvasni vagy futtatni a különféle állományokat.
Előkészületek
Nulladik lépésként érdemes feltelepíteni az Ubuntu szoftverközpontból két segédprogramot: az egyik a GNOME Commander névre hallgató kétpaneles fájlkezelő, míg a második a Muon csomagkezelő – ugyan a szoftverközpontban is lehetőség nyílik kereséskor kilistáztatni az összes „technikai elemnek” minősülő csomagot, ám egy hagyományos csomagkezelőt használva jelentősen átláthatóbb marad a helyzet.
A telepítés
Az installációs fázist az összes szükséges csomag kijelölése után elvileg egyben le lehet tudni, ám ez adott esetben váratlan problémákhoz vezethet, így célszerűbb több körben telepíteni az egymásra épülő modulokat.
Elsőként a Muon csomagkezelőt megnyitva az Apache HTTP kiszolgálót érdemes felrakni: ezt a legegyszerűbben az „apache2” metacsomag telepítésre jelölésével, majd az ablak menüsorában a „Változtatások alkalmazása” gombra kattintással lehet megtenni.
Ha minden rendben ment, akkor jöhet a PHP installálása: az alaprendszert a „php5” metacsomag kijelölésével lehet telepíteni, ám emellé a növelt biztonság és bővebb funkcionalitás érdekében javasoljuk még a „php5-suhosin”, „php5-curl”, „php5-mcrypt”, „php5-gd”, továbbá a „php-pear” beszerzését is.
Harmadik lépésben jöhet a MySQL komponens, amelyet a „mysql-server” csomaggal lehet installálni. A folyamat végén meg fog jelenni a fentebb látható ablak, a szövegmezőben az adatbázis-szerver root felhasználójának jelszavát szükséges megadni.
Végül még két csomagra van szükség: az elsőként telepítendő „php5-mysql” nevéből sejthetően a két felsorolt komponens közti kommunikációt teszi lehetővé, míg a „phpmyadmin” a talán legelterjedtebb webalapú adatbázis-kezelő felület. Utóbbi a telepítés során két jelszót fog kérni: az egyik a MySQL két lépéssel ezelőtt megadott root jelszava, míg a második a PHPMyAdminba történő bejelentkezéskor kell majd.
Jogosultságok
A webszerverünket háromféle módszerrel lehet elérni a webböngészőből, ezek közül jelen esetben – mivel a fájlokat kizárólag a saját gépünkről kívánjuk használni - csak a http://localhost/, és a http://127.0.0.1/ tolerálható. A problémát az jelenti, hogy a számítógép IP címének birtokában bárki képes böngészni a szerveren (http://[IP CÍM]/), ráadásul még a PHPMyAdmin felület (http://[IP CÍM]/phpmyadmin/) is publikus.
Szerencsére ezen gond könnyedén megoldható: a nulladik lépésben telepített GNOME Commandert root jogosultsággal elindítva (terminál: sudo gnome-commander, vagy a program Fájl menüjében „GNOME Commander indítása rootként”) csak el kell navigálni az /etc/apache2/sites-enabled/ könyvtárba, majd ott a „default” állományt - például F4 gomb lenyomásával - meg kell nyitni.
A felbukkant szövegszerkesztőben a következő kódrészletet kell megkeresni...
[ccen] DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> [/ccen]
...majd kiegészíteni és módosítani következőre:
[ccen] DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow deny from all allow from 127.0.0.1 </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order deny,allow deny from all allow from 127.0.0.1 </Directory> [/ccen]
Mint látható, összesen kétszer három sor lett módosítva, az Order, a Deny, és az Allow kezdetűekkel lehet meghatározni, hogy ki és hogyan érheti el a tartalmakat. Fontos megemlíteni, hogy például a webszerver gyökérkönyvtára (jelen esetben a /var/www/) eltérhet, a kavarodás elkerülése érdekében javasolt odafigyelni a részletekre.
Az új konfiguráció életbe léptetéséhez újra kell indítani a webszervert, ezt a „sudo /etc/init.d/apache2 restart” utasítás kiadásával lehet megtenni – természetesen minden módosítás elvégzése után újra kell tölteni az Apache-t, még ha ezt nem is emeljük ki.
Most már kizárólag a http://localhost/ és http://127.0.0.1/ címekről érhető el a szerver, mások nem férhetnek hozzá az állományokhoz.
Mappák a webrootban
Mint fentebb már említettük, a webszerverünk gyökérkönyvtára a /var/www/ elérési útvonalon található: ez annyit tesz, hogy ha ide másolnánk egy „pelda.html” nevű állományt, akkor azt a webböngészőből a „http://localhost/pelda.html” címen tudnánk elérni.
Mindezzel annyi a probléma, hogy ezen mappa kizárólag root jogosultsággal rendelkezve írható, amely meglehetősen kényelmetlenné teszi a folyamatosan változó fájlok itteni tárolását. Természetesen át lehet állítani a mappa jogosultságait, ám ennél ügyesebb megoldás is kínálkozik a gond leküzdésére.
Jelen példánkban létrehoztunk a Saját mappaként is emlegetett home könyvtárunkban egy www névre hallgató almappát (tehát /home/FELHASZNÁLÓNÉV/www/), amely minden további nélkül írható. A terv annyi, hogy a „pelda.html” állományt ebbe a könyvtárba bemásolva el lehessen azt érni a „http://localhost/www/pelda.html” címen.
Ehhez újból meg kell nyitni a fentebb már szerkesztett állományt, majd hozzá kell csapni – megfelelő, specifikus útvonallal kiegészítve – az alább olvasható sorokat. Fontos, hogy ezen kód még az állomány VirtualHost címkéi közt helyezkedjen el!
[ccen] Alias /www/ "/home/FELHASZNÁLÓNÉV/www/" <Directory "/home/FELHASZNÁLÓNÉV/www"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow deny from all allow from 127.0.0.1 </Directory> [/ccen]
Hibaüzenetek
A szerverünk hibaoldalak megjelenítésekor meglehetősen sokat fecseghet a külvilágnak, például elárulhatja az Apache, vagy adott esetben a PHP, és egyéb modulok verzióját. Mindez nem olyan hatalmas probléma, ám ettől függetlenül érdemes kikapcsolni a szükségtelen üzeneteket.
Ehhez az /etc/apache/conf.d/ könyvtárba kell ellátogatni, majd ott a „security” névre hallgató állományban a „ServerTokens” beállítást „Prod”, míg a „ServerSignature” opciót „Off” értékre kell állítani.
MySQL naplózás
Alapvetőn az adatbázis-szerver naplózása ki van kapcsolva, ám adott esetben – például ha már végleg nem értjük, hogy miért nem teszi a dolgát egy lekérés – rendkívül hasznosak lehetnek a belőle nyerhető információk. A naplózás bekapcsolásához meg kell nyitni a /etc/mysql/ elérési útvonalon található „my.cnf” állományt, majd ki kell szedni a kettős kereszteket a „general_log_file” és „general_log” sorok elől.
A fájl mentése után újra kell indítani a szervert (sudo /etc/init.d/mysql restart), a napló a /var/log/mysql/ könyvtárban található.
[ccen] # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. # As of 5.1 you can enable the log at runtime! general_log_file = /var/log/mysql/mysql.log general_log = 1 [/ccen]
Nagy nehezen – vagy épp könnyedén – telepített és beállított szerverünk gyors leteszteléséhez a WordPress tartalomkezelő rendszert fogjuk üzembe helyezni rajta. Ehhez elsőként le kell tölteni a legfrissebb verzióját, majd a kapott archívum tartalmát ki kell csomagolni a korábban beállított „www” mappába (tehát azon belül lesz még egy „wordpress” mappa, amely a CMS állományait fogja tartalmazni).
A következő körben a PHPMyAdminban (http://localhost/phpmyadmin/) létre kell hozni egy üres adatbázist - a bejelentkező képernyőn a felhasználói név root, míg a jelszó a telepítésekor megadott lesz. Ezek után a menüsoron az „Adatbázisok” menüre kell kattintani, alatta pedig egy tetszőleges név megadásával létrehozható az üres adatbázis.
Utolsó előtti lépésben meg kell nyitni a WordPress állományait tartalmazó könyvtárat, majd a „wp-config-sample.php” állományt át kell nevezni „wp-config.php” névre, és dupla kattintással meg kell nyitni.
Itt az első három konstanst kell megváltoztatni: az elsőben (DB_NAME) az előbb létrehozott adatbázis nevét kell megadni, a másodikban (DB_USER) át kell írni a MySQL felhasználói nevet „root”-ra, a harmadikban pedig a MySQL root felhasználójának a jelszavát kell megadni.
[ccen] define('DB_NAME', 'A LÉTREHOZOTT ADATBÁZIS NEVE'); define('DB_USER', 'root'); define('DB_PASSWORD', 'MYSQL ROOT JELSZÓ'); [/ccen]
Az adatok kitöltése, és a fájl mentése után a webböngésző címsorába csak be kell gépelni a „http://localhost/www/wordpress/” címet, majd a kért mezők kitöltése után már működik is a WordPress.
Az egyetlen probléma a fájlok (tipikusan képek) feltöltésekor adódhat, hiszen a tartalomkezelő rendszernek nincs írási jogosultsága, még az állományok tárolására a „wp-content” könyvtárban létrehozandó „uploads” mappát sem képes elkészíteni.
Értelemszerűen lépjünk be a „/wordpress/wp-content/” könyvtárba, majd hozzuk létre az „uploads” mappát, és biztosítsuk a WordPress-nek az írási jogosultságot (jobb klikk az „uploads” mappán > Tulajdonságok > Jogosultságok fül > A többiek – Mappa elérése – Fájlok létrehozása és törlése).
Végszóként a főbb (alapértelmezett) elérési utak egy kupacban:
- A webszerver gyökérkönyvtára: /var/www/
- Elérés a böngészőből: http://localhost/ vagy http://127.0.0.1/
- A PHPMyAdmin elérése: http://localhost/phpmyadmin/
- A webszerver újraindítása: sudo /etc/init.d/apache2 restart
- A webszerver elindítása: sudo /etc/init.d/apache2 start
- A webszerver leállítása: sudo /etc/init.d/apache2 stop
- A webszerver konfigurációs állományai: /etc/apache2/
- A PHP konfigurációs állománya: /etc/php5/apache2/php.ini
- Az Apache és PHP naplói: /var/log/apache2/
- A MySQL szerver naplói: /var/log/mysql/