.
Az Apache és a PHP összebarátkoztatása
A cím egy kicsit pontatlan, lévén nyilván az Apache-ot kell megtanítani arra, hogy mit kezdjen a PHP oldalakkal. Lássuk, hogyan.
Mielőtt azonban hozzáfognánk, a WEBDEV könyvtárban hozzuk létre azt az új mappát, amiben leendő remekműveinket (azaz weboldalainkat, PHP programjainkat) fogjuk tárolni. Ehhez mérten adjunk neki valami beszédes nevet. Ha valaki az Apache terminológiát szeretné követni, nyugodtan keresztelje el htdocs-ra, én speciel most a
websites nevet választottam.
Ezt követően lépjünk be az Apache mappájába, azon belül pedig a
conf mappába, és nyissuk meg szerkesztőprogramunkban
httpd.conf állományt. Ez az Apache lelke, úgy hogy óvatosan csináljunk benne bármit is.
Gördüljünk lefelé az állomány tartalmában, amíg el nem érjük az Apache által használt modulokat. Egészítsük ki a listát a PHP5 működéséhez szükséges modullal.
ÁLLJ! Két fontos dolog! Vegyük észre, hogy Apache konfigurációs állományában a sor eleji # (kettős kereszt) karaktert jelöli a megjegyzést tartalmazó sorokat. Ennél is fontosabb azonban, hogy ebben az állományban kizárólag
normál perjeleket használunk (magyar billentyűzetkiosztásnál: Shift + 6)!!!
Amit tehát a LoadModule lista végére írunk:
LoadModule php5_module c:/webdev/php5/php5apache2_2.dllAzt is vegyük észre, hogy a DLL fájl nevének vége: 2_2.dll. Azért ez, mert a 2.2.x-es verziójú Apache-ot telepítettük fel. Ha a webkiszolgáló egy korábbi változatát használnánk, van külön
php5apache.dll a 2-esnél korábbi Apache verziókhoz és
php5apache2.dll a 2.0.x-es verziókhoz.
Megint görgetünk lefelé, amíg el nem érjük a
DocumentRoot bejegyzést. Ez mondja meg az Apache-nak, hogy hol tartjuk a weboldalunk állományait. A képen felül látszik az alapbeállítás (az Apache mappája alatti htdocs könyvtár), alul pedig amire mi gondosan átírjuk -- a frissiben létrehozott, új
websites mappánk elérési útja. (Továbbra is perjeleket használunk!)
Ezt követően a kicsit lejjebb levő
Directory bejegyzéssel kell eljátszanunk ugyanezt.
Haladjunk tovább az állományban, egészen addig, amíg meg nem találjuk a
DirectoryIndex bejegyzést. (Jól jegyezzük meg, hogy hol van, ugyanis ide még vissza fogunk jönni, mégpedig őrjöngve, de erről majd később.) Ez -- elvileg -- azokat az állományokat tartalmazza, amelyet az Apache automatikusan megnyit, ha a böngésző címsorában nem egy konkrét weboldal címét adjuk meg (www.weboldal.com/akármi.html), hanem csak egy mappáét, például www.weboldal.com. Vagy éppen
http://localhost/, ami ugye a webszerverünk legfelső (mondhatni: gyökér) könyvtára. Mint látható, a kiszolgáló automatikusan az index.html állományt keresi, szóval tanítsuk meg neki az
index.php-t is, egészítsük ki ezzel a sort.
Utolsó feladat: megkeresni az
AddType típusú bejegyzéseket, amelyek a különleges weboldaltípusokat írják le az Apache számára. Itt meséljük el az Apache-nak, hogy ha .php kiterjesztésű állománnyal találkozik, akkor azt x-httpd-php alkalmazásként kezelje. Nem kell érteni, csak be kell írni az eredeti két AddType sor után azt, hogy:
AddType application/x-httpd-php .phpMentsük az állományt és lépjünk ki belőle. Kész vagyunk, jöhet a Windows-újraindítás!
Eljött a tesztelés és az ideg-összeroppanás ideje!

(Az elkövetkező percekben igen gyakran teszünk majd fel "Miért...."-tel kezdődő kérdéseket.) Ám még mielőtt bármit csinálnánk, nézzünk le a sarokba az Apache Monitorra. Ha azt mutatja, hogy az Apache működik (kis zöld jobb mutató nyílhegy), az fél siker, ugyanis az azt jelenti, hogy nem rontottuk el teljesen a httpd.conf állományt! Ha az Apache nem indul el, akkor futás vissza, és átnézni minden olyan sort, amit megváltoztattunk vagy hozzáírtunk. Valahol valami hibát sikerült véteni. (A képeken látottak egyébként garantáltan jók, ugyanis élesben telepítettem, miközben a képeket csináltam, és sikerült!

)
A PHP teszteléshez a világ legegyszerűbb programját fogjuk megírni, amit direkt erre a célra találtak ki. Hozzunk létre egy új szövegállományt (jobb katt -->
Új -->
Szöveges dokumentum) a
websites mappában, és nevezzük át
index.php-ra. (Igen, biztosak vagyunk benne.)
Nyissuk meg egy szerkesztőben (Jegyzettömb), és írjuk bele a következőt, és mentsük el:
KÓD
<?php phpinfo(); ?>
Kapjuk elő kedvenc böngészőnket, és mehet a localhost.
Ha azt mondja, hogy "It works!", na... akkor nem működik.

Jöhet az első
MIÉRT?!?!?! Még mielőtt kétségbeesnénk, próbáljuk ki így:
http://localhost/index.php. Ha megjelenik az alább látható gyönyörűség, akkor az a jó hír, hogy nem mi vagyunk a hülyék, hanem az Apache, illetve a fejlesztői: az Apache csak pont azt nem veszi figyelembe, amit a
DirectoryIndex bejegyzésnél beírtunk.
(Itt jegyezném meg, hogy ez 2.2-es „újítás”, ilyet nekem a 2.0.59 sosem csinált. Sőt, a 2.0.59-es httpd.conf állományában még nem így néz ki a DirectoryIndex bejegyzés, úgy hogy ezek a derék fejlesztőik nemcsak hozzányúltak, de jól el is szúrtak benne valamit.)
Úgy hogy nyomás vissza a
httpd.conf-ba, és ellenőrizzük, hogy frankón ott van a sorban az
index.php. Ha nincs ott, írjuk bele (és gondolatban adjunk magunknak egy feketepontot.) Lépjünk ki a konfigurációs állományból, és az Apache Monitorral indítsuk újra az Apache-ot. (
Apache2 -->
Stop, várunk,
Apache2 -->
Start). Kezdődhet a tesztelés elölről.
Saját tapasztalat: néhány httpd.conf-nézegetés, szerkesztgetés és újraindítás után egyszer csak magától megjavult. Konkrétan nem írtam át benne semmit.
Minden jó, ha jó a vége! Ha ezt látjuk, akkor már majdnem 100%-os siker koronázta erőfeszítéseinket. Már csak egy dolog van hátra, ellenőrizni, hogy az
mbstring, a
mysql és a
mysqli modulok megtalálhatók-e a listában. A modulok ábécé-sorrendben sorakoznak egymás után, úgyhogy viszonylag egyszerűen megtalálható az mbstring... vagy éppen annak hűlt helye. Ha nincs meg, akkor nyomás a php.ini-be, és ellenőrizzük az
extension_dir bejegyzést.
Javítás, mentés, Apache újraindítás, tesztelés.
Jó szórakozást! Kérdések, vélemények, esetleg javítások (?) jöjjenek a
PHP kérdésem van témába!