Upload
eydie
View
51
Download
3
Embed Size (px)
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
Citation preview
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
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 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:
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:
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)
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
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:
<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:
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!
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:
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!
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
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:
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):
<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
.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ó.
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
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.
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:
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
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:
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://www.geod.bme.hu(152.66.5.8)
http://fgg.agt.bme.hu(152.66.5.8)
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.
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