Fejlesztői környezet kialakítása: IIS7 + PHP + MySQL

A következőkben az általam használt fejlesztői környezet kialakításáról lesz szó Windows operációs rendszer alatt. A fejlesztői környezet kialakításához szükség lesz rendszergazdai jogosultságra, enélkül bele se kezdjünk. A fejlesztéshez NetBeans IDE-t használunk majd, a http szerver a Windows-ba épített Internet Information Services lesz, az adatbázist pedig a MySQL Workbench fogja kezelni. A fejlesztői környezet kialakítását két részre oszthatjuk: egyrészt fel kell telepíteni a szervert, másrészt létre kell hozni rajta egy vagy több új projektet. Természetesen ezek a részek sok lépésből állnak, a következőkben ezekről a lépésekről lesz szó.




Szerver telepítése
A szerver telepítéséhez először létre kell hoznunk a mappaszerkezetet, ami majd az adatokat fogja tárolni. Ez nagyon egyszerű, válasszunk egy mappát, ahol az adatokat szeretnénk tárolni, ez nálam a: D:\creation\software developer. Ebben a mappában hozzuk létre a databases mappát az adatbázisoknak és a projects mappát a projekteknek. Ennyi. :-)

Alkalmazások telepítése
Ahhoz, hogy működjön a szerverünk, illetve tudjunk fejleszteni szükség lesz néhány alkalmazásra, kezdjük ezek telepítésével.

NetBeans telepítése
A NetBeans-hez szükség van java-ra, szóval ha még nincs fent a gépünkön, akkor töltsük le a java.com-ról és telepítsük. Ezek után szedjük le a NetBeans IDE legfrissebb verzióját Windows-hoz a projekt letöltési oldaláról, majd telepítsük azt. Lehetőleg azt a változatot válasszuk ki, ami alkalmas PHP kód szerkesztéséhez:

A NetBeans-hez érdemes feltenni a Git plugint, vagy valamelyik másik verziókezelő plugin-jét, kinek mi a szimpatikus. Ezt a Tools\Plugins alatt tehetjük meg.


IIS telepítése és konfigurálása
Az IIS alap esetben a Windows-al jár, és kikapcsolt állapotban van. Ha ez mégsem lenne így, akkor a telepítéséhez szükség lesz a Microsoft Web Platform Installer-re. Ebben sajnos nem tudok többet segíteni, nálam Windows 7 Ultimate alatt csak be kell kapcsolni a szolgáltatást. Ez az aktiváció a következőképp zajlik:
  1. Menjünk a Vezérlőpult\Programok  szekcióba, és válasszuk ki a Windows-szolgáltatások be- és kikapcsolását.
  2. Keressük meg az Internet Information Services illetve a Internet Information Services üzemeltethető webmagja részeket, és pipáljuk ki őket.
  3. A PHP fastCGI módban történő futtatásához még szükség lesz az Internet Information Services\Webszolgáltatások\Alkalmazásfejlesztési szolgáltatások\CGI bekapcsolására is.
Ha jól csináltuk, akkor valami ilyesmit kell, hogy lássunk:

A szervert az IIS Manager-rel lehet beállítani, amelyet a C:\Windows\System32\inetsrv\InetMgr.exe alatt találunk. Hozzunk létre egy parancsikont az asztalon ehhez az alkalmazáshoz, majd indítsuk el azt. Amit jelenleg benne találunk az a localhost-hoz tartozó DefaultAppPool és a DefaultWebSite. Az Application Pool alkalmazások gyűjteménye, amelyeket az adott Pool-t használó oldalak tudnak igénybe venni. Minden új Application Pool örökli a DefaultAppPool tulajdonságait. Szóval ha létrehozunk egy PHP feldolgozót ebben a Pool-ban, akkor az hatással lesz az összes többire. Ezért NE TEGYÜK. Próbáljuk meg inkább kitakarítani ezt a Pool-t, amennyire csak lehet, hogy a lehető legkevesebb hatása legyen a későbbiekre. A továbbiakban az a terv, hogy minden egyes WebSite külön Application Pool-t fog használni külön PHP feldolgozóval. Ezzel a felállással a PHP verziója és beállításai tetszés szerint módosíthatóak minden projektnél.

Tegyünk fel még két kiterjesztést az IIS-hez:
  1. PHP Manager for IIS - a php.ini beállítását segíti
  2. URL Rewrite Module - a .htaccess-hez hasonló  web.config fájl írását segíti
 Ezekről még szó lesz a későbbiekben.

