Posle otkrića da je elitesecurity forum osetljiv na XSS (cross site scripting) hakeri su očigledno iskoristivši pomenuti propust napali ES i tom prilikom preuzeli privilegije pojedinih super modova tamo. Tom prilikom obrisali su gomilu tema, a nažalost i dosta top tema koje sam svojevremeno kao moderator postavljao na PHP forum.
Srećom, možda najvrednija od svih koje sam tamo pisao (barem za početnike) PHP FAQ je preživela. Da ne bih čekao novu sramotu EliteSecurity-a i dopustio da i ova tema ode u nepovrat skinuo sam ceo tekst i rešio da ga postavim ovde. Verujem da će tekst biti od koristi svima koji počinju da se bave PHP-om.
PHP FAQ
—————————–
Q: šta je to PHP ?
A: PHP je veoma popularan scripting jezik. Sintaksom je veoma sličan jezicima C, Java i Perl. Najčešće se koristi za server side scripting ali to nisu i jedine oblasti njegove primene.
Q: šta znači skraćenica PHP:
A: PHP predstavlja rekurzivnu skraćenicu za “PHP: Hypertext Preprocessor”. Ovo je takozvana rekurzivna skraćenica jer je prva reč skraćenice takođe skraćenica.
Q: Za šta se koristi PHP
A: PHP se uglavom koristi za server side scripting, jer omogućava da na jednostavan način uradite sve što neki CGI program može kao na primer, da obrađujete podatke sa html formi, generišete html strane dinamički i sl. Ali to to nije i njegova jedina primena.
Postoje tri oblasti gde se PHP scriptovi mogu koristiti:
1) Server-side scripting.
Ovo je ujedno oblast gde se PHP najčešće primenjuje. Za razliku od JavaScript-a gde se scriptovi izvršavaju na klijentu (browseru), server side scriptovi se izvršavaju na serveru. Potrebne su vam tri stvari: Web server (Apache, IIS, …), browser (Internet Explorer, Mozilla …) i PHP parser. Poput html strane, vas php script (koji moze biti mesavina html-a i php-a) postavite na Web server i izvrsavate ga pristupanjem scriptu preko browsera.
2) Command line scripting.
Ovaj način korišćenja PHP-a je idealan za administrativne zadatke (backup baze, reload konfiguracije i sl), slanje velikog broja mailova itd. koji se setuju tako da se scriptovi izvršavaju u unapred definisano vreme preko cron (*nix) ili Task Scheduler (Windows) servisa. Pogledajte odgovarajuću sekciju u php manualu za vise informacija.
3) Desktop Aplikacije
PHP omogućava i razvoj standalone GUI aplikacija korišćenjem PHP-GTK ektenzije. Za više informacija posetite PHP-GTK sajt.
Q: Kako da instaliram PHP na *nix-u
A: Odaberite upustvo iz php manuala za Web server koji koristite na http://www.php.net/manual/en/install.unix.php. Najlakše vam je da instalirate PHP kao apache module.
Sledi kompletno upustvo za Apache 1.3.x i php na nacin koji preferira autor ovog teksta.
1) Downloadujte poslednju 1.3.x verziju apache Web servera npr:
wget -c http://mirror.etf.bg.ac.yu/apache/httpd/apache_1.3.33.tar.gz
2) Downloadujte poslednju verziju php-a sa www.php.net npr za php4:
wget -c http://www.php.net/get/php-4.3.10.tar.bz2/from/yu.php.net/mirror
3) Premestite oba fajla (apache_1.3.33.tar.gz i php-4.3.10.tar.bz2) u /usr/src npr: mv apache_1.3.33.tar.gz php-4.3.10.tar.bz2 /usr/src
4) instalacija apache-a
Code: cd /usr/src tar -xzvf apache_1.3.33.tar.gz cd apache_1.3.33 ./configure –prefix=/usr/local/apache –enable-module=so make make install |
5) Instalacija PHP-a sa podrskom za mysql (mysql mora biti vec instaliran):
Code: cd /usr/src tar -xjvf php-4.3.10.tar.bz2 cd php-4.3.10 ./configure –with-apxs=/usr/local/apache/bin/apxs –with-mysql=/usr/ make make install cp php.ini-dist /usr/local/lib/php.ini |
6) Podesavanje apache-a
Izmenite httpd.conf fajl (u gornjoj instalaciji /usr/local/apache/conf/httpd.conf) i dodajte sledece:
U LoadModule sekciji:
(Ako instalirate PHP4)
Code: LoadModule php4_module libexec/libphp4.so |
(Ako instalirate PHP5)
Code: LoadModule php5_module libexec/libphp5.so |
U AddModule sekciji:
(Ako instalirate PHP4)
Code: AddModule mod_php4.c |
(Ako instalirate PHP5)
Code: AddModule mod_php5.c |
U AddType sekciji dodajte sledecu liniju:
Code: AddType application/x-httpd-php .php |
7) Startujte apache: /usr/local/apache/bin/apachectl start
8) Kreirajte test.php fajl:
Code: <?php phpinfo(); ?> |
i snimite ga u doc root (/usr/local/apache/htdocs).
9) Startujte browser i ukucajte http://localhost/test.php. Ako dobijete izlaz sa svim podacima o instalaciji php-a, vasa instalacija je protekla uspešno. čestitam 🙂
Q: Kako da instaliram PHP na Windowsu
A: Pratite upustvo za vaš Web server na odgovarajućoj strani PHP manuala
Q: Postoji li neki lakši način za instalaciju ?
A: Postoji. Možete iskoristiti PHP Triad ili neki sličan package koji će vam automatski kroz tipičan Windows instaler instalirati tipično PHP okruženje (Apache, PHP, MySQL, phpmyadmin). Ovo je idealno za početnike dok iskusnijim korisnicima apsolutno preporučujem da instalaciju obave manuelno na način koji je to opisano u PHP Manualu.
Q: Kako da počnem sa učenjem PHP-a
A: Ako ste već programirali u nekim programskim jezicima poput C-a ili Jave na primer, sve što vam je potrebno da bi ste počeli sa učenjem PHP-a je PHP Manual. PHP Manual dostupan je Online na http://www.php.net/manual/en/index.php, a ljudima koji nemaju stalnu vezu sa Internetom preporučujem da downloaduju neki od dostupnih formata za offline čitanje. Naročito koristan zbog lako dostupnog indexa i searcha je chm format koji dolazi u osnovnom obliku, a tu je i extended varijanta koja pored ostalog sadrži i komentare korisnika koji nisu dostupni u osnovnom chm manualu. Za korisnike *nix-a za pregled chm manuala preporučujem xchm.
Iako manual praktično polazi od samih osnova, pojedinim početnicima u programiranju kao i ljudima koji ne poznaju dovoljno engleski jezik, može biti teško da uče iz njega. Takvima preporučujem brojne tutorijale na našem jeziku. Za one koji preferiraju papir, dostupno je nekoliko knjiga na srpskom jeziku.
Q: PHP sam uspešno instalirao, kako da podesim neke od njegovih opcija ?
A: PHP sva svoja podešavanja čuva u fajlu php.ini. U zavisnosti od načina na koji ste PHP instalirali, php.ini može biti smešten na različitim mestima. Na windowsu je to najčešće C:\Windows dir, dok je kod Linuxa /usr/local/lib/php.ini.
Promene vrednosti za neku od brojnih php podešavanja najčešće ćete raditi tako što to podešavanje promenite u fajlu php.ini. Na primer, ako želite da setujete PHP direktivu display_error na ON kako bi ste uključili prikaz svih grešaka jednostavno editujte php.ini fajl pomoću nekog tekst editora, i promenite tu opciju. Ako je php instaliran kao server modul (što je i najčešće slučaj), onda imajte u vidu da morate restartovati vaš Web server kako bi nova konfiguracija bila učitana. Za detaljan opis svih opcija prisutnih u php.ini fajlu konsultujte odgovarajuću sekciju PHP Manuala.
Pored globalnih podešavanja koja vršite u fajlu php.ini, ako je php instaliran kao apache modul, podešavanja možete obaviti u apache conf fajlu, bilo na globalnom nivou sa httpd.conf fajlom, bilo sa .htaccess fajlom (ako je odgovarajuća opcija allow_override uključena za dir u kome se nalazi .htaccess fajl). Ovo je naročito zgodno za Linux administratore, jer na ovaj način određenim virtual hostovima možete dodeliti različita podešavanja PHP-a. Pogledajte odgovarajuću sekciju PHP Manuala za više informacija.
Pojedina podešavanja PHP-a možete raditi i “runtime” tokom izvršavanja scripta, koristeći ini_set f-ju. Spisak svih direktiva koje možete promeniti sa ini_set f-jom dostupan je ovde.
Q: Kako da vidim verziju php-a koji je instaliran, uključene ektenzije, podešavanja i slično
A: Vrlo jednostavno, koristite phpinfo f-ju na sledeći način.
1) Kreirajte sledeći php script:
Code: <?php phpinfo(); ?> |
i snimite ga kao recimo phpinfo.php na primer u document root
2) Učitajte script u browser sa recimo http://localhost/phpinfo.php
Ovaj script će generisati gomilu informacija vezanu za php i okruženje na kome je on instaliran, kao na primer configure script koji je korišćen prilikom kompajliranja, uključene direktive, ekstenzije, verziju Web servera na kome se izvršava i slično. Za više informacija pogledajte dokumentaciju o phpinfo f-ji u manualu.
Svaka cast
Pre nego što ću naići na tvoj blog imao sam priliku da se upoznam sa ovim textom na ES forumu i mogu reći da sam se poprilično namučio sa intalacijom PHP-a. Sve se to dešavalo pre nekih 6 meseci i sada je došlo vreme da unapredim PHP5.1.3 u PHP5.1.6, pa sam se prisetio muka koje sam tada prolazio ponovo čitajući ceo tutorijal. Međutim na ES forumu nedavno se pojavio još jedan savet na istoj temi da sa linkom na program Wamp http://www.wampserver.com/en/ . Ovaj program u sebi ima
PHP 5.1.6 + PECL,SQLitemanager ,MySQL 5.0.24a ,Phpmyadmin i sve se konfigurise jednostavno i lako. Da sam ranije video ovo uštedeo bih sebi vreme i živce. Što jednostavno kad može komplikovano, tj. ručno, čitajući gomilu dokumentacije? Odgovor je: da bi naučio nešto, zar ne?