370 likes | 485 Views
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:
E N D
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, • MySQL adatbáziskezelő telepítését, illetve a phpMyAdmin 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 pcXX.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: ServerAdmin webmaster@pc1.lab.agt.bme.hu A szerver URL megadása: ServerName pc1.lab.agt.bme.hu:8080 A HTML oldalak fizikai helyének megadása: DocumentRoot "C:/Program Files/Apache Group/Apache2/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 FollowSymLinks AllowOverride None </Directory>
Könyvtárbeállítások Opciók: • All • Minden opció, kivéve a MultiView opciót. • ExecCGI • CGI szkriptek futtatása megengedett a mod_cgi modullal. • FollowSymLinks • Szimbolikus linkek követése. • Includes • Szerveroldali include fájlok megengedettek. • IncludesNOEXEC • 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. • MultiViews • Több nézetet választhatunk a tartalmakból (pl. nyelvek szerint) • SymLinksIfOwnerMatch • 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: AllowOverride 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. • AuthConfig • Megengedi a hitelesítő direktívák használatát (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, stb.). • FileInfo • Megengedi a dokumentum típusokat ellenőrző direktívák használatát (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, 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 (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 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 XBitHack).
Könyvtárbeállítások Egy példa: <Directory "E:/webprog/htdocs"> Options Indexes FollowSymLinks # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride 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: UserDir direktíva UserDir "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: LoadModuleuserdir_modulemodules/mod_userdir.so Includeconf/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: DirectoryIndex direktíva DirectoryIndex index.html 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ó AllowOverride direktívára! Ezzel beállíthatjuk, ha könyvtárszinten meg akarunk különböztetni jogosultságokat: <Directory /> Options FollowSymLinks AllowOverride AuthConfig </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 (AccessFileName direktíva): Httpd.conf AccessFileName .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 AuthType Basic AuthName "Biztonságos terület" AuthUserFile d:/www/proba/sub/htpass.txt Require user usernév .htpass szabi:$apr1$pR1.....$P3aa3.K00Pk47VYdXAnKM/ 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!
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/Apache2/icons/" <Directory "C:/Program Files/Apache Group/Apache2/icons"> Options Indexes MultiViews AllowOverride 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: ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache2/cgi-bin/„ # # "C:/Program Files/Apache Group/Apache2/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory "C:/Program Files/Apache Group/Apache2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
Egyév fontosabb direktívák DefaultType direktíva Megadja a tartalom default típusát arra az esetre, ha a azt a tartalomfájl nem tartalmazza. DefaultType text/plain HostnameLookups direktíva A logfájlokban a kliens nevét is rögzítsük-e, vagy csak az IP címét? ErrorLog 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 NameVirtualHost *:80<VirtualHost *:80>ServerName www.domain.tldServerAlias domain.tld *.domain.tldDocumentRoot /www/domain</VirtualHost><VirtualHost *:80>ServerName www.otherdomain.tldDocumentRoot /www/otherdomain</VirtualHost> 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 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@pc1.lab.agt.bme.hu DocumentRoot d:/www/pc1/ ServerName pc1.lab.agt.bme.hu ErrorLog logs/pc1-error_log CustomLog logs/pc1-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@pc1.lab.agt.bme.hu DocumentRoot d:/www/proba/ ServerName pc.proba.com ErrorLog logs/pc1-error_log CustomLog logs/pc1-access_log common </VirtualHost>