You are on page 1of 28

A

Instalacija
Postoje tri tehnika preduslova da bi se izvrili svi primeri iz ove knjige: MySQL (aplikacija baze podataka), PHP (jezik za skriptovanje) i aplikacija veb servera (kroz koju PHP radi). U ovom dodatku opisano je instaliranje ovih alatki na dve razliite platforme Windows 7 i Mac OS X. Ako koristite udomljeni veb sajt, sve to ste ve dobili, ali ovi proizvodi su svi besplatni i sasvim se lako instaliraju, pa jo uvek ima smisla da ih postavite na vlastiti raunar. Osim instaliranja, u ovom dodatku su opisana i neka povezana pitanja od znaaja za skoro svakog korisnika. Najpre, opisujem kako se u MySQL-u prave korisnici. Zatim, izlaganjem tehnika koje e vam biti potrebne kad god prvi put ponete da koristite neki server, prikazujem kako da testirate svoju PHP i MySQL instalaciju. Nakon toga, nauiete kako da konfiguriete PHP da biste promenili njegovo funkcionisanje. Na kraju, novost u ovom izdanju knjige, pokazau vam kako da izmenite ponaanje veb servera Apache da biste zadovoljili uobiajene potrebe.

Instalacija na Windowsu
Mada na Windows raunar svakako moete pojedinano da instalirate veb server (kao to je Apache, Abyss, ili IIS), PHP i MySQL, toplo vam preporuujem da radije upotrebite sveobuhvatan instaler. To je svakako lake i mnogo pouzdanije. Za Windows se nudi nekoliko sveobuhvatnih instalera. Najee se pominju dva: XAMPP (www.apachefriends.org) i WAMP (www.wampserver.com). U ovom dodatku, koristiu XAMPP, koji odgovara za veinu verzija Windowsa. Osim servera Apache, PHP-a i MySQL-a, XAMPP takoe instalira:
n

PEAR (PHP Extension and Application Repository), biblioteku PHP koda Perl, veoma popularan programski jezik phpMyAdmin, veb interfejs prema MySQL serveru Server za mail (za slanje elektronske pote) Nekoliko korisnih proirenja

n n

Dok ovo piem, XAMPP (verzija 1.7.4) instalira PHP 5.3.5, MySQL 5.5.8, Apache 2.2.17 i phpMyAdmin 3.3.9. Opisau proces instaliranja po takama. Napominjem da, u sluaju da se jave neki problemi, moete da se obratite na forum za podrku ovoj knjizi (www.LarryUllman. com/forums/), ali ete verovatno vie sree imati na XAMPP-ovom sajtu (konano, to je njihov proizvod). Osim toga, instaler zaista dobro funkcionie i nije teak za upotrebu, pa neu ulaziti u sve detalje svake take, ve radije istiem najvanija razmatranja.

Da biste instalirali XAMPP na Windowsu:


1. Preuzmite najnovije izdanje XAMPP-a za Windows sa adrese www.apachefriends.org. Moraete malo da lutate dok ne pronaete odeljak za preuzimanje (engl. download), ali ete pronai podruje u kojem se preuzimanje nalazi A . Zatim pritisnite EXE, to je konkretno ono to vam treba. 2. Na svom raunaru, dva puta pritisnite preuzeti fajl da biste pokrenuli proces instaliranja. 3. Ako se pojavi zahtev, instalirajte XAMPP negde izvan direktorijuma Program Files.

A Sa veb sajta Apache Friends, uzmite najnoviji installer za Windows.

O mrenim barijerama
Mrena barijera spreava komunikaciju preko portova (port je pristupna taka raunara). Verzije Windows-a poevi od XP Service Pack 2 sadre ugraenu mrenu barijeru. Moete takoe da preuzmete i instalirate mrene barijere drugih dobavljaa. Mrene barijere unapreuju bezbednost vaeg raunara, ali mogu takoe da ometaju vae mogunosti da koristite Apache, MySQL, i neke druge alatke potrebne za XAMPP, zato to sve one koriste portove. Kada koristite XAMPP, ako vam se pojavi bezbednosno upozorenje koje nagovetava da mrena barijera blokira (engl. firewall is blocking) Apache, MySQL, ili neto slino, izaberite Unblock ili Allow, zavisno od verzije Windowsa koju koristite.

Inae, moete runo da konfiguriete svoju mrenu barijeru (na primer, za Windows 7 se to radi u Control Panel > System and Security). Sledei portovi treba da budu otvoreni : 80 (za Apache), 3306 (za MySQL) i 25 (za mail server Mercury). Ako ne moete da ih pokrenete ili da im pristupite, onemoguite mrenu barijeru i pokuajte ponovo. Ako problem nestane, znaete da je problem u mrenoj barijeri i da je treba prekonfigurisati.
A2Dodatak A:Instalacija

Da bi bilo jasno, mrene barijere ne postoje samo na Windowsu, ali u smislu uputstava u ovom dodatku, prisustvo mrene barijere pre e ometati korisnika Windowsa, nego ikoga drugog. Zbog jednog pitanja sa dozvolama na nekim verzijamaWindowsa, izbegnite instaliranje u direktorijum Program Files. Preporuujem da instalirate XAMPP u svoj koreni direktorijum (npr., C:\).
B Izaberite i druge instalacione opcije koje elite.

Koje god mesto odabrali za instaliranje programa, zabeleite tu lokaciju, jer e vam taj podatak biti potreban jo nekoliko puta tokom proraivanja ovog dodatka. 4. Ako elite, napravite preice na radnoj povrini i na meniju Start B . 5. Nastavite po preostalim takama, proitajte ih i pritiskajte Enter/Return za nastavak. 6. Poto instalacioni proces obavi sve to treba C , pritisnite Yes kako bi se pokrenuo kontrolni panel.
nastavalja se na sledeoj strani

C Instalacija XAMPP-a je zavrena!

Instalacija A3

7. Kontrolni panel XAMPP koristiete za pokretanje, zaustavljanje i za konfigurisanje XAMPP-a D . 8. Prema potrebi, koristiete kontrolni panel da biste pokrenuli Apache, MySQL i Mercury. Apache mora da bude aktivan za sva poglavlja u knjizi. MySQL mora da bude aktivan za oko polovine poglavlja. Mercury je server za elektronsku potu koji instalira XAMPP. On mora da bude aktivan da bi mogle da se alju email poruke pomou PHP-a (vidite poglavlje 11 Razvijanje veb aplikacija). 9. Odmah odredite lozinku za osnovnog MySQL korisnika. Kako ete to da uradite, objasniu kasnije u dodatku.
SAVET Razni administrativni linkovi XAMPP-ovog kontrolnog panela vodie vas do raznih veb stranica (na vaem serveru) i do drugih resursa E . SAVET Vidite odeljak Konfigurisanje PHPa da biste nauili kako da konfiguriete PHP u fajlu php.ini. SAVET Va osnovni veb direktorijum u koji morate da postavite svoje PHP skriptove da biste ih testirali je folder htdocs u direktorijumu u koji je instaliran XAMPP. Prema ovim uputstvima za instaliranje, to bi bilo C:\xampp\htdocs. SAVET Prilikom pokretanja XAMPP Control Panela koristei XAMPP 1.7.4 na 64-bitnoj verziji Windowsa 7, svaki put sam dobijao poruku o greci o nekakvom Status Check Failure. Nisam uspeo da otkrijem uzrok, ali ta greka nije spreila da XAMPP bude potpuno upotrebljiv.

D Kontrolni panel XAMPP, za upravljanje softverom.

E Uvodna stranica za XAMPP na Vebu, pozvana sa kontrolnog panela.

A4Dodatak A:Instalacija

Instalacija na Mac OS X-u


Mada se Mac OS X isporuuje sa ugraenim serverom Apache, a instaliranje MySQL-a nije tako teko, preporuujem da poetnici pou sasvim sigurnim putem i primene sveobuhvatni instaler MAMP (www.mamp.info). Za njega postoji i besplatna i komercijalna verzija, veoma se lako koristi i nee uticati na server Apache koji je ugraen u operativni sistem. MAMP pored Apache-a, PHP-a i MySQLa instalira takoe i phpMyAdmin, veb interfejs ka MySQL serveru, kao i mnoga korisna PHP proirenja. Dok ovo piem, MAMP (verzija 1.9.6.1) instalira dve verzije PHP-a (5.2.13 i 5.3.2), pored MySQL-a 5.1.44, Apache-a 2.0.63 i phpMyAdmin-a 3.2.5. Opisau proces instaliranja po takama. U sluaju da se jave neki problemi, moete da se obratite na forum za podrku ovoj