MySQL telepítése és konfigurálása
A MySQL telepítéséhez először töltsük le az aktuális telepítőt majd indítsuk el azt. Válasszuk ki a custom setup-ot, és ott az úrvonalaknál állítsuk be a Server data files helyét databases\mysql-re.

Lépjünk tovább, pipájuk ki a launch config wizard checkbox-ot, és lépjünk tovább. A következő lépésekben konfiguráljuk a MySQL szervert:
  1. Detailed Configuration kiválasztása
  2. Developer Machine kiválasztása
  3. Multifunctional Database kiválasztása
  4. InnoDB Tablespace Settings: databases\mysql\innodb
  5. Decision Support (DSS) / OLAP kiválasztása
  6. Enable TCP/IP Networking bejelölése, port: 3306; Strict mode bejelölése
  7. Manual Selected Default Character Set / Collation kiválasztása, charset: utf8
  8. Install as Windows Service kiválasztása, nevezzük el aminek tetszik
  9. Modify Security Settings, állítsuk be a jelszót
  10. Finish
Ezek után Windows Service-ként futnia kell a MySQL szervernek, viszont jelenleg nem tudjuk GUI-n keresztül elérni azt. Ehhez telepítenünk kell a MySQL Workbench-et.

A Workbench telepítéséhez (legalábbis a jelen verziónál) szükség lesz a következőkre:
Ha ezek megvannak, akkor szedjük le az aktuális telepítőt és indítsuk el azt. Ha megvagyunk a telepítéssel, akkor indítsuk el az alkalmazást, és adjunk hozzá egy kapcsolatot.

Ha ezzel megvagyunk dupla kattintással tesztelhetjük, hogy fut e vagy akár úgy is, hogy az adminisztrációs részhez hozzá adunk egy új szerver példányt, és elindítjuk az adminisztrációs modult.

Ezzel készen vagyunk a szükséges szoftverek telepítésével, most nézzük meg hogyan tudunk létrehozni projekteket.

Projektek létrehozása
A projektjeink a projects mappában kapnak helyet, itt minden projektnek van egy-egy almappája. Hozzuk létre a test project mappát hasonló nevű almappákkal, mint ami az alábbi ábrán látható:
A document root-ban kapnak helyet a php fájljaink, valamint a .htaccess és a web.config fájlok, a logs-ban a log fájlok, a sessions-ben a munkamenetek fájljai, az upload-ban a fájlfeltöltő űrlapokhoz küldött fájlok kapnak helyet ideiglenesen, a php-x.x.x-ben pedig a felhasznált php verzió.


Projekt regisztrálása a hosts fájlban
A hosts fájlhoz még nem nyúltunk ezelőtt. Ez a C:\Windows\System32\drivers\etc\hosts útvonalon érhető el, a módosításához adminisztrátori jog szükséges. A legegyszerűbb a kezeléséhez, ha NetBeans-ben hozzáadjuk a Favourites-hez, így nem kell minden egyes alkalommal kikeresni, amikor módosítani akarjuk. Ehhez futtassuk a NetBeans-t rendszergazdaként (jobb gomb \ futtatás rendszergazdaként), válasszuk ki jobb oldalt a Favourites fület (vagy a Windows\Favourites menüpontot), majd jobb klikk, és kattintsunk a megjelenő Add to Favourites feliratra. Keressük ki a hosts fájlt, és adjuk hozzá. Ezek után mindig megtaláljuk majd a Favourites-ben ezt a fájlt.

Most nyissuk meg a hosts fájlt (rendszergazdaként), és adjuk hozzá a következő sort:
127.0.0.1 test.project.loc
majd mentsük azt. Ezzel a http://test.project.loc url-t az IIS szerverünkhöz irányítottuk.

Projekt hozzáadása az IIS szerveren
Persze ahhoz, hogy valami tartalmat is lássunk ezen az url-en be kell állítanunk az IIS szerverünket. Ehhez indítsuk el az IIS manager-t.


Ahhoz, hogy minden egyes projektnek egyedi PHP verziója lehessen, és ezeket egymástól függetlenül tudjuk konfigurálni szükséges az, hogy minden Webhelyhez (WebSite) külön Alkalmazáskészlet (AppPool) tartozzon. Először tehát adjunk hozzá egy új alkalmazáskészletet. Ezt az alkalmazáskészletek\alkalmazáskészlet hozzáadása alatt tehetjük meg.
Nevezzük el az alkalmazáskészletet, nálam a test project php 5.3.8 nevet kapta. Így a későbbiekben egyszerűbb lesz majd új php verziót feltenni, egyszerűen csak alkalmazáskészletet kell váltani. (A másik lehetőség erre a modultársítás megváltoztatása.)


