a web programozása 1. előadás webszerver telepítése és konfigurálása

37
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

Upload: eydie

Post on 12-Jan-2016

49 views

Category:

Documents


3 download

DESCRIPTION

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: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

A Web programozása

1. előadásWebszerver telepítése és konfigurálása

Rózsa SzabolcsBME Általános- és Felsőgeodézia Tanszék

Page 2: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Tartalom

• Bevezetés, tárgyismertető

• Webszerver telepítése és konfigurálása

Page 3: A Web programozása 1. előadás 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.

Page 4: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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.

Page 5: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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:

Page 6: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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:

Page 7: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

HTTP Szerver telepítése

Ellenőrizzük, hogy fut-e az Apache szolgáltatás (Apache Service Monitor):

Page 8: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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.

Page 9: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

HTTP Szerver telepítése

Az Apache könyvtárstruktúrája, és a httpd.conf konfigurációs fájl

Page 10: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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 EnvironmentA 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.

Állítsuk át a portot 80-ra!

Feladat:

Page 11: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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 [email protected]

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"

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!

Feladat:

Page 12: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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>

HTTP szerver konfigurálása (APACHE)

Page 13: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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.

Opciók:

Könyvtárbeállítások

Page 14: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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

Biztonsági beállítások:

Page 15: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

<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

Egy példa:

Page 16: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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!

Page 17: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

UserDir "My Documents/My Website"

UserDir direktíva

Az URL-ben a személyes webkönyvtárakra az alábbiaknak megfelelően hivatkozhatunk:

http://szervernev/~usernev

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.

Beállítás a httpd.conf fájlban:

Page 18: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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:LoadModule userdir_module modules/mod_userdir.so Include conf/extra/httpd-userdir.conf

Majd indítsuk újra az Apache szolgáltatást!

Page 19: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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

Page 20: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

DirectoryIndex direktíva

DirectoryIndex index.html index.html.var

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:

Page 21: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Httpd.conf

AccessFileName .htaccess

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):

Page 22: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

<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.

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

Page 23: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

.htaccess

AuthType BasicAuthName "Biztonságos terület"AuthUserFile d:/www/proba/sub/htpass.txtRequire user usernév

.htpass

szabi:$apr1$pR1.....$P3aa3.K00Pk47VYdXAnKM/

Nézzünk egy példát a .htaccess fájlra

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ó.

Page 24: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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:

Page 25: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Nézzünk egy példát a .htaccess fájlra

Vessünk egy pillantást a httpd-userdir.conf fájlra:

Page 26: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Á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!

Page 27: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Jelszavas beléptetés könyvtárakra

Page 28: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Vajon tényleg biztonságos ez a megoldás?

Page 29: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Megoldás

Page 30: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Alias direktíva

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)

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.

Page 31: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Alias direktíva

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>

Rövidített hivatkozások definiálása (alias)

A futtatható parancsfájlokat is elhelyezhetjük a html területen kívül:

Page 32: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

DefaultType text/plain

DefaultType direktíva

Megadja a tartalom default típusát arra az esetre, ha a azt a tartalomfájl nem tartalmazza.

HostnameLookups direktíva

A logfájlokban a kliens nevét is rögzítsük-e, vagy csak az IP címét?

Megadja az error.log fájl helyét.

ErrorLog direktíva

Egyév fontosabb direktívák

Page 33: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Név alapú virtuális hostok (gazdák) definiálása.

Virtuális hostok

Fizikailag egy szerverszámítógép és egy webszerver-szoftver több hostot is kiszolgálhat:

Page 34: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

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!

Page 35: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Virtuális hostok

http://www.geod.bme.hu(152.66.5.8)

http://fgg.agt.bme.hu(152.66.5.8)

Page 36: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Név alapú virtuális hostok (gazdák) definiálása.

NameVirtualHost *:80

<VirtualHost *:80>ServerName www.domain.tldServerAlias domain.tld *.domain.tldDocumentRoot /www/domain</VirtualHost>

<VirtualHost *:80>ServerName www.otherdomain.tldDocumentRoot /www/otherdomain</VirtualHost>

Virtuális hostok

Httpd.conf

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.

Page 37: A Web programozása 1. előadás Webszerver telepítése és konfigurálása

Httpd.conf

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)

NameVirtualHost *:80

<VirtualHost *:80> ServerAdmin [email protected] 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 [email protected] DocumentRoot d:/www/proba/ ServerName pc.proba.com ErrorLog logs/pc1-error_log CustomLog logs/pc1-access_log common</VirtualHost>

Virtuális hostok létrehozása