knjizi (www.LarryUllman.com/forums/), ali ete verovatno vie sree imati na MAMP-ovom sajtu (konano, to je njihov proizvod). Osim toga, instaler zaista dobro funkcionie i nije teak za upotrebu, pa neu ulaziti u sve detalje svake take, ve radije istiem najvanija razmatranja.

Da biste instalirali MAMP na Mac OS X-u:


1. Preuzmite najnovije izdanje MAMP-a sa www.mamp.info. Na naslovnoj stranici, pritisnite Downloads, a zatim pritisnite Download: MAMP & MAMP PRO 1.9.6.1 A . (Kako se budu pojavljivala novija izdanja MAMP-a, link i ime fajla e se, naravno, menjati.) Isti preuzeti fajl se koristi za oba proizvoda. U stvari, MAMP Pro je samo lepi interfejs za kontrolisanje i podeavanje istog MAMP softvera.
nastavalja se na sledeoj strani

A Preuzmite MAMP sa ove stranice na www.mamp.info.

Instalacija A5

2. Na svom raunaru, pritisnite dva puta na preuzeti fajl da biste montirali kopiju diska B . 3. Kopirajte folder MAMP iz kopije diska u va folder Applications. Ako smatrate da e vam se vie dopasti komercijalni MAMP PRO, kopirajte i taj folder (ponavljam, to je samo interfejs za MAMP, pa su potrebna oba foldera). Za MAMP PRO imate besplatan probni period od 14 dana. Koji god folder odabrali, obratite panju na to da morate da ga postavite u folder Applications. On ne moe da bude u nekom podfolderu ili u nekom drugom direktorijumu na vaem raunaru. 4. Otvorite folder /Applications/MAMP (ili /Applications/MAMP PRO). 5. Pritisnite dva puta na aplikaciju MAMP (ili MAMP PRO) da biste pokrenuli program C . Potrajae neki momenat dok se ne pokrenu serveri, ali tada ete ugledati rezultat kao na slici C za MAMP ili D za MAMP PRO. Kada pokrenete MAMP, trebalo bi istovremeno da se otvori i poetna stranica u vaem podrazumevanom veb pretraivau F . Preko te stranice moete da vidite koja verzija PHP-a se izvrava, kao i njeno konfigurisanje, a takoe i da prilazite MySQL bazi podataka pomou phpMyAdmin-a. Ako izaberete MAMP PRO, moete da pristupite istoj toj stranici pritiskom na dugme WebStart D .

B Sadraj preuzete kopije diska MAMP.

C Jednostavna aplikacija MAMP, za kontrolu i konfigurisanje Apache-a, PHP-a i MySQL-a.

D Aplikacija MAMP PRO, za kontrolu i konfigurisanje Apache-a, PHP-a, MySQL-a i tako dalje.

A6Dodatak A:Instalacija

6. Aplikaciju MAMP ili MAMP PRO koristiete za pokretanje, zaustavljanje i za konfigurisanje MAMP-a C ili D . Sama aplikacija MAMP ne sadri mnogo (to je dobro), ali ako pritisnete na Preferences, moi ete da doterujete ponaanje aplikacije F , odredite koja verzija PHP-a da se izvrava i druge stvari. MAMP PRO takoe olakava pravljenje drugih virtualnih raunara (engl. virtual hosts) (tj., drugih sajtova; to zasebno opisujem u ovom dodatku), podeavanje konfigurisanja i rada Apache-a, korienje dinamikih DNS-ova, menjanje naina na koji se alje email i drugo. 7. Odmah odredite lozinku za osnovnog MySQL korisnika. Kako ete to da uradite, objasniu kasnije u dodatku.
SAVET Ja lino cenim koliko je sam MAMP dobar i to to je besplatan. Ni ja ne volim da troim novac, ali nalazim da se aplikacija MAMP PRO isplati, za tu relativno nisku cenu.

E MAMP-ova matina veb stranica.

ili zaustavite MAMP aplikaciju.

F Ove opcije diktiraju ta se deava kada pokrenete

SAVET Vidite odeljak Konfigurisanje PHPa da biste nauili kako da konfiguriete PHP u fajlu php.ini. SAVET MAMP se isporuuje sa istrument tablom Dashboard pomou koje moete da kontroliete servere Apache i MySQL. SAVET Va osnovni veb direktorijum u koji morate da postavite svoje PHP skriptove da biste ih testirali je folder htdocs u direktorijumu u koji je instaliran MAMP. Prema standardnim uputstvima za instaliranje, to bi bilo Applications/MAMP/htdocs. SAVET Moda ete poeleti da prebacite Document Root za Apache G u direktorijum Sites u vaem matinom folderu. Na taj nain, obezbediete da se vai veb dokumenti kopiraju zajedno sa ostalim fajlovima (a vi redovno pravite rezervne kopije, zar ne?).

G MAMP dozvoljava da se promeni mesto na kojem se uvaju veb dokumenti.

Instalacija A7

Upravljanje MySQL korisnicima


Kad jednom uspeno instalirate MySQL, moete poeti da pravite MySQL korisnike. MySQL korisnik je fundamentalan bezbednosni koncept, koji ograniava pristup sauvanim podacima i uticaj nad njima. Da bi bilo jasnije: vae baze podataka mogu da imaju vie razliitih korisnika, kao to ima i va operativni sistem. Ali korisnici MySQL-a se razlikuju od korisnika operativnog sistema. Dok uite PHP i MySQL na vlastitom raunaru, ne mora vam biti potrebno da pravite nove korisnike, ali za ive produkcione sajtove su potrebni namenski MySQL korisnici sa odgovarajuim dozvolama. Poetna MySQL instalacija ima jednog korisnika (po imenu root) bez postavljene lozinke (osim ako koristite MAMP, koji postavlja podrazumevanu lozinku root). Minimum koji morate da uradite nakon instaliranja MySQL-a je da napravite novu bezbednu lozinku za osnovnog korisnika. Posle toga, moete da pravite druge korisnike sa ogranienijim dozvolama. Po pravilu, ne bi trebalo korisnika root da koristite za normalne, svakodnevne poslove. Opisau oba ova procesa po takama na sledeim stranicama. Skreem vam panju da ako koristite udomljeni server, verovatno e vam oni napraviti MySQL korisnike. Za ovaj postupak je potreban klijent sa komandne linije mysql ili phpMyAdmin. Ako ne znate kako da ih pokrenete na svom raunaru, proitajte brzo odeljak Pristupanje MySQL-u u poglavlju 4 Uvod u MySQL.

Postavljanje lozinke za korisnika root


im instalirate MySQL, za lozinku osnovnog korisnika nije postavljena vrednost ili bar nije postavljena bezbedna vrednost. To svakako predstavlja bezbednosni rizik koji treba popraviti pre nego to ponete da koristite server (jer korisnik root ima neogranienu mo). Lozinku svakog korisnika moete da postavite pomou phpMyAdmin-a ili klijenta mysql, pod uslovom da je server MySQL aktivan. Ako MySQL trenutno nije aktivan, pokrenite ga sada, postupkom prethodno opisanim u dodatku. Zatim, morate da budete povezani sa MySQL-om kao osnovni korisnik root da biste mogli da menjate lozinku osnovnog korisnika.

Da biste dodelili lozinku korisnika root pomou MySQL klijenta:


1. Poveite se za MySQL klijenta. Po potrebi, potraite detaljna uputstva u poglavlju 4. 2. Upiite sledeu komandu, u kojoj treba re samalozinka da zamenite lozinkom koju elite da koristite A :
SET PASSWORD FOR root@ localhost' = PASSWORD ('samalozinka');

Imajte na umu da su lozinke u MySQL-u osetljive na razliku izmeu velikih i malih slova, pa Kazan i kazan nije isto. Izraz PASSWORD ispred lozinke koja je u navodnicima upuuje MySQL da taj string kodira. Pazite da ne bude razmaka izmeu rei PASSWORD i otvorene zagrade.

A Auriranje lozinke korisnika root koristei SQL u MySQL klijentu.

A8Dodatak A:Instalacija

3. Napustite MySQL klijenta:


exit

4. Testirajte novu lozinku tako to ete se ponovo prijaviti u MySQL klijenta. Poto je lozinka sada uspostavljena, morate komandi za povezivanje da dodate indikator -p. Pojavie se zahtev za unos Enter password: , na koji treba da odgovorite upravo postavljenom lozinkom.