Ha megvan az alkalmazáskészletünk, akkor adjuk hozzá a webhelyet a rendszerhez. Ehhez menjünk a Helyek\Webhely hozzáadása pontra, majd töltsük ki az űrlapot. Fontos, hogy kijelöljük az imént létrehozott alkalmazáskészletet. Ha nem hoztunk létre alkalmazáskészletet, akkor az alapbeállításokkal automatikusan létrejön egy ugyanolyan néven, mint amilyenen a projektünk van.

A fizikai elérési útnál a document root-ot adjuk meg, az állomásnévnek pedig állítsuk be a test.project.loc-ot. Ha most elindítjuk a webhelyet, akkor látnunk kell utána a böngészőnkben a http://test.project.loc alatt a document root-ot. Tegyünk be egy index.html-t, és próbáljuk ki.


Php telepítése a projekthez
Ha használni szeretnénk a php-t a projektünknél, akkor először le kell szednünk a megfelelő php verziót. Csomagoljuk ki a php-x.x.x mappába.

Ezek után be kell állítanunk a szervert, hogy használja a php-t az ilyen kiterjesztésű fájlokhoz. Ehhez indítsuk el az IIS Manager-t. Válasszuk ki a weboldalt, majd a Kezelőtársítások\Modultársítás hozzáadása alatt rendeljük hozzá a *.php-hez a php feldolgozót.

 Ehhez adjuk meg a Kérelem elérési útja mezőben a *.php-t, a Modul-nál válasszuk ki a FastCgiModule opciót, a végrehajtható fájlnál pedig a php-x.x.x\php-cgi.exe-t. Végül nevezzük el a modult. (Ha esetleg már létezik öröklött modul az ApplicationPool-ban, akkor azt mindenképpen töröljük, mert nem fogjuk tudni társítani hozzá az aktuális projekt PHP feldolgozóját. Hiába változtatjuk meg benne az elérési utat, mivel öröklött újra visszaáll majd a korábbi értékre.)

Ezzel még nincs vége a történetnek, a php-t konfigurálnunk kell ahhoz, hogy fastCGI módban megfelelően fusson, illetve be kell állítanunk, hogy milyen mappákat használhat, és hozzá kell adnunk a kiterjesztéseket. Ehhez nevezzük át az egyik php.ini mintát a php-x.x.x-ben, hogy legyen ini fájlunk, majd az IIS Managernél válasszuk ki a weboldalt, és menjünk a PHP Manager-re. Menjünk a Manage all settings-re, majd jobb oldalt az Open php.ini-re, és másoljuk be a következő kódot az ini fájl végére:
[Pathes]
extension_dir = "ext"
error_log = "..\logs\error.log"
doc_root = "..\document root"
session.save_path = "..\sessions"
upload_tmp_dir = "..\upload"
include_path = "..\document root"

[FastCGI]
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
fastcgi.logging = 0

[Timezone]
date.timezone = "Europe/Budapest"

[Extensions]
extension=php_mbstring.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_gd2.dll

Erősen ajánlott a  php-x.x.x-hez viszonyított relatív útvonalakat megadni az ini fájlban, mert így a beállításokat újra fel lehet használni. Ezután indítsuk újra az IIS-t, hogy érvénybe lépjenek a beállítások. Ezt a Kezdőlap\újraindítás-nál tehetjük meg.

Készen vagyunk a projekt konfigurálásával, már csak a tesztelés maradt. Hozzunk létre új php projektet a NetBeans-el a document root-ban, és teszteljük php kóddal, hogy minden megfelelően működik e. Ha mod rewrite-ot szeretnénk használni, és az éles környezet Apache szerveren van, akkor az Url Rewrite kiterjesztés segítségével importálhatjuk a .htaccess fájlt, majd generálhatunk ezek alapján egy tartalmilag megegyező web.config fájlt.

Az összes további projekt hozzáadása ugyanígy zajlik. Ezzel tehát végére értünk a fejlesztői környezet kialakításának. Az itt bemutatott módszer tökéletesen megfelel webfejlesztéshez, az éles környezet beállítását és felügyeletét meg szerintem jobb, ha szakemberre bízza mindenki. Nem régóta használom az IIS-t, de ez alatt a rövid idő alatt is nagyon pozitív véleményem alakult ki róla (előtte WampServer-t használtam itthonra, de csak nyűg volt vele). Szeretem, ha valamit GUI-val be lehet állítani, és nem kell állandóan konfig fájlokban turkálni, meg parancssorozni. Azt hiszem ezzel nem vagyok egyedül, remélem, hogy sokatoknak hasznos volt ez a cikk.

Nincsenek megjegyzések:

Megjegyzés küldése