pomoć pri konfiguraciji Apachea/PHP-a/MySQL-a na windows2000/98/NT te kratka uputstva za konfiguriranje PHP-a na PWS/IIS -------------------------------------------------------------------------------- Sadržaj: 1. napomene 2. Apache 3. Php 4. MySQL 5. fileovi potrebni za instalaciju 6. što je potrebno za instalaciju php-a na IIS ili PWS 7. reference prilog: rad s MySQL-om iz Command Prompta ili Shella na udaljenom Linux serveru preko SSH konekcije. početak Napomene: 1. preporučujem da se ne koriste IIS i Apache istovremeno (čak ni na razlicitim portovima) 2. Apache/PHP/MySQL + winMySQLAdmin zauzimaju manje od 20MB RAM memorije uz puno bolji rad nego php na IIS-u 3. Ove upute nastale su u svibnju 2002. godine, nakon instalacije nekoliko vrsti servera (i konfiguracija), prvenstveno iz frustracije prema ljudima koji kažu: "Piše ti u manualu!", zato jer neke stvari pišu u manualu, neke pišu u nekom drugom manualu itd. (znači da oni ni- su dobro čitali manual), te kako bi početnici mogli brzo instalirati Apache i PHP na računalo pod windows sistemom. Dakle, ovaj tekst se može smatrati sintezom manuala i tutoriala za in- stalaciju navedenog. Sve ispravke i sugestije unaprijed pozdravljam u nadi da će biti sve manje ljudi koji se bave programiranjem iz taštine. Tko zna, možda da se nađe nekoliko ljudi i da se pokrene hrvatski site s tutorialima za ASP, PHP, Flash... 4. - isprobani su: AbyssWS, IIS4, IIS6, PWS, Apache 1.3.24 i Apache 2.0.36 zajedno s PHP 4.2.0 i MySQL 3.23.49 na Win98 i Win2000. WinNT ima isti postupak kao win2000. - AbyssWS - malen (oko 100k), jednostavan za konfiguraciju, ali s PHP-om ne funkcionira dobro - IIS, PWS - s minimalnim brojem opcija funkcioniraju dobro. Pomoću installera se izuzetno jednostavno konfiguriraju. Problem je što ne refreshaju stranice kako treba (+ nedostaci navedeni u dokumentaciji) - Apache 2.0.36 - nije proradio s PHP-om, nije uspio učitati modul php4Apache.dll - Apache 1.3.24 - nijedan od navedenih, a ni jedan drugi bug nije do sada zamijećen -preporuka: instalirati neku staru, stabilnu (1.3.x) verziju Apache servera 5. - pored toga, isprobani su instalacijski kompleti koji instaliraju Apache/PHP/MySQL: phpTriad i FoxServ 2.1 - phpTriad radi dobro, ali ima stari PHP (4.0.6), ali nakon verzije 4.1.0 se vidi mnogo izmjena u PHP-u, što zahtjeva instalaciju novijeg PHP-a - FoxServ ne radi!!! Dva puta sam downloadao FoxServ s Belgijskog mirrora (40MB!!!) i instalacijski program detektira 0K slobodnog prostora na bilo kojem driveu. Tko želi, neka proba, ja sam nakon toga radije detaljno proučio manuale i tutoriale ;-)) Ipak, hvala Draženu 'Cacan'-u (cacan-dev@webart.hr) na trudu što mi je pokusao pomoći (tko zna, da probam s nekog drugog mirrrora? :-)). U ovoj arhivi nalazi se konfiguracija za php 4.2.0 i Apache 1.3.24 fileovi koji se tu nalaze (fileovi prekonfigurirani za win2000): 1. php.ini 2. httpd.conf Instalacija je izvršena na slijedeći način: početak __________________________________________________1. APACHE -------------------------------------------------------------------------------- -zaustavljen IIS (FTP server, Web server i SMTP server) -Downloadan Apache 1.3.24, msi installer file sa sitea www.apache.org i instaliran u c:\ folder -Instalacijska aplikacija automatski postavi Apache u c:\Apache folder -upisati ime servera i domenu (localhost) te odabrati sve ponuđene opcije (run as service i sl.) -konfiguriran file httpd.conf -u ovom httpd.conf fileu su izražene konfiguracije za win2000 proffessional, na kojem su php dokumenti unutar e:\root direktorija -ako je portebno (ako imate potrebu staviti dokumente u neki drugi folder), promijeniti sljedeće: DocumentRoot "e:/root" (linija 301) (linija 326) -ako na pr. stavimo dokumente za www.sport.hr u jedan folder, onda bi to trebao biti folder e:\root\sport i u IE se dokument poziva s http://localhost/sport -to se naravno, odnosi na server koji konfigurirate za isprobavanje stranice kod kuće. -Napomena: ovo je najjednostavniji način, ali mogu se i definirati aliasi u httpd.conf fileu. -U odnosu na osnovni httpd.conf file promijenjeno je još (bar) 5 linija 193: LoadModule php4_module c:/php/sapi/php4apache.dll 240: AddModule mod_php4.c 385: DirectoryIndex index.html index.htm index.php 823: AddType application/x-httpd-php .php 824: AddType application/x-httpd-php-source .phps -ako odkomentiravate ponuđene module, budite sigurni da ste odkomentirali i LoadModule i Addmodule liniju -primijetite da se u konfiguraciji patha ne koristi backslash (\) nego forward-slash (/) - ovakav konfiguracijski file spreman je za test i za startanje apachea - tu je definiran i php kao modul a ne kao cgi. U prirucniku za instalaciju PHP-a se NE PREPORUČUJE INSTALIRATI PHP KAO CGI. -Najbolje je izići u MS-DOS prompt i tamo u Apache direktoriju probati apache -t ako je test u redu može se startati Apache: apache -k start -Apache se iz prompta zaustavlja s: apache -k stop za help Apachea: apache -h - Apache se proba ako upišemo http://localhost - tu se moze desiti pogrješka jer u instalaciji Apachea 1.3.24 nema index.html filea pa se izlistaju fileovi sa stranicama dobrodošlice za sve jezike. - Ako nam je potrebno, možemo neki od njih (onaj na engleskom, na pr. preimenovati u index.html) To nije ni bitno, ako smo promijenili ServerRoot jer je root sad u folderu gdje nema tih fileova - Ono zanimljivije čime možemo provjeriti konfiguraciju Apachea je http://localhost/manual/ - Treba napomenuti, http://localhost/manual bez "/" na kraju ne bi radio, osim ako ne promijenimo u konfiguraciji Alias "/manual/" u "/manual" - Apache bi kao takav trebao raditi bez greške početak __________________________________________________ 2. PHP 4.2.0 -------------------------------------------------------------------------------- Instalacija samog PHP-a je jako jednostavna: - Downloadati PHP sa sitea www.php.net, najnoviju stabilnu verziju (za windowse ima verzija za IIS, te verzija za Apache). - Odzipati file (php-4.2.0-Win32.zip) u c:\ (kreirat će se sam folder php-4.2.0) - promijeniti ime foldera u kojem je php (php-4.2.0) u "c:\php" jer tako ćete imati situaciju kakvu opisuju u manualima i tutorialima - kopirati file php4ts.dll u C:\WINNT\system32 direktorij (kod win98 u c:\windows) - u manualu piše da je potrebno u winnt (ili windows za win98) folder kopirati i php.ini file, ali sve dobro funkcionira i kad se kopira dotični file u folder u kojem isprobavate stranice. - konfiguriranje php.ini filea: -najbitnije postavke u php.ini fileu koje su omogućile besprijekoran rad apachea i php 4.2.0 na win2000 proffessional (navedeno po brojevima linija u datom php.ini fileu): 68: engine=On - jedan mali detalj bez kojeg Apache ne moze oživjeti PHP 312: register_globals=Off - iako nije nuzno... 649: browscap=c:\WINNT\system32\inetsrv\browscap.ini - uvjerite se da je file browscap.ini zaista u tom folderu, ako ne promijenite putanju do filea - ista linija se smije i zakomentirati: 649 ;browscap=c:\WINNT\system32\inetsrv\browscap.ini - u c:\php direktoriju kreirajte još dva foldera: sessions i temp Napomena: to se odnosi na izmjene u php.ini fileu u linijama: 402: upload_tmp_dir= c:\php\temp 696: session.save_path= ".;C:\php\sessions" Trebalo bi funkcionirati i ako se zakomentiraju te linije, ali ovako nam se sve smješta unutar c:\php direktorija - isto tako smije se (ali ne mora) zakomentirati linija: 416: from="me@localhost" -nakon svakog prekonfiguriranja php.ini filea najbolje je restartati Apache server (start menu> programs>Apache HTTP Server>Control Apache Server> Restart, ili iz Command Prompta C:\Apache\apache -k restart). - stavite neki php dokument u root svog servera i isprobajte ga. Na pr. s fileom phpinfo.php: - snimio sam ga u e:\root - u Internet Exploreru upisao http://localhost/phpinfo.php i moja php stranica radi! i to bi bilo to što se tiče PHP-a -Za windows sistem, dobro je downloadati još i dokumentaciju u obliku help filea: php_manual_en.chm s www.php.net sitea. početak __________________________________________________3. MySQL -------------------------------------------------------------------------------- - Downloadajte MySQL instalaciju za Windows sistem - Odzipajte file u c:\mysql folder - pokrenite setup.exe - instalirajte mysql tako da prihvatite sve ponuđene opcije (folder u koji se instalira: c:\mysql ) - tako konfiguriran server je instalirao mysqld-nt service (nemojte, dakle, pokušati mysqld-nt --install iz Command Prompta) - startanje i početak rada s mysql-om se nalazi na adresi: "file:///C:/mysql/Docs/manual.html#Windows" (ako ste instalirali, tj. odzipali MySQL. ) - MySQL mozete startati iz Command Prompta pomocu: NET START MySQL (ili možete, sto je više u duhu windowsa kliknuti na aplikaciju C:\mysql\bin\winmysqladmin.exe) - pomoću winmysqladmin.exe alata može se pratiti rad MySQL servera. Za početak nemojte upisati usera i password (kliknite cancel) - ako želite mysql prompt, tada iz command prompta upišite "mysql mysql": c:\mysql\bin> mysql mysql ili c:\mysql\bin> mysql -u root - iz prompta se izlazi s QUIT komandom - MySQL se zaustavlja iz Command Prompta komandom c:\>NET STOP MySQL ili kliknuvši na WinMySQLAdmin (opcija: shut down both) - osnove rada (testiranje) MySQL-a date su u prilogu: rad s MySQL-om iz Command Prompta ili Shella na udaljenom Linux serveru preko SSH konekcije. - dokumentacija MySql-a je opsežna i dovoljno detaljna - dobro je imati i neku aplikaciju za jednostavno manipuliranje tablicama u bazi (kreiranje, mijenjanje recorda, importiranje, exportiranje...) - za tu svrhu koristim alat: MySQLFront-freeware (postoje još i EMS MySQL Manager-shareware, Mascon-shareware i dr.). ---------------------------------------------------------------------------------------------------------------------------------------------------------------- početak 4. Programi potrebni za instalaciju: 1. apache_1.3.24-win32-x86_no_src.msi 2MB -(Apache) 2. php-4.2.0-win32.zip (verzija za apache) -4.9MB (PHP) 3. mysql-3.23.49-win.zip -12.2MB (MySQL server) 4. InstMsi.exe -1.4MB (msi Installer, vjerojatno već instaliran na win2000, ali ako nije nalazi se na microsoft siteu) php_manual_en.chm 2.8MB -(kompletna dokumentacija za php) 4.1. Alati korisni pri radu: 1. Ultraedit32 (shareware) - text editor s numeriranjem linija, syntax highlihtingom za većinu jezika, FTP-om, i gomilom drugih korisnih opcija. 2. Putty (freeware) - Alat za rad u command promptu na udaljenom serveru preko SSH i SSH2 sigurne konekcije 3. MySQLFront (freeware) - sjajan alat kojim se može manipulirati bazama te importirati tablice (čak i iz Accessa) ili eksportirati tablice 4. phpMyAdmin (freeware) - web aplikacija u PHP-u za manipuliranje podacima u bazi. početak 5. Što je potrebno za instalaciju php-a na PWS/IIS: napomena: što se performance tiče, zahvalnije je instalirati php i Apache. Ovo je primjer za instalaciju cgi verzije php-a koja ima svojih nedostataka, ali je jednostavnija od instalacije modula koji zahtjeva mijenjanje reg. filea. Većina nedostataka može se pročitati u manualu, a tu su još i nestabilnost, usporenje i ASP-a i PHP-a i dr. 1. php-4.2.0-win32.zip - verzija za IIS 2. php-4.2.0-installer.exe - instaler za php 4.2.0 (iako se kao modul moze ručno postaviti mijenjajući reg. file) -dodatne izmjene u php.ini fileu za PWS/IIS: 68: engine=On 379: enable_dl=On 385: cgi.force_redirect=off -i ne zaboravite dati execute permission za folder u kojem se nalazi php dokument (iz PWS managera ili IIS managera) Nadam se da je ovaj prilog bio bar nekome od pomoći i ako uočite nepravilnosti, molim javite. Naslov: "Pomoć pri instaliranju Apache 1.3.24, php 4.2.0 i MySQL 3.23.49 na Windows2000" posljednja izmjena: 28.05.2002. Domagoj V. dvulin@hotmail.com Zagreb početak 6. Reference: -php manual s www.php.net -MySQL manual s www.mysql.com -"Installing and Configuring Apache, PHP, MySQL, and phpMyAdmin on Windows 2000" Apr 26, 2002, 16 :48 UTC - Apache Today -"BETA-PRB: CGI Code That Calls External Applications May Fail (Q311481)" - s www.microsoft.com -"Install Apache" - Eduards Online Workshop -"Setup and Install Apache + PHP4 on Windows (as CGI)" - www.thickbook.com + forumi, newsletteri. početak prilog: rad s MySQL-om iz Command Prompta ili Shella na udaljenom Linux serveru preko SSH sigurne konekcije. - U mom slučaju testiram kod kuće stranice koje kasnije uploadam na Linux server skoro identične konfiguracije kao i na mom računalu (sličan php.ini file, Apache 3.2.24, PhP 4.1.2 ...) - Spajanje preko Telneta nije izvedivo, pa sam stoga downloadao SSH client zvan PuTTY (freeware) pomoću kojeg se vrlo jednostavno mogu konektirati na udaljeni Linux server te raditi u njegovom shellu (na windowsima = command promptu). - Osnovne SQL instrukcije mogu se uputiti pomoću MySQLAdmin aplikacije i iz MySQL prompta, ali to je sigurno nespretno ako se zeli manipulirati većim bazama i tablicama. - U tu svrhu sam downloadao 2 programa: 1. MySQL-Front kojim uređujem i mijenjam tablice i baze kod kuće 2. phpMyAdmin - php aplikaciju koju sam uploadao na server i s kojom mogu preko weba manipulirati tablicama. - phpMyAdmin mora biti u folderu kojem nije dozvoljen pristup običnom useru. U mom slučaju, jer namjeravam administrirati bazu od bilo kuda, jednostavno maknem sve permissione za taj folder (CHMOD 700) pomoću PuTTY-a ili nekog FTP alata. Tako ću moći administrirati bazu s bilo kojeg računala koje ima Internet Explorer i to tako da u IE-u izmijenim permission tako da se može pristupiti phpMyAdminu (ftp://user:zaporka@ftp.mojsite.hr, kliknem na željeni folder desnu tipku, >properties i začekiram potrebne checkbox-e), a zatim preko weba izmijenim bazu (www.mojsite.hr/phpMyAdmin). Nakon rada s bazom, ponovo bih oduzeo permissione na taj folder. - u konfiguracijskom fileu phpMyAdmina treba navesti url sitea na kojem će se nalaziti. - pomoću phpMyAdmina mogu dumpati tablice u bazu na serveru i iz baze. Tu dolazi MySQL-Front koji može exportirati bazu u file za dump i isto tako može importirati isto takav file (te mdb, Excel, FoxPro i druge datoteke). Prilično zgodno za tako mali i free programčić, zar ne? - ipak, da se ne bi oslanjali samo na alate, ovdje ću dalje posvetiti više pažnje radu iz shella (tj. iz Command Prompta na Win2000). Unutar shella vrijede skoro identična pravila kao i u Command Promptu (samo što se u shellu služimo unix, a ne DOS komandama). U shell ulazimo pomoću PuTTY-a; ( za upoznavanje s SQL-om pogledati http://www.w3schools.com online SQL tutorial) iz shella: ---------------- spajanje na mysql server: mysql -h -u -p -h je potreban jedino ako shell i mysql server nisu na istom računalu, najcesce se izostavi. -u je ime dotičnog usera (ako nije definiran, onda je to root) -p definira da li da upita za password - definira koju bazu da selektira Napomena:imena tablica, kolona i baza su Case Sensitive (SQL instrukcije nisu) 1. Primjer: shell> mysql -u root -p password: mysql> dakle, upitat će nas za password, i ako je password u redu spojit će se na baze - da kreiramo bazu, koristimo: mysql> CREATE DATABASE imebaze; dakle, u konkretnom primjeru možemo kreirati bazu: mysql> CREATE DATABASE baza; -da izlistamo sve baze, potrebno je upisati: mysql> SHOW DATABASES; - da promijenimo selektiranu bazu, upišemo: mysql> USE imebaze; - upišite quit ili exit mysql> quit shell> mysql -u root -p baza password: mysql> dakle, upitat će nas za password, i ako je password u redu spojit će se na bazu s imenom "baza". 2. Primjer, kreiranje tablice u trenutno spojenoj bazi: mysql> CREATE TABLE login ( -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ime VARCHAR(15), -> prezime VARCHAR(20), -> telefon VARCHAR(14), -> grad VARCHAR(30), -> sifra VARCHAR(15), -> ); - vidi se kako instrukcija MySQL-u traje sve dok ne upisemo ";" DUMP SQL instrukcija iz filea: --------------------------------- - snimimo u file niz SQL instrukcija (kreiranje tablice, sadržaji recorda) - postavimo file na server - spojimo se preko telneta ili SSH na server te uđemo u shell prompt - dumpanje u bazu se vrši pomocu znaka "<" na slijedeci način (iz shell prompta) mysql -u -p < file.sql 3. Primjer: file: login.sql je u web folderu sadržaj filea: #probna tablica za SQLproba bazu CREATE TABLE login ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ime VARCHAR(30), prezime VARCHAR(30), telefon VARCHAR(14), grad VARCHAR(50), sifra VARCHAR(25), ); shell> mysql -u root -p baza < login.sql password: Time je u bazi spe kreirana tablica students.sql - ovako se može brisati tablicu (if exists je obavezan za dump filea, jer tako izbjegavamo grešku): mysql> DROP TABLE IF EXISTS employees; Na isti način se mogu izvršiti i sve ostale SQL instrukcije iz Command Prompta.