5. Promenite lozinku osnovnog korisnika u konfiguracionom fajlu phpMyAdmin-a, ako je potrebno. Kad se promeni lozinka osnovnog korisnika, to e verovatno imati kao posledicu da se phpMyAdmin-u uskrati pristup serveru MySQL. To je zato to se phpMyAdmin, na lokalnom serveru, obino povezuje sa MySQL-om kao osnovni korisnik i da je lozinka osnovnog korisnika fiksno kodirana u konfiguracionom fajlu. Poto obavite take 14, pronaite fajl config.inc.php u direktorijumu phpMyAdmin-a verovatno /Applications/MAMP/bin/phpMyAdmin (Mac OS X sa MAMP-om) ili C:\xampp\phpMyAdmin (Windows sa XAMPP-om). Otvorite taj fajl u bilo kojem tekst editoru ili IDE okruenju pa promenite ovaj sledei red tako da se koristi nova lozinka:
$cfg[Servers][$i][password] = 'nova_lozinka';

Da biste dodelili lozinku korisnika root pomou phpMyAdmin-a:


1. Otvorite phpMyAdmin u svom veb pretraivau. Vidite detaljna uputstva u prethodnoj grupi taaka. 2. Na matinoj stranici, izaberite karticu Privileges. Da biste otili na matinu stranu, uvek moete da pritisnete ikonu matine stranice, u gornjem levom uglu. 3. U listi korisnika, u redu korisnika root pritisnite ikonu Edit Privileges B . 4. Lozinku ete promeniti u obrascu Change Password C , koji se nalazi neto nie na dobijenoj stranici.

Zatim sauvajte fajl pa ponovo uitajte phpMyAdmin u svoj veb pretraiva.

B Spisak MySQL korisnika, prikazanih u phpMyAdmin-u.

C Obrazac za auriranje lozinke MySQL korisnika sa phpMyAdmin-om.

Instalacija A9

Pravljenje korisnika i privilegije


Poto uspeno pokrenete MySQL i poto postavite lozinku osnovnog korisnika, moete da dodate druge korisnike. Zbog bezbednosti vaih baza podataka, trebalo bi za pristupanje bazama podataka uvek da napravite druge korisnike, a ne da stalno koristite korisnika root. Sistem privilegija u MySQL-u je projektovan tako da se obezbede prava ovlaenja za odreene komande nad konkretnim bazama podataka. Ta tehnologija omoguava da veb domain, na primer, bez brige dozvoli da razni korisnici pristupaju raznim bazama podataka. Svaki korisnik moe u MySQL sistemu da ima konkretne mogunosti nad konkretnim bazama podataka sa konkretnih domaina (raunara). Korisnik root osnovni MySQL korisnik, ne osnovni korisnik sistema ima najvia ovlaenja i koristi se da bi se napravili podreeni korisnici (engl. subuser), iako se i podreenim korisnicima mogu dodeliti iste takve moi (ali se to ne preporuuje). Kada korisnik pokua neto da uradi sa MySQL serverom, MySQL najpre proverava da li korisnik uopte ima dozvolu povezivanja sa serverom (na osnovu korisnikog imena, korisnikovog raunara, korisnikove lozinke i informacija u tabeli user baze podataka mysql). Zatim, MySQL proverava da li korisnik ima dozvolu da izvrava konkretnu SQL naredbu nad konkretnim bazama podataka na primer, da selektuje podatke, dodaje podatke, ili da napravi novu tabelu. U tabeli A.1 navedena je veina razliitih privilegija koje mogu da se postave za pojedinane korisnike. Korisnici i privilegije mogu u MySQL-u da se postavljaju na nekoliko naina, ali poeu od opisa komande GRANT. Syntaksa je sledea:
GRANT privilegije ON bazapodataka.* TO ' korisnikoime @ imeraunara IDENTIFIED BY ' lozinka;

Za privilegije u ovoj naredbi, moete da navedete konkretne privilegije iz tabele A.1, ili moete da odobrite sve ako stavite ALL (to nije razborito). Delom naredbe bazapodataka.* odreuje se na kojoj bazi podataka i na kojim tabelama korisnik moe da radi. Moete da navedete konkretne tabele, pomou sintakse bazapodataka.imetabele ili sa *.* da dozvolite sve baze podataka (ni to nije razborito). Na kraju, moete da navedete korisniko ime, ime raunara i lozinku. Korisniko ime ne sme biti due od 16 znakova. Kada pravite korisniko ime, vodite rauna da izbegnete razmak (umesto toga stavite donju crtu), i obratite panju na to da se u korisnikim imenima velika slova razlikuju od malih.
Tabela A.1 MySQL privilegije
PRIVILEGIJA OMOGUAVA itanje redova iz tabela. Dodavanje novih redova podataka u tabele. Menjanje postojeih podataka u tabelama. Uklanjanje postojeih podataka iz tabela. Pravljenje i uklanjanje indeksa na tabelama. Menjanje strukture tabele. Pravljenje novih tabela ili baza podataka. Brisanje postojeih tabela ili baza podataka. Ponovno uitavanje grant tabela (ime se aktiviraju izmene korisnika). Zaustavljanje MySQL servera. Pregledanje i zaustavljanje postojeih MySQL procesa. Uvoenje podataka u tabele iz tekstualnih fajlova. Pravljenje novih korisnika. Povlaenje korisnikih dozvola

SELECT INSERT UPDATE DELETE INDEX ALTER CREATE DROP RELOAD SHUTDOWN PROCESS FILE GRANT REVOKE

A10Dodatak A:Instalacija

Raunar domain je raunar sa kojeg je korisniku dozvoljeno da se povezuje. To moe da bude ime domena, kao to je www.example.com, ili IP adresa. Obino se kao ime domaina stavlja localhost, to znai da MySQL korisnik mora da se povezuje sa istog raunara na kojem se izvrava MySQL baza podataka. Ako hoete da dozvolite bilo koji raunar, stavite dokerski znak za ime domaina (%):
GRANT privilegije ON bazapodataka.* TO 'korisnikoime@% IDENTIFIED BY ' lozinka;

Da biste pravili nove korisnike:


1. Prijavite se u MySQL klijenta kao osnovni korisnik (root). Uputstvo moete pronai u poglavlju 4 , ukoliko vam treba. Morate da budete prijavljeni kao korisnik ovlaen da pravi baze podataka i druge korisnike. 2. Napravite bazu podataka temp :
CREATE DATABASE temp;

Ali ni to se ne preporuuje. Kada pravite korisnike, najbolje je da budete izriiti i ograniavajui. Za lozinku nema ogranienja duine, ali takoe se razlikuju velika i mala slova. Lozinke su u MySQL bazi podataka ifrovane, to znai da se ne mogu vratiti u format istog teksta. Ako se izostavi klauzula IDENTIFIED BY lozinka od tog korisnika se nee traiti da unese lozinku (i to bi trebalo izbegavati). Kao primer ovog procesa, napraviete dva nova korisnika sa konkretnim privilegijama nad novom bazom podataka po imenu temp. Imajte na umu da korisnicima mogu da se odobravaju dozvole samo nad postojeim bazama podataka. U sledeem nizu taaka opisuje se i kako se pravi baza podataka.

Pravljenje baze podataka je sasvim lako, pomou navedene sintakse. Ova komanda uspeva, pod uslovom da ste povezani kao korisnik sa pravilnim privilegijama. 3. Napravite korisnika sa osnovnim privilegijama nad bazom podataka temp D :
GRANT SELECT, INSERT, UPDATE, DELETE ON temp.* TO webuser@localhost IDENTIFIED BY BroWs1ng;

Opti korisnik webuser moe da pregledava zapise (SELECT nad tabelama) da dodaje (INSERT), menja (UPDATE), ili da brie DELETE zapise. Ovaj korisnik sme da bude povezan jedino preko raunara localhost (sa istog raunara) i sme da pristupa jedino bazi podataka temp.
nastavalja se na sledeoj strani

D Pravljenje korisnika koji sme da obavlja osnovne poslove nad jednom bazom podataka.

Instalacija A11

4. Primenite izmene F :
FLUSH PRIVILEGES;

Unete izmene nee imati efekta sve dok ne kaete MySQL-u da ispravi listu prihvatljivih korisnika i privilegija, to se postie ovom komandom. esta je greka da se ovaj korak zaboravi, pa je zbog toga nemogue pristupiti bazi podataka pomou novostvorenih korisnika.
SAVET Svaku bazu podataka ije ime poinje na test_ moe da menja svaki korisnik sa dozvolom konektovanja za MySQL. Prema tome, pazite da ne napravite bazu podataka sa takvim imenom ukoliko zaista nije eksperimentalna. SAVET Komandom REVOKE se korisnici i dozvole uklanjaju.

E Nemojte zaboraviti ovaj korak pre pokuaja da pristupite MySQL-u pomou novostvorenih korisnika.

