A Web programozsa 1 elads Webszerver teleptse s
A Web programozása 1. előadás Webszerver telepítése és konfigurálása Rózsa Szabolcs BME Általános- és Felsőgeodézia Tanszék
Tartalom • Bevezetés, tárgyismertető • Webszerver telepítése és konfigurálása
Tárgyismertető A tárgy célja: Elsajátítsuk a dinamikus weboldalak fejlesztéséhez szükséges ismereteket, ideértve: - Webszerverek telepítését és konfigurálását, - php fordítókörnyezet telepítését és konfigurálását, - a php programozási ismeretek alapjait, - My. SQL adatbáziskezelő telepítését, illetve a php. My. Admin webes adminisztrációs felület használatát, - adatbázisok kezelését/lekérdezését végző weboldalak fejlesztését.
Tárgyismertető A tárgyról: - 6 alkalommal 3 -3 óra előadás gyakorlattal kombinálva, - vizsgával zárul a tárgy: egy vizsgafeladatot kell megoldani. A vizsgafeladat elkészítése során az említett témakörök ismeretéről kell tanúbizonyságot tenni. - A vizsgafeladat elkészítése önálló, otthoni munka, és bármilyen segédeszköz használható. - Az elkészített vizsgafeladat leadását követően egy szóbeli vizsgával zárul a tárgy, ahol be kell mutatni a vizsgafeladatot, és az azzal kapcsolatos kérdésekre kell választ adni.
HTTP Szerver telepítése Minden gépre feltelepítjük az apache webszervert, majd elvégezzük annak konfigurálását is. A telepítőkészlet elérhető a tárgy honlapjáról:
HTTP Szerver telepítése A webszervert szolgáltatásként installáljuk, a domain név: agt. bme. hu, a szerver név pedig pc. XX. agt. bme. hu:
HTTP Szerver telepítése Ellenőrizzük, hogy fut-e az Apache szolgáltatás (Apache Service Monitor):
HTTP Szerver telepítése Nézzük meg, hogy valóban elérhető-e a szerver: Vegyük észre, hogy a 8080 -as portot használja a szerver defaultként.
HTTP Szerver telepítése Az Apache könyvtárstruktúrája, és a httpd. conf konfigurációs fájl
HTTP szerver konfigurálása (APACHE) A http. conf konfigurációs fájl főbb beállítása: Port megadása: A HTTP kérések fogadásához felhasznált port megadása: általánosan a 80 -as portot használjuk, de ettől eltérő portokat is igénybe lehet venni. Ekkor a böngészőben az URL –ben meg kell adni a port számát is. Pl. a 8080 -as port esetén: http: //www. server. domain: 8080 ### Section 1: Global Environment A szerver alapvető működéséhez szükséges beállítások. Ált. célszerű változatlanul hagyni, kivéve: Listen 8080 - a HTTP kérelmek fogadásának portjai. Feladat: Állítsuk át a portot 80 -ra!
HTTP szerver konfigurálása (APACHE) Szerverbeállítások: Ezek a beállítások a ### Section 2: 'Main' server configuration részben találhatóak: A webmester e-mail címének megadása: Server. Admin webmaster@pc 1. lab. agt. bme. hu A szerver URL megadása: Server. Name pc 1. lab. agt. bme. hu: 8080 A HTML oldalak fizikai helyének megadása: Document. Root "C: /Program Files/Apache Group/Apache 2/htdocs" Feladat: Javítsuk a port beállítását, illetve állítsuk át a html oldalak helyét az e: meghajtón egy újonnan létrehozott könyvtárra!
HTTP szerver konfigurálása (APACHE) Könyvtárbeállítások: Különböző opciók és jogosultsági beállítások könyvtárszintű definiálása: <Directory /> Options Follow. Sym. Links Allow. Override None </Directory>
Könyvtárbeállítások Opciók: All Minden opció, kivéve a Multi. View opciót. Exec. CGI szkriptek futtatása megengedett a mod_cgi modullal. Follow. Sym. Links Szimbolikus linkek követése. Includes Szerveroldali include fájlok megengedettek. Includes. NOEXEC Hasonló az előzőhöz, de futtatható szkriptek beillesztése letiltva. Indexes Ha nincs index fájl a könyvtárban, akkor a könyvtárlistát kapjuk vissza. Multi. Views Több nézetet választhatunk a tartalmakból (pl. nyelvek szerint) Sym. Links. If. Owner. Match Csak akkor követi a szerver a szimbolikus linkeket, ha a célfájl tulajdonosa azonos a hívó fájléval.
Könyvtárbeállítások Biztonsági beállítások: Allow. Override direktíva Célja, hogy a webes területek közül bizonyosak csak egy-egy adott felhasználó számára legyen elérhető – pl. jelszavas beléptetés. Auth. Config Megengedi a hitelesítő direktívák használatát (Auth. DBMGroup. File, Auth. DBMUser. File, Auth. Group. File, Auth. Name, Auth. Type, Auth. User. File, Require, stb. ). File. Info Megengedi a dokumentum típusokat ellenőrző direktívák használatát (Default. Type, Error. Document, Force. Type, Language. Priority, Set. Handler, Set. Input. Filter, Set. Output. Filter, and mod_mime Add* and Remove* directives, etc. ). Indexes Megengedi a könyvtár listázását befolyásoló direktívák használatát (Add. Description, Add. Icon. By. Encoding, Add. Icon. By. Type, Default. Icon, Directory. Index, Fancy. Indexing, Header. Name, Index. Ignore, Index. Options, Readme. Name, etc. ). Limit A szerver elérhetőségét befolyásoló direktívák használhatók (Allow, Deny and Order). Options Könyvtárspecifikus funkciók használatát engedélyezi (Options and XBit. Hack).
Könyvtárbeállítások Egy példa: <Directory "E: /webprog/htdocs"> Options Indexes Follow. Sym. Links # Allow. Override controls what directives may be placed in. htaccess files. # It can be "All", "None", or any combination of the keywords: # Options File. Info Auth. Config Limit # Allow. Override None # Controls who can get stuff from this server. # Order allow, deny Allow from all </Directory>
Könyvtárbeállítások • Mentsük el a httpd. conf állományt, és indítsuk újra az Apache szolgáltatást. • Nézzük meg a szerverünket a böngészőben, URL: http: //localhost Hová lett az ‘It works’ felirat? Még nincsen html dokumentumunk a htdocs könyvtárban! Másoljunk be ide is egy html oldalt!
Felhasználóspecifikus könyvtárbeállítások Több felhasználót kiszolgáló webszervereknél célszerű, ha az egyes felhasználóknak saját könyvtárai vannak, amelyeket saját maguk menedzselhetnek. Így a központi tartalomhoz nem kell hozzáférést biztosítanunk, a felhasználók csak a saját területükön tehetnek kárt. Az URL-ben a személyes webkönyvtárakra az alábbiaknak megfelelően hivatkozhatunk: http: //szervernev/~usernev Beállítás a httpd. conf fájlban: User. Dir direktíva User. Dir "My Documents/My Website"
Felhasználóspecifikus könyvtárbeállítások conf/extras/httpd-userdir. conf A beállítások után kommenteljük ki a httpd. conf-ban az alábbi sort: Load. Module userdir_modules/mod_userdir. so Include conf/extra/httpd-userdir. conf Majd indítsuk újra az Apache szolgáltatást!
Felhasználóspecifikus könyvtárbeállítások Hozzuk létre a geodezia user Dokumentumok könyvtárában egy website nevű könyvtárat, és helyezzünk el benne egy html oldalt! Ezt követően nézzük meg az alábbi URL-t a böngészőben: http: //localhost/~geodezia
Az indexfájlok megadása Egy html dokumentumra hivatkozva az URL-ben meg kell adnunk a html dokumentum nevét: http: //www. geod. bme. hu/tutor_h/terinfor/tbev. htm Általában azonban a felhasználó a szerver nevét ismeri csak (pl. http: //www. index. hu. Ilyenkor a szervernek kell megtalálnia a megfelelő html fájlt, amit megtekinthetünk a böngészőben. Ezeket a fájlokat hívjuk index fájloknak, általában index. html névre hallgatnak, de ettől akár el is térhetnek (index. php, stb. ). Httpd. conf: Directory. Index direktíva Directory. Index index. html. var
Korlátozott elérésű könyvtárak létrehozása Olyan könyvtárak létrehozása, amelyekben elhelyezett tartalom csak jelszavas beléptetés után érhető el: Emlékezzünk vissza a könyvtárbeállításoknál taláható Allow. Override direktívára! Ezzel beállíthatjuk, ha könyvtárszinten meg akarunk különböztetni jogosultságokat: <Directory /> Options Follow. Sym. Links Allow. Override Auth. Config </Directory> Ezt követően be kell állítanunk azt a fájlnevet, ahol a szerver keresheti a jogosultságellenőrzéshez szükséges beállításokat (Access. File. Name direktíva): Httpd. conf Access. File. Name. htaccess
Korlátozott elérésű könyvtárak létrehozása Mivel a. htaccess és. htpass fájlok (ahol a beléptetéshez szükséges beállítások, és a jelszavak találhatóak) a html dokumentumok könyvtáraiban helyezkednek el, így meg kell akadályoznunk, hogy a webes felhasználók azokat megtekinthessék: Httpd. conf <Files ~ "^. ht"> Order allow, deny Deny from all </Files> A Files szekció lehetővé teszi, hogy a. ht –vel kezdődő állományokat a szerver NE mutassa meg a böngészőknek.
Nézzünk egy példát a. htaccess fájlra . htaccess Auth. Type Basic Auth. Name "Biztonságos terület" Auth. User. File d: /www/proba/sub/htpass. txt Require usernév . htpass szabi: $apr 1$p. R 1. . . $P 3 aa 3. K 00 Pk 47 VYd. XAn. KM/ Megjegyzés: a beléptetéshez szükséges. htpass fájlt a htpasswd alkalmazással állíthatjuk elő, amely az apache bin könyvtárában található.
Nézzünk egy példát a. htaccess fájlra Hozzuk létre az alábbi htaccess. txt fájlt a geodezia felhasználó saját htdocs könyvtárában! Hozzuk létre a belépési jelszavat tartalmazó htpass. txt fájlt:
Nézzünk egy példát a. htaccess fájlra Vessünk egy pillantást a httpd-userdir. conf fájlra:
Állítsuk be a httpd. conf fájlt a htaccess fájlok kezelésére Ezt követően indítsuk újra az Apache szolgáltatást!
Jelszavas beléptetés könyvtárakra
Vajon tényleg biztonságos ez a megoldás?
Megoldás
Rövidített hivatkozások definiálása (alias) Alias direktíva Lehetővé teszi, hogy a gyakran használt könyvtárakra a dokumentumokban rövidebb nevekkel hivatkozzunk. Például a dokumentumainkhoz felhasznált képeket elhelyezhetjük a html területen kívül elhelyezkedő icons könyvtárba, majd az alias-t definiálva a html dokumentum helyétől függetlenül hivatkozhatunk az icons könyvtárra. Alias /icons/ "C: /Program Files/Apache Group/Apache 2/icons/" <Directory "C: /Program Files/Apache Group/Apache 2/icons"> Options Indexes Multi. Views Allow. Override None Order allow, deny Allow from all </Directory>
Rövidített hivatkozások definiálása (alias) Alias direktíva A futtatható parancsfájlokat is elhelyezhetjük a html területen kívül: Script. Alias /cgi-bin/ "C: /Program Files/Apache Group/Apache 2/cgi-bin/„ # # "C: /Program Files/Apache Group/Apache 2/cgi-bin" should be changed to whatever your Script. Aliased # CGI directory exists, if you have that configured. # <Directory "C: /Program Files/Apache Group/Apache 2/cgi-bin"> Allow. Override None Options None Order allow, deny Allow from all </Directory>
Egyév fontosabb direktívák Default. Type direktíva Megadja a tartalom default típusát arra az esetre, ha a azt a tartalomfájl nem tartalmazza. Default. Type text/plain Hostname. Lookups direktíva A logfájlokban a kliens nevét is rögzítsük-e, vagy csak az IP címét? Error. Log direktíva Megadja az error. log fájl helyét.
Virtuális hostok Név alapú virtuális hostok (gazdák) definiálása. Fizikailag egy szerverszámítógép és egy webszerver-szoftver több hostot is kiszolgálhat:
Virtuális hostok Keressük meg a www. geod. bme. hu és az fgg. agt. bme. hu hostok IP címeit: Ezt követően nézzük meg a két URL-t egy böngészőben is!
Virtuális hostok http: //fgg. agt. bme. hu (152. 66. 5. 8) http: //www. geod. bme. hu (152. 66. 5. 8)
Virtuális hostok Név alapú virtuális hostok (gazdák) definiálása. Httpd. conf Name. Virtual. Host *: 80 <Virtual. Host *: 80> Server. Name www. domain. tld Server. Alias domain. tld *. domain. tld Document. Root /www/domain </Virtual. Host> <Virtual. Host *: 80> Server. Name www. otherdomain. tld Document. Root /www/otherdomain </Virtual. Host> Ha a HTTP kérés a www. domain. tld hostra érkezik, akkor a dokumentumokat a szerver a /www/domain könyvtárból jeleníti meg. Ha a kérésben a www. otherdomain. tld szerepel, akkor a /www/otherdomain könyvtár dokumentumait jeleníti meg a szerverszoftver.
Virtuális hostok létrehozása Van két URL-ünk, amelyek ugyanarra az IP-re mutatnak. Hogyan különböztetjük meg őket? (FONTOS: A DNS regisztrációnál ugyanazt az IP-t kell megadnunk mindkét szervernévre) Httpd. conf Name. Virtual. Host *: 80 <Virtual. Host *: 80> Server. Admin webmaster@pc 1. lab. agt. bme. hu Document. Root d: /www/pc 1/ Server. Name pc 1. lab. agt. bme. hu Error. Log logs/pc 1 -error_log Custom. Log logs/pc 1 -access_log common </Virtual. Host> <Virtual. Host *: 80> Server. Admin webmaster@pc 1. lab. agt. bme. hu Document. Root d: /www/proba/ Server. Name pc. proba. com Error. Log logs/pc 1 -error_log Custom. Log logs/pc 1 -access_log common </Virtual. Host>
- Slides: 37