Pravljenje korisnika u phpMyAdmin-u


Da biste pravili korisnike u phpMyAdminu, ponite biranjem kartice Privileges na matinoj stranici phpMyAdmin. Na stranici Privileges pritisnite Add A New User. Popunite obrazac Add A New User u kojem definiete korisniko ime, domaina, lozinku i privilegije. Zatim pritisnite Go. Tako ste napravili korisnika sa optim privilegijama ali bez privilegija za konkretnu bazu podataka. Na rezultujuoj stranici, izaberite bazu podataka nad kojom e vaiti korisnikove privilegije pa pritisnite Go. Na sledeoj stranici, izaberite privilegije koje bi korisnik trebalo da ima nad tom bazom podataka, pa ponovo pritisnite Go. Time je zavren proces pravljenja prava tog korisnika nad tom bazom podataka. Primetiete da ovim procesom mogu korisniku lako da se dodele razliita prava nad razliitim bazama podataka. Na kraju, vratite se istim putem nazad na karticu Privileges na matinoj stranici, pa pritisnite link Reload the Privileges.

A12Dodatak A:Instalacija

Testiranje instalacije
Sada poto ste instalirali sve i napravili neophodne MySQL korisnike, trebalo bi da testirate instalaciju. U tu svrhu mogu se upotrebiti dva brza PHP skripta. Ako je dolo do neke greke, vi to najverovatnije ve znate, ali sledei postupak e vam omoguiti da izvrite testiranje na svom (ili nekom drugom) serveru pre nego to se upustite u sloenije programiranje u PHPu, ili PHP-u sa MySQL-om. Prvi skript koji izvravamo je phpinfo.php. On ispituje da li je PHP omoguen i takoe prikazuje veliku koliinu informacija o PHP instalaciji. Koliko god ovaj skript bio jednostavan, to je jedan od najznaajnijih skriptova koje PHP programer ikad napie, po mom miljenju, zato to prua toliko dragocenog znanja. Drugi skript e posluiti u dve svrhe. Najpre e utvrditi da li je omoguena podrka za MySQL. Ako nije, moraete u sledeem odeljku ovog dodatka da vidite kako se to menja. Isti skript takoe ispituje da li MySQL korisnik ima dozvolu povezivanja za konkretnu MySQL bazu podataka.
Skript A.1 Skript phpinfo.php ispituje PHP instalaciju i izvetava o njoj.
1 <?php 2 phpinfo( ); 3 ?>

Da biste testirali PHP:


1. Napravite sledei PHP dokument u tekst editoru ili IDE okruenju (skript A.1):
<?php phpinfo( ); ?>

Funkcija phpinfo( ) vraa u jednoj tabeli konfiguracione informacije PHP instalacije. To je savrena alatka za testiranje pravilnog rada PHP-a. Za pravljenje PHP skripta moete da upotrebite skoro svaku aplikaciju, pod uslovom da ona moe da sauva fajl u formatu istog teksta. 2. Sauvajte fajl kao phpinfo.php. Morate da proverite da li je ekstenzija fajla samo .php. Obratite panju ako koristite Notepad na Windowsu, jer on tajno dodaje jo i .txt. Slino tome, TextEdit na Mac OS X-u hoe sve da uva kao .rtf. 3. Postavite fajl u pravi direktorijum na vaem serveru. ta e biti pravi direktorijum zavisi od vaeg operativnog sistema i vaeg veb servera. Ako koristite udomljeni sajt, pitajte kod svoje kompanije domaina. Za korisnike Windowsa koji su instalirali XAMPP, taj direktorijum se naziva htdocs i nalazi se unutar direktorijuma XAMPP. Za korisnike Mac OS X-a koji su instalirali MAMP, podrazumevani direktorijum se naziva htdocs i nalazi se u folderu MAMP. 4. Testirajte PHP skript tako to mu pristupite iz svog veb pretraivaa A . Izvrite ovaj skript u svom veb pretraivau preko http://ovde.va.url/ phpinfo.php. Na vlastitom raunaru, to e biti neto kao http://localhost/ phpinfo.php (Windows i XAMPP) ili
http://localhost:8888/phpinfo.php

A Informacije o PHP konfiguraciji ovog servera.

(Mac OS X i MAMP). Instalacija A13

Da biste testirali PHP i MySQL:


1. Napravite nov PHP dokument u svom tekst editoru ili IDE okruenju (skript A.2):
<?php mysqli_connect (localhost , webuser , BroWs1ng , temp); ?>

Skript A.2 Skript mysqli_test.php ispituje MySQL podrku za PHP i da li su postavljene pravilne privilegije MySQL korisnika.
1 <?php 2 mysqli_connect (localhost, webuser, BroWs1ng, temp); 3 ?>

Ovaj skript e pokuati da se povee sa MySQL serverom pomou korisnikog imena i lozinke koje smo upravo uspostavili u ovom dodatku. 2. Sauvajte fajl kao mysqli_test.php, postavite ga u pravi direktorijum za va veb server i testirajte ga u svom veb pretraivau. Ako skript uspe da se konektuje, rezultat e biti prazna stranica. Ako ne uspe da se konektuje, trebalo bi da ugledate poruku o greci kao na slici B . Najverovatnije e biti u pitanju problem sa privilegijama MySQL korisnika ili sa dobijenim informacijama (vidite prethodni odeljak ovog dodatka). Ako ugledate greku kao na slici C , znai da za PHP nije omoguena MySQL podrka. Potraite reenje u sledeem odeljku ovog dodatka.
SAVET Iz razloga bezbednosti, ne bi trebalo skript phpinfo.php da ostavljate na ivom serveru zato to on odaje previe informacija. SAVET Ako pokrenete PHP skript u svom veb pretraivau a on pokua da uita fajl, znai da va veb server ne prepoznaje ekstenziju fajla kao PHP. Pregledajte konfiguraciju Apache-a (ili drugog veb servera) da biste to ispravili. SAVET PHP sriptovi moraju uvek da se izvravaju preko URL-a koji poinje na http://. Oni ne mogu da se izvravaju direktno sa vrstog diska (kao da ste ga otvorili u svom pretraivau). SAVET Ako PHP skript ne moe da se konektuje za MySQL server, to je obino zbog nekog pitanja dozvola. Proverite ponovo korisniko ime, lozinku i domaina koji se koristi, i budite apsolutno sigurni da ste primenili (engl. flush) MySQL privilegije.

B Skript nije bio u stanju da se konektuje za MySQL server.

C Skript nije bio u stanju da se konektuje za MySQL server zato to za PHP nije omoguena MySQL podrka.

A14Dodatak A:Instalacija

Konfigurisanje PHP-a
Jedna od prednosti instaliranja PHP-a na vlastitom raunaru je to to moete da ga konfiguriete kako god hoete. Kako e PHP raditi, utvruje se u konfiguracionom fajlu php.ini, koji se obino pravi prilikom PHP instaliranja. Menjanje PHP-ovog ponaanja je vrlo jednostavno i najverovatnije e u nekom trenutku biti potrebno. Ovo je nekoliko stvari o ijem podeavanju ete moda razmiljati
n n

SMTP vrednosti za slanje elektronske pote

ta znai svako od ovih pitanja ako jo niste upoznati objanjeno je u poglavljima knjige i u PHP priruniku. Ali, za poetak, ja bih toplo preporuio da display_errors svakako bude ukljueno i da postavite izvetavanje o grekama na najvii mogui nivo. Menjanje PHP konfiguracije je zaista jednostavno. Krai put je da uredite fajl php.ini i ponovo pokrenete veb server. Ali, zbog mnogih razliitih problema do kojih moe doi, opisau konfiguraciju detaljnije. Ako elite da omoguite podrku za neko proirenje, kao to su MySQL funkcije, konfigurisanje je sloenije (vidite istaknuti komentar).

Da li da se ukljui ili iskljui isplay_errors Podrazumevani nivo izvetavanja o grekama Podrka za funkcije proirenja Improved MySQL Extension

Omoguavanje podrke za proirenja


Mnoge opcije PHP konfiguracije mogu da se menjaju jednostavnim ureivanjem fajla php.ini. Ali za omoguavanje (ili onemoguavanje) proirenja drugim reima, dodavanje podrke za proirenje funkcionalnosti potreban je vei napor. Da bi se omoguila podrka za neko proirenje samo na jednoj PHP stranici, moete da upotrebite funkciju dl( ). Da bi se podrka za neko proirenje omoguila za sve PHP skriptove treba malo rada. Naalost, korisnici Unix-a i Mac OS X-a moraju da rekonstruiu PHP sa podrkom za ovo novo proirenje (taj proces nije za bojaljive). Korisnicima Windowsa je lake: Najpre, treba da urede fajl php.ini (opisano u ovom odeljku), tako to uklone znak taka i zarez ispred proirenja koje ele da omogue. Na primer, da bi se omoguila podrka za proirenje Improved MySQL Extension, treba pronai red koji glasi
;extension=php_mysqli.dll

i ukloniti taj znak taka i zarez. Zatim, treba pronai red u kojem se postavlja direktorijum proirenja extension_dir i podesiti ga za svoju PHP instalaciju. Uzmimo da ste instalirali PHP pomou XAMPP-a u C:\xampp, tada u fajlu php.ini treba da stoji extension_dir = C:/xampp/php/ext Tako se PHP obavetava gde se nalazi proirenje. Zatim, proverite da li se taj fajl proirenja, u ovom sluaju php_mysqli.dll, zaista nalazi u direktorijumu proirenja. Sauvajte fajl php.ini i ponovo pokrenite veb server. Ako se u procesu ponovnog pokretanja pojavi poruka o tome da proirenje nije pronaeno (engl. error finding extension), proverite ponovo da li proirenje postoji u extension_dir i da li su vam putanje ispravne. Ako i pored toga imate probleme, pretraite Veb ili potraite pomo na odgovarajuem forumu ove knjige.

Instalacija A15

Da biste menjali konfiguraciju PHP-a:


1. U svom veb pretraivau izvrite skript u kojem se poziva funkcija phpinfo( ). Funkcija phpinfo( ), opisana u prethodnom odeljku dodatka (vidite A ), otkriva veliku koliinu informacija o PHP instalaciji. 2. U rezultatu koji dobijete od pretraivaa, potraite Loaded Configuration File A . Vrednost pored ovog teksta je lokacija aktivnog konfiguracionog fajla. To e biti neto nalik na C:\ xampp\php\php.ini ili / /Applications/MAMP/conf/php5.3/php.ini. Na vaem serveru moe da se nalazi vie fajlova php.ini , ali vaan je ovaj. Ako za Loaded Configuration File nije navedena vrednost, znai da na vaem serveru nema aktivnog fajla php.ini . U tom sluaju, moraete da preuzmete izvorni kd PHP-a sa sajta www.php.net, da biste pronali probni konfiguracioni fajl. 3. Otvorite fajl php.ini u bilo kojem tekst editoru. Ako odete u navedeni direktorijum, a u njemu nema fajla php.ini, moraete da preuzmete taj fajl sa PHP-ovog veb sajta (ovaj fajl je deo izvornog koda PHP-a). 4. Promenite sve to elite, obratite panju na sledee: XX Komentari su oznaeni takom i zarezom. Sve iza toga se zanemaruje.
XX U fajlu se nalaze objanjenja veine

A Pomou skripta phpinfo() proverite koji je aktivan fajl PHP konfiguracije koji treba da se uredi.

parametara.
XX Na poetku fajla su opte informacije

i primeri. Nemojte menjati te vrednosti! Menjajte parametre tamo gde se nalaze dalje u fajlu.

A16Dodatak A:Instalacija

Omoguavanje elektronske pote


PHP funkcija mail( ) radi samo ako raunar na kojem se izvrava PHP ima pristup ka sendmail ili nekom drugom mail serveru. Jedan od naina da se omogui funkcija mail( ) je da se u fajlu php.ini postavi vrednost za smtp (samo za Windows). To reenje uspeva, na primer, ako va dobavlja Interneta ima SMTP adresu koju moete da koristite. Naalost, tu vrednost ne moete da koristite ako SMTP server vaeg dobavljaa zahteva proveru autentinosti. Za Windows, postoji i niz besplatnih SMTP servera, kao to je Mercury. On se instalira zajedno sa XAMPP-om, a moete i sami da ga instalirate bez XAMPP-a. Mac OS X se isporuuje sa instaliranim mail serverom postfix i/ili sendmail koji treba omoguiti. Posluite se Google-om da biste pronali uputstva za runo omoguavanje vaeg mail servera na Mac OS X-u. Druga mogunost je da pretraite neke biblioteke PHP koda i nauite kako da koristite SMTP server koji zahteva proveru autentinosti.

XX Iz razloga bezbednosti, nemojte

menjati originalne parametre. Samo ih pretvorite u komentare (stavite znak taka i zarez ispred njih) a zatim dodajte nov, izmenjeni red iza toga.
XX Dodajte komentar (pomou znaka

taka i zarez) da biste oznaili ta ste menjali i kada. Na primer:


; display_errors = Off ; Sledei red je dodao LEU 08/28/2011 display_errors = On

5. Sauvajte fajl php.ini . 6. Pokrenite ponovo veb server. Ne morate ponovo da pokreete ceo raunar, samo aplikaciju veb servera (Apache, IIS, itd.). Kako ete to da uradite, zavisi od aplikacije koju koristite, od operativnog sistema i od metoda instalacije. Korisnici Windowsa mogu da koriste kontrolni panel XAMPP. Korisnici Mac OS X-a mogu da koriste kontrolni panel MAMP. Korisnici Unix-a obino mogu prosto u prozor Terminal da upiu apachectl graceful. 7. Izvrite ponovo skript phpinfo.php kako biste proverili da li su izmene sprovedene.
SAVET Ako uredite fajl php.ini i ponovo pokrenete veb server ali vae izmene nemaju dejstvo, proverite da li ste menjali pravi fajl php.ini (mogue je da na raunaru imate vie njih). SAVET MAMP PRO na Mac OS X-u koristi za fajl php.ini jedan ablon koji mora da se ureuje u samom MAMP PRO-u. Da biste menjali PHP parametre ako koristite MAMP PRO, izaberite File > Edit Template > PHP X.X.X php.ini.

Instalacija A17

Konfigurisanje Apache-a
Novost u ovom izdanju knjige je ovaj odeljak, koji sadri uvod u konfigurisanje veb servera Apache. Isto kao PHP, Apache je tehnologija otvorenog koda, a postao je preovlaujua sila u veb tehnologijama. Ako ste na svoj raunar instalirali XAMPP ili MAMP, vi sada imate funkcionalnu verziju Apache-a. Ako koristite udomljeni veb sajt, vie je nego verovatno da i tamo imate Apache. Poto instaliraju Apache sa podrkom za PHP, mnogi PHP programeri vie ne razmiljaju o veb serveru. Ali, kako sve vie uite o razvoju za Veb, sledei logian korak je da uite malo vie o Apache-u. Najei razlog da bolje prouite Apache je, izmeu ostalog, mogunost da radite sledee:
n n

Na primer, ako imate www.example.com/ nekidir/.htaccess, svaki zahtev za www. example.com/nekidir/bilota trai se itanje tog .htaccess fajla, kao i itanje fajla .htaccess koji moda postoji u www. example.com/. S druge strane, u okruenjima deljenog udomljavanja (engl. shared hosting), pojedinanim korisnicima nije dozvoljeno prilagoavanje cele Apache konfiguracije, ali im se moe dozvoliti da koriste .htaccess i vre promene koje utiu samo na njihov sajt. Na sledeih nekoliko strana, objasniu neke od osnovnih pojmova za rad sa te dve vrste fajlova. Pri tom ete nauiti da vrite neka standardna prilagoavanja Apache-a.
SAVET Za svaki sluaj, preporuio bih da, pre vrenja bilo koje od sledeih izmena, napravite rezervnu kopiju vaeg originalnog konfiguracionog fajla Apache. SAVET U ovoj knjizi ne mogu adekvatno da objasnim kako se omoguava HTTPS (HTTP preko SSL-a) poto se kljuna komponenta pribavljanje i instaliranje SSL sertifikata previe razlikuje od jednog oveka i servera do drugog. Potraite onlajn konkretne detalje, ili postavite poruku na moje forume podrke (www.LarryUllman.com/forums/), ako vam treba pomo. Ako imate udomljeni nalog u kojem elite da omoguite SSL, razgovarajte sa svojom kompanijom domainom.

Pravite virtualne raunare Dodajete podrku za Secure Sockets Layer (SSL) titite direktorijume Omoguite prepravljanja URL-a

n n

Te, i druge izmene ponaanja Apache-a, mogu da se izvre na dva naina: ureivanjem osnovnog (primarnog), konfiguracionog fajla ili pravljenjem fajlova za konkretne direktorijume. Osnovni konfiguracioni fajl je httpd.conf, nalazi se u direktorijumu conf, a diktatira ponaanje celog veb servera Apache . U veb direktorijume se stavljaju fajlovi .htaccess (izgovara se H-T akses) i koriste se da bi uticali na ponaanje Apache-a unutar tog konkretnog foldera i njegovih podfoldera. Uopteno govorei, bolje je da se menja fajl httpd.conf, poto veb server mora da ga uita jedino prilikom pokretanja servera. Naprotiv, .htaccess fajlove veb server mora da ita za svaki zahtev nad neim na ta se taj .htaccess fajl primenjuje.
A18Dodatak A:Instalacija

Pravljenje virtualnih raunara


Kada instalirate Apache na jedan raunar, Apache je podeen da opsluuje jedan veb sajt, kao www.example.com. Za opsluivanje veb sajta, Apache na serveru pridruuje jedno ime raunara (i/ili jednu IP adresu) jednom direktorijumu, koji se nazove koren veb dokumenata (engl. Web document root). Kada korisnik poseuje www.example.com, Apache mu daje fajlove iz direktorijuma tog sajta A . Meutim, Apache moe lako da se konfigurie da opsluuje vie razliitih sajtova, koji su svi udomljeni na istom raunaru, tako to se naprave virtualni raunari (engl. virtual hosts). Poto uspostavite jedan ili vie virtualnih raunara, Apache

e znati da kada korisnik uputi zahtev za


www.example.com, treba da mu ponudi

dokumente iz direktorijuma X , a da zahteve za www.example.net treba usmeriti na dokumente iz direktorijuma Y B . Morate da znate da time to ste postavili virtualne domaine, www.example. com ili www.example.net, oni ne postaju, stvarno, vaea imena domena, dostupna preko Interneta. Da bi se to omoguilo, potrebno je ukljuivanje DNS-a (Domain Name System), to je mnogo komplikovanija tema. Meutim, virtualne raunare moete da koristite da biste na svom kunom raunaru napravili vie raunara potrebnih za vae vlastite rezvojne projekte, kako je objanjeno u sledeim takama.

neki folder

ukazuje na ovo

A Veb server pridruuje URL ili ime domaina jednom direktorijumu ili fajlu na raunaru.

neki folder ukazuje na ovo

ukazuje na ovo

B Zahvaljujui virtualnim raunarima, razni direktorijumi na raunaru mogu da budu pridrueni razliitim imenima domaina.

Instalacija A19

Da biste napravili virtualni raunar:


1. Otvorite httpd.conf u bilo kojem tekst editoru ili IDE okruenju. Ako koristite XAMPP na Windowsu, fajl koji treba da otvorite je C:\xampp\ apache\conf\httpd.conf (ukoliko ste XAMPP instalirali na osnovni disk C ). Ako koristite MAMP na Mac OS X-u, fajl koji treba da otvorite je /Applications/MAMP/conf/apache/httpd.conf. Skreem vam panju da ako koristite MAMP Pro, virtualne raunare moete da pravite u kontrolnom panelu te aplikacije. 2. Na sam kraj konfiguracionog fajla, dodajte:
NameVirtualHost 127.0.0.1

Oznake VirtualHost se koriste da bi se napravio nov virtualni raunar. Za svaku poetnu oznaku, mora da postoji i zavrna. U okviru poetne oznake, navodi se IP adresa ili ime raunara na koji treba motriti, ovde je to: 127.0.0.1. Ova vrednost mora da odgovara vrednosti u redu NameVirtualHost. Preostali deo definicije virtualnog raunara dolazi izmeu poetne i zavrne oznake. 4. Meu oznake virtualnog raunara, dodajte:
DocumentRoot /putanja/do/folder ServerName imeservera

Virtualni raunari se uobiajeno definiu na kraju konfiguracionog fajla (ili u zasebnom konfiguracionom fajlu, koji se ukljuuje u ovaj). Ovim redom se kae da Apache treba na IP adresi 127.0.0.1 da motri na imenovane (engl. named ) virtualne raunare (za razliku od virtualnih raunara sa IP adresom) . Ovo je specijalna IP adresa, koja se uvek izjednaava sa localhost (tj., ovim istim raunarom). Zavisno od vaeg servera, ovaj red moda ve postoji u konfiguracionom fajlu, ali ispred njega stoji znak #, ime taj red postaje komentar (tj., nema efekta). U tom sluaju, samo uklonite #. 3. U sledeem redu, dodajte:
<VirtualHost 127.0.0.1> </VirtualHost>

Direktiva DocumentRoot ukazuje na koreni veb direktorijum za taj virtualni raunar: drugim reima, gde se nalaze sami fajlovi ovog sajta. Za XAMPP naWindowsu, ta vrednost moe da bude C:/xampp/htdocs/neto. Za MAMP na Mac OS X-u, ta vrednost bi mogla da bude /Applications/MAMP/ htdocs/neto.
ServerName je red gde stavljate

imeraunara: ono to ete unositi u pretraiva da biste pristupili ovom sajtu. Na primer, kad biste hteli da napravite virtualni raunar za sajt forums iz poglavlja 17 Tabla za poruke, mogli biste unutar htdocs, da napravite nov folder po imenu forums, i kopirate u njega sve odgovarajue skriptove. Tada biste kao vrednost za DocumentRoot upotrebili C:/xampp/htdocs/forums ili
/Applications/MAMP/htdocs/forums. Za vrednost ServerName, izabrao bih neto razumljivo, kao forums.local:

lokalna verzija sajta forums.

A20Dodatak A:Instalacija

5. Dodajte jo jedan virtualni raunar za localhost C :


<VirtualHost 127.0.0.1> DocumentRoot C:/xampp/htdocs ServerName localhost </VirtualHost>

SAVET Apache-ov podrazumevani konfiguracioni fajl, httpd.conf, sadri komentare koji opisuju ulogu svakog odeljka koda. Pregledajte ga da biste nauili poneto o konfigurisanju Apache-a. SAVET Vrednost za DocumentRoot, kao i svaka druga vrednost u fajlu httpd.conf, mora da se stavi u navodnike ako sadri razmake. SAVET Definicija virtualnog raunara moe da sadri i druge direktive, ali ovde pokuavam da izloim osnovne koncepte Apache-a na to je mogue jednostavniji nain. SAVET U stvari je poeljno da Apache motri na aktivnost samo na jednom konkretnom portu, obino je to 80. U tom sluaju bi konfigurisanje virtualnog raunara poelo sa

U prethodnim takama smo napravili nov virtualni raunar, ali tim postupkom prvobitni veb sajt (localhost, podrazumevani sajt vaeg raunara) postaje neupotrebljiv. Reenje je da se napravi jo jedan virtualni raunar za taj sajt. 6. Sauvajte konfiguracioni fajl. 7. Ponovo pokrenite Apache. Nijedna promena konfiguracionog fajla nema efekta dok se veb server ponovo ne pokrene. Apache moete ponovo da pokrenete pomou kontrolnog panela XAMPP ili MAMP. Ako postoji greka u konfiguracionom fajlu, Apache nee moi da se pokrene, pa ete morati da pregledate evidencije greaka (engl. error logs) da biste utvrdili zbog ega. Primetiete da jo uvek ne moete da pristupite virtualnom raunaru pomou veb pretraivaa, poto tek treba da aurirate listu domaina u vaem raunaru.

NameVirtualHost 127.0.0.1:80 <VirtualHost 127.0.0.1:80>


Ali poto MAMP na Mac OS X-u i XAMPP, zavisno od moguih konflikata, ne koriste uvek port 80, odluio sam se za kd koji nee praviti probleme. SAVET Na velikom veb serveru, bolje je napraviti vie konfiguracionih fajlova, koje zatim osnovni konfiguracioni fajl uitava i koristi. Na vlastitom personalnom raunaru, bez previe prilagoavanja, dovoljan je jedan konfiguracioni fajl.

C Nove direktive dodate na kraj Apache-ovog konfiguracionog fajla.

Instalacija A21

Auriranje liste domaina na vaem raunaru


U prethodnim takama smo u Apache-u napravili virtualni raunar da bi se, u ovom primeru, u veb pretraivau pristupalo veb sajtu forums preko URL-a http://forums. local. Meutim, tu postoji zakoljica: kad biste taj URL uneli u svoj pretraiva, pretraiva bi pokuao da nae forums. local na Internetu i tamo ga ne bi pronaao D . Da bi se reila ova dilema, morate da obavestite va pretraiva (odnosno, pretraivae) da se forums.local nalazi na vaem raunaru. To ete postii izmenom fajla hosts vaeg operativnog sistema, po sledeem uputstvu.

D Poruka u Internet Exploreru kada on ne moe da pronae lokalni virtualni raunar.

Da biste aurirali fajl hosts vaeg raunara:


1. Otvorite fajl hosts vaeg raunara u bilo kojem tekst editoru ili IDE okruenju. Ovo je jedini teak deo ovog procesa: pronalaenje i otvaranje fajla hosts. Na Mac OS X-u i Unix-u, fajl domaina je / etc/hosts (fajl nema ekstenziju), gde se / odnosi na osnovni direktorijum raunara. Na Mac OS X-u, /etc je sakriven (engl. hidden) direktorijum, pa je tako hosts sakriven fajl. Postoje tri laka naina da se ovaj fajl pronae:
XX Upotrebite svoju editorsku aplikaciju i

E Za pristupanje sakrivenim direktorijumima moe se upotrebiti Finderova opcija Go > Go to Folder.

otvorite fajl direktno, ako je aplikacija u stanju da otvara sakrivene fajlove.


XX U Finder-u, izaberite Go > Go To

Folder, pa u zahtev za unos upiite / etc F kako biste otvorili direktorijum /etc u Finder-u. Zatim prevucite fajl hosts u editorsku aplikaciju u doku???in the Dock.
XX Upotrebite Terminal kako biste pro-

nali i otvorili fajl.

A22Dodatak A:Instalacija

Na Windowsu, osim u nestandardnim instalacijama, fajl o kojem je re je C:\


Windows\System32\drivers\etc\ hosts. Naalost, kad pokuate da

uredite ovaj fajl mogu se pojaviti pitanja dozvola. Ja sam imao sree to sam otvorio Notepad u administratorskom reimu (pritiskom na Notepad u meniju Start desnim tasterom mia dobija se i ta opcija F ), a zatim sam otvorio fajl iz Notepada. 2. Na samom kraju fajla, dodajte:
127.0.0.1 forums.local

Time se ime forums.local pridruuje IP adresi 127.0.0.1, to znai ovaj isti raunar. 3. Sauvajte fajl.
F Da biste ureivali sistemske fajlove moete da

otvorite Notepad u administratorskom reimu.

4. Uitajte http://forums.local u svoj veb pretraiva G .


SAVET Svaki put kad hoete da pravite nov projekat veb sajta sa vlastitim pridruenim imenom domaina, ponovite ova dva niza taaka pravljenje virtualnog raunara u Apache-u i dodavanje tog raunara u va fajl hosts.

Korienje .htaccess fajlova


http://forums.local.

G Sajt forums, dostupan lokalno preko URL-a

Kao to je ve reeno, kompletno konfigurisanje Apache-a moe da se izvri u fajlu httpd.conf. U stvari, to je najbolje. Meutim, nije vam uvek dozvoljeno da menjate konfiguracioni fajl, pa vredi nauiti kako se za menjanje nain na koji sajt funkcionie koriste fajlovi .htaccess. Fajl .htaccess je naprosto obian tekstualni fajl, pod imenom .htaccess (ni on nema ekstenziju fajla, a zbog poetne take je sakriven). Kada se fajl .htaccess postavi u neki veb direktorijum, direktive definisane u njemu vae na taj direktorijum i njegove poddirektorijume.
nastavalja se na sledeoj strani

Instalacija A23

Uobiajena prepreka pri korienju .htaccess fajlova su dozvole potrebne da bi .htaccess mogao da menja ponaanje servera. Zavisno od instalacije i konfiguracije, Apache, na najstroem nivou bezbednosti, ne dozvoljava da .htaccess fajlovi menjaju njegovo ponaanje. To se postie ovakvim kodom, u fajlu httpd.conf:
<Directory /> AllowOverride None </Directory>

Direktiva AllowOverride prihvata jedan ili vie indikatora koji ukazuju na to ta se, konkretno, moe nadjaati:
n

AuthConfig konfigurisanje pristupanja, za korienje ovlaenja i proveravanja autentinosti FileInfo - ???, za preusmeravanje i prepravljanje URL-a Indexes - indeksi, za izlistavanje sadraja direktorijuma Limit - ograniavanje, za ograniavanje pristupa direktorijumu Options - opcije, za podeavanje ponaanja direktorijuma, kao to je mogunost da se izvravaju CGI (Common Gateway Interface opti interfejs za mreni prolaz) skriptovi ili da se indeksira sadraj foldera All - sve None - nita

Direktiva Directory se u fajlu httpd.conf koristi da bi se ponaanje Apache-a menjalo u nekom konkretnom direktorijumu. U navedenom kodu, cilj je koreni direktorijum (/), to znai da Apache nee dozvoliti nikakvo nadjaavanje (engl. overrides) promene ni u jednom direktorijumu na raunaru. Dakle, pre pravljenja .htaccess fajlova, treba glavni konfiguracioni fajl podesiti tako da dozvoli nadjaavanja u odgovarajuem veb direktorijumu (ili direktorijumima).

n n

Postavljanje podrazumevane stranice direktorijuma


Obino, veb pretraivai upuuju zahteve bez navoenja fajla, kao www.example.com/ili www. example.com/folder/. U tim sluajevima, Apache mora da odlui ta da radi. Tradicionalno, Apache nudi fajl index.htm ili index.html, ukoliko postoji u tom direktorijumu. Ako ne postoji fajl index, a server dozvoljava pretraivanje direktorijuma, Apache e umesto toga ponuditi listu fajlova u direktorijumu (to nije bezbedno, ali bez sumnje ste to ve viali onlajn). Direktiva kojom se Apache upuuje ta da radi u tim situacijama je DirectoryIndex. Iza te direktive stavlja se spisak fajlova koje treba koristiti kao indeks foldera, tako to se vie opcija navodi redosledom prioriteta. Na primer, sledeom direktivom e se pokuati uitavanje index.htm, zatim index.html, ako ne postoji index.htm, zatim index.php, ako ne postoji index. html:
DirectoryIndex index.htm index.html index.php

Slino tome, direktiva ErrorDocument upuuje Apache koji fajl da se ponudi kada doe do serverske greke. Sintaksa je: ErrorDocument kd_greke /stranica.html Vrednost koda greke se uzima iz kodova statusa servera, kao to su 401 (Unauthorized - neovraeno), 403 (Forbidden - zabranjeno) i 500 (Internal Server Error interna serverska greka). Moete da odredite koju stranicu treba ponuditi za svaki kd. Obratite panju na to da navedete apsolutnu putanju do fajlova greaka (tj., zaponite ih sa /, to se odnosi na osnovni veb direktorijum).

A24Dodatak A:Instalacija

Na primer, da bi se dozvolilo nadjaavanje AuthConfig i FileInfo u direktorijumu forums (koji smo upravo napravili), u fajl httpd.conf treba dodati:
<Directory /putanja/do/forums> AllowOverride AuthConfig FileInfo </Directory>

apsolutnu putanju direktorijuma o kojem je re, kao C:\xampp\htdocs\ somedir ili /Applications/MAMP/ htdocs/somedir. 3. Unutar oznaka Directory, dodajte H :
AllowOverride All

Pod uslovom da se ovaj kd nalazi nakon bloka AllowOverride None , fajl .htaccess u direktorijumu forums e moi da menja neke aspekte Apache-ovog ponaanja u radu sa fajlovima iz tog direktorijuma (i njegovih poddirektorijuma).

Ovo je grubo reenje, ali e obaviti posao. Na ivom, javno dostupnom serveru, konkretnije ete odrediti koji parametri mogu da se nadjaaju, ali na vaem kunom raunaru, to nee predstavljati problem. 4. Sauvajte konfiguracioni fajl. 5. Ponovo pokrenite Apache.
SAVET Direktiva Directory ne mora da se postavi u okviru oznake VirtualHost za sajt o kojem je re, ali je logino da se tu postavi. SAVET Ako direktorijumu nije dozvoljeno da nadjaava neki parametar, fajl .htaccess e se jednostavno zanemariti. SAVET Sve to moe da se postigne unutar .htaccess fajla, moe se postii i pomou oznake Directory u fajlu httpd.conf.

Da biste omoguili .htaccess nadjaavanja:


1. Otvorite httpd.conf u bilo kojem tekst editoru ili IDE okruenju. 2. U okviru oznaka VirtualHost za sajt o kojem je re, dodajte:
<Directory /putanja/do/direktorijum> </Directory>

Oznakom Directory se prilagoava ponaanje Apache-a unutar konkretnog direktorijuma ili njegovih poddirektorijuma. Unutar poetne oznake, navedite

H Aurirana konfiguracija virtualnog raunara, koja sada dozvoljava nadjaavanja u veb direktorijumu forums.

Instalacija A25

Zatieni direktorijumi
Uobiajena primena .htaccess fajla je da se zatiti sadraj direktorijuma. Mogua su dva scenarija:
n n

tano to: slui kao proksi skript da bi se prikazala slika koja se uva izvan korena veb dokumenata (tj., inae je nedostupna veb pretraivau). Da bi se pristup ograniio samo na ovlaene korisnike postoji vie naina, ali je modul mod_auth najosnovniji i najee se koristi. Ovaj modul pravi u pretraivau zahtev za unos u koji korisnik moe da unese svoja ovlaenja I . Apache zatim poredi ta ovlaenja sa podacima sauvanim u jednom fajlu na serveru, a nakon toga odobrava ili odbija pristup. Modul mod_auth nije teak za upotrebu, ali morate da pozovete jo jednu Apache alatku da biste napravili fajl ovlaenja. Ako hoete da krenete tim putem, potraite Apache-ov mod_auth na Internetu.
SAVET Apache, podrazumevano, nee prikazati .htaccess fajlove u veb pretraivau, to predstavlja pametnu meru bezbednosti. SAVET Kada pravite .htaccess fajlove, proverite da li va tekst editor ili IDE okruenje tajno ne dodaje ekstenziju .txt. Notepad, na primer, ima taj obiaj. Utvrdiete da se to desilo ako vam poe za rukom da u svom veb pretraivau uitate www. example.com/.htaccess.txt. U Notepadu, moete da spreite dodavanje te ekstenzije ako stavite ime fajla u navodnike i sauvate ga kao All files.

Odbijanje svakog pristupa Ograniavanje pristupa na ovlaene korisnike

Koliko god to delovalo udno, postoje mnoge situacije u kojima fajlovi i folderi u veb direktorijumu treba da budu nedostupni. Na primer, mogli ste da napravite direktorijum includes koji sadri osetljive PHP skriptove ili direktorijum uploads za uvanje otpremljenih fajlova. U oba sluaja, sadraj direktorijuma nije namenjen direktnom pristupanju, ve slui PHP skriptovima iz drugih direktorijuma za referenciranje tog sadraja prema potrebi. Da biste odbili svaki pristup direktorijumu, postavite kd iz skripta A.3 u .htaccess fajl u tom folderu (komentari opisuju ulogu svakog reda). Ponavljam, ovim kodom se samo spreava direktno pristupanje sadraju tog direktorijuma putem veb pretraivaa. PHP skrip), tovi jo uvek mogu da koriste include( require( ), readfile( ) i druge funkcije za pristupanje tom sadraju. U stvari, skript show_image.php iz poglavlja 11 radi
Script A.3 Ovaj kd, u .htaccess fajlu, spreie pristupanje sadraju direktorijuma i njegovih poddirektorijuma.
1 # Onemoguavanje pretraivanja direktorijuma: 2 Options All -Indexes 3 4 # Spreavanje listanja foldera: 5 IndexIgnore * 6 7 # Spreavanje pristupa svim fajlovima: 8 <FilesMatch ^.*$> 9 Order Allow,Deny 10 Deny from all 11 </FilesMatch>

I Ovaj zahtev za unos, prikazan u Internet Exploreru na Windowsu, generie Apache da bi se pristup ograniio samo na ovlaene korisnike.

A26Dodatak A:Instalacija

Omoguavanje prepravljanja URL-a


Poslednja tema o kojoj e biti rei u ovom dodatku je kako se vri prepravljanje URL-a (engl. URL rewriting). Prepravljanje URL-a je sve aktuelnije u sklopu arogantnog insistiranja na optimizaciji maina za pretraivanje (SEO Search Engine Optimization), ali se prepravljanje URL-a ve godinama uspeno koristi. U dinamiki upravljanom sajtu, kao to je sajt za etrgovinu, esto se stranici u URL-u predaje neka vrednost kojom se ukazuje na kategoriju proizvoda koje treba prikazati, pa se dobija URL kao to je www.example. com/category.php?id=23. PHP skript, category.php, zatim koristi vrednost iz $_ GET[id] za biranje proizvoda koje izvlai iz baze podataka i prikazuje ih. (U ovoj knjizi ima mnogo slinih primera.) Kad se primenjuje prepravljanje URL-a, URL koji se prikazuje u pretraivau, koji je vidljiv krajnjem korisniku i koji se pominje u rezultatima maine za pretraivanje, moe da se pretvori u neto oiglednije razumljivo, kao www.example.com/category/23/ ili, jo bolje, www.example.com/ category/garden+gnomes/ jer e Apache, preko prepravljanja URL-a, da uzme taj korisniku razumljiviji URL i ralaniti ga u neto to je upotrebljivo u PHP skriptu. To je mogue zahvaljujui Apache modulu mod_rewrite. Da bi se modul koristio, .htaccess fajl mora prvo da ispita prisustvo modula i da ukljui mainu za prepravljanje (engl. rewrite engine):
<IfModule mod_rewrite.c> RewriteEngine on </IfModule>

Na primer, mogli biste da uradite sledee (mada to nije dobra primena za mod_ rewrite):
RewriteRule nekastranica.php drugastranica.php

Deo potekoa sa prepravljanjem URL-a je to to su za veinu fleksibilnih uzoraka potrebni regularni izrazi kompatibilni sa Perl-om (PCRE Perl-Compatible Regular Expressions). Ako jo niste veti u korienju regularnih izraza, treba da proitate poglavlje 14 Regularni izrazi kompatibilni sa Perl-om, da biste mogli da pratite ostatak ovog teksta. Na primer, da bi se www.example.com/ category/23 pretvorilo u www.example. com/category.php?id=23, potrebno je sledee pravilo:
RewriteRule ^category/([0-9]+)/?$ category.php?id=$1

Poetni karet (^) kae da izraz mora da pone na poetku stringa. Tu mora da doe re category, i nakon toga kosa crta. Zatim sledi neodreen broj cifara, koje zakljuuje neobavezna kosa crta (ime se dozvoljava kako category/23 tako i category/23/). Dolarski znak zakljuuje uzorak, to znai da iza neobavezne kose crte ne sme da bude nita. To je uzorak za ovaj primer (a to je zaista jednostavan uzorak). Samo prepravljanje se izvodi bez znanja veb pretraivaa i krajnjeg korisnika. U ovom redu, to je category.php?id=$1. Deo $1 je upuivanje na prvu grupu u zagradi u uzorku (tj., 23). Znai, www.example.com/category/23 se u serveru posmatra kao da je URL glasio www. example.com/category.php?id=23.
nastavalja se na sledeoj strani

Nakon ukljuivanja maine, a pre zavrne oznake IfModule, moete da dodate pravila za prepravljajnje. Sintaksa je:
RewriteRule uzorak zamena

Instalacija A27

To je osnovni preduslov za mod_rewrite. Naalost, za ovladavanje modulom mod_ rewrite neophodno je majstorstvo, ili takorei majstorstvo u regularnim izrazima (PCRE), to moe da bude zastraujue. Ako elite da ovo vebate, moete da uzmete upravo objanjen jednostavan primer i primenite ga na bilo koji primer u knjizi u kojem se u URL-u predavala neka vrednost. Na primer, u poglavlju 10 Uobiajene tehnike programiranja, skriptovima delete_user.php i edit_user.php se u URL-u prosleuje ID korisnika. Oboje bi moglo da se pretvori u lepe URL-e, kao to su www.example.com/delete/45/ ili www.example.com/edit/895/. Kao uvek, potraite onlajn dodatne informacije o ovoj temi, ako vas to zanima, i postavite pitanje na forumima za podrku (www.LarryUllman.com/forums/) ako naiete na probleme.

Menjanje PHP konfiguracije


Ako se PHP izvrava kao Apache modul, takoe moete pomou Apache-ovog .htaccess fajla da menjate kako se PHP izvrava u konkretnim direktorijumima. Odgovarajue direktive su php_flag i php_value: php_flag stavka vrednost php_value stavka vrednost Direktiva php_flag se koristi za parametre sa vrednostima on ili off; php_value je za ostale parametre. Na primer:
php_flag display_errors on php_value error_reporting 30719

Obratite panju na to da ne mogu da se koriste PHP konstante, kao to je E_ALL za najvii nivo izvetavanja o grekama, poto se ovaj kd nalazi u Apache-ovim konfiguracionim fajlovima, a ne u PHP skriptovima. (Nain izvravanja PHP-a moe da se menja i ureivanjem fajla httpd.conf, ali ako ve uvodite globalnu izmenu servera za koju je potrebno ponovno pokretanje Apache-a, mogli biste umesto toga jednostavno da izmenite PHP-ov konfiguracioni fajl).

A28Dodatak A:Instalacija

You might also like