Serverat Web Apache perdoren shpesh te kombinuar me MySQL , HyperText Preprocessor (PHP) , si edhe gjuhe te tjera popullore skriptimi ne server si Python dhe Perl. Ky konfigurim eshte emertuar si LAMP (Linux, Apache, MySQL dhe Perl/Python/PHP) dhe formn nje platforme te fuqishme per zhvillimin aplikacioneve web.
Instalimi
sudo apt-get install apache2
Konfigurimi
Apache2 konfigurohet duke vondosur direktiva ne skedare konfigurimi. Keto direktiva jane re organizuara midis skedareve dhe direktorive te meposhtme:
apache2.conf: eshte skedari kryesor i konfigurimit te Apache2 . Permban konfigurime qe vlejne per te gjithe Apache2.
conf.d: dosje qe permban skedare konfigurimi qe prekin te gjithe Apache2. Paketa te tjera qe perdorin Apache2 mund te shtojne skedare konfigurimi, ose linke simbolike ne kete direktori.
envvars: ne kete skedar ruhen varialblat e ambjentit te Apache2 .
httpd.conf: historikisht ka qene skedari kryesor i konfigurimit te Apache, qe ka marre emrin sipas daemon-it httpd . Ne versionin aktual skedari eshte bosh , pasi shume nga konfigurimet jane zhvendosur tek direktorite e meposhtme.
mods-available: kjo direktori permban skedare konfigurimi qe sherbejne per te ngarkimin dhe konfigurimin e moduleve tendryshme . Megjithate jo te gjithe modulet kane skedare konfigurimi.
mods-enabled: kjo direktori mban linke simbolike qe shenojne tek /etc/apache2/mods-available.
ports.conf: ky skedar ruan direktivat qe percaktojne portat TCP ku degjon Apache2 .
sites-available: kjo direktoti ka skedar konfigurimi per Hostet Virtuale. Hostet Virtuale krijojne mundesi qe te konfigurojme Apache2 per site te ndryshem, secili me nje konfigurim te vetin.
sites-enabled: ne analogji me mods-enabled, sites-enabled permban symlinks tek /etc/apache2/sites-available .
Pervec skedareve me siper mund te shtohen skedare tjere konfigurimi duke perdorur direktivein include.
Ndryshimet e bera ne skedaret kryesore te konfigurimit aplikohen kur restartohet sherbimi.
MIME Types
Serveri leson nje skedar i cili permban tipet e dokumentave ; emri i ketij skedari percaktohet tek direktiva TypesConfig , zakonisht tek /etc/apache2/mods-available/mime.conf. Ky skedar si default eshte /etc/mime.types.
Ky seksion pershkruan parametrat thelbesore te Apache2 .
Apache2 vjen i instaluar menje konfigurim baze per hostet virtuale. Eshte i konfiguruar me nje host virtual ( duke perdorur direktiven VirtualHost ). Default virtual host do te sherbeje si site default, ose site qe do ti dergohet browserit nese URL e kerkeses nuk permban ServerName e asnje nga hostet virtuale te krijuara. Konfigurimi i hostit virtual rute ne skedarin /etc/apache2/sites-available/default.
Konfigurimet e bera per nje virtual kane vlere vetem per ate host dhe nuk ndikojne tek hostet e tjere. Nese nje parameter konfigurimi eshte konfiguruar per te gjite serverin atehere ajoka vlere per te gjithe hostet, gjithmone nese a njejta direktive nuk eshte rikonfiguruar per hostin skecifike. Per shembull mund te konfigurojme nje adrese email te Webmaster per t egjithe serverin dhe te mos caktojme adresa email per sejcilin nga hostet.
Per te krijuar nje hoste te ri virtual (site) kopjojme nje site ekzistues si template psh default dhe modifikojme konfigurimin e hostit te ri. Per shembull
student@ubuntu:/etc/apache2/sites-available$ sudo cp default ictsite
student@ubuntu:/etc/apache2/sites-available$ ls
default default-ssl ict ict~ ictsite
student@ubuntu:/etc/apache2/sites-available$
Modifikoni skedarin e ri duke percaktuar disa nga direktivat e meposhtme.
ServerAdmin
Direktiva ServerAdmin percakton adresen e email te administratorit te serverit. Vlera default eshte webmaster@localhost. Nese ka ndoenje problem me website , Apache2 do te afishoje nje mesazh gabimi ne te cilen do te vendose edhe kete adrese email per te raportuar problemin.
Listen
Direktiva Listen percakton porten, dhe ne menyre opsionale adresen IP , ne te cilen do te degjoje Apache2. Nese adresa IP nuk eshte percaktuar , Apache2 do te degjoje ne te gjithe adresat IP qe ka serveri ku appache akzekutohet. Vlera default eshte 80. Nese kjo modifikohet ne 127.0.0.1:80 Apache2 do te degjoje vetem ne loopback interface pra nuk do te jete disppnibel ne Internet. Porta mund te modifikohet ne kete skedar por eshte e rekomandueshme qe te perdoret skedari /etc/apache2/ports.conf
ServerName
Direktiva ServerName directive eshte opsionale dhe percakton FQDN e website. Hosti virtual defaulr nuk ka direktive ServerName , per kete arsye do ti pergjigjet te gjithe kerkesave qe url e te cilave nuk kapen nga direktivat ServerName. Nese doni te hostoni wbesite e domain ict.local, direktiva ServerName ne skedarin e konfigurimit te hostit virtual do te ishte e barabarte me ict.local .
Direktiva ServerAlias krijon alias per emrin e serverit. Per shembull nese shtojme direktiven
ServerAlias *.ict.local
te gjitha kerkesat e derguara me prapashtesn ict.local ne server do te identifikohen me virtual hostin (siten tone).
DocumentRoot
Direktiva DocumentRoot i tregon Apache2 ku te kerkoje per skedare ne site. Si default nese nuk kerkohen ne menyre specifike nje skedare brenda nje direktorije ktheehet skedari index.html. Vlera default eshte /var/www, sic percaktohet ne /etc/apache2/sites-available/default.
Zakonisht kjo ndryshohet ne menyre te tille qe te shenoje ne dosjen tone te sitet.
Per ilustrim do te krijoni nje dosje me emrin ictsite brenda /var/www dhe me pas do te kopjoni skedarin index.html qe ndodhet ne var/www/
student@ubuntu:/var/www$ sudo mkdir ictsite
[sudo] password for student:
student@ubuntu:/var/www$ ls
ict ictsite index.html
student@ubuntu:/var/www$
Pas kesaj do te kopjojme skedarin index.html qe ndodhet tek /var/www tek dosja /var/www/ictsite/
student@ubuntu:/var/www$ sudo cp index.html ictsite/
student@ubuntu:/var/www$ ls ictsite/
index.html
student@ubuntu:/var/www$
Per aktivizimin e hostit te ri ose sitet te ri eshte e nevojshme qe te aktivizohet ai nepermjet utilitetit a2ensite dhe te restartohet appache.
student@ubuntu:/$ sudo a2ensite ictsite
Enabling site ictsite.
To activate the new configuration, you need to run:
service apache2 reload
student@ubuntu:/$ sudo service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]
student@ubuntu:/$
Nese pas ketyre konfigurimeve hapim siten me URL http://www.ict.local atehere do te na shfaqet skedari /var/www/ictsite/index.html
Nese deshironi te c'aktivizoni perkohesisht nje site mund te perdorin utilitetin a2dissite i cili kerkon gjithashtu restart te appache qe te aplikohet.
student@ubuntu:/var/www$ sudo a2dissite ictsite
Site ictsite disabled.
To activate the new configuration, you need to run:
service apache2 reload
student@ubuntu:/var/www$ sudo service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]
student@ubuntu:/var/www$
Per ta riaktivizuar site psi kemi bere testimet dhe kontrollet e nevojshme
student@ubuntu:/$ sudo a2ensite ictsite
Enabling site ictsite.
To activate the new configuration, you need to run:
service apache2 reload
student@ubuntu:/$ sudo service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]
student@ubuntu:/$
DirectoryIndex eshte faqa default qe i kthehet browserit nese ai nuk kerkon nje skedar specifik por kerkon nje direktori, si default eshte index.html.
Nere perdoruesi kerkon nje faqe http://www.example.com/this_directory/, ai do te marre si pergjigje:
faqen e DirectoryIndex nese ekziston
listimin e permbajtjes se direktorise ne server nese eshte zgjedhur opsioni Indexes ose
nje faqe Permission Denied nese nuk eshte zgjedhur opsioni Indexes.
Serveri do te tentoje te gjeje nje nga skedaret e renditur ne direktiven DirectoryIndex dhe do te ktheje te parin qe gjen. Nese nuk gjen asnje nga skedaret dhe opsioni Indexes eshte i lejuar per ate direktoru , serveri do te gjeneroje ne liste me permbajtjen e direktorise dhe do tae ktheje kete liste ne format HTML. Vlera default, qe ndodhet ne /etc/apache2/mods-available/dir.conf eshte "index.html index.cgi index.pl index.php index.xhtml index.htm". Prandaj, nese Apache2 gjen ndonje nga keta skedare ne nje direktori kthen pikerishte ate skedar.
Moduli mod_ssl i lejon Apache2 te enkriptoje komunikimin.Kur browseri komunikon nepermjet SSL, perdoret prefiksi https:// .
Moduli mod_ssl eshte disponibel ne paketen apache2-common . Per ta aktivizuar kete modul:
sudo a2enmod ssl
Ka nje skedar site default ne /etc/apache2/sites-available/default-ssl. Ne menyre qe te ofroje HTTPS, eshte e nevojshme qe te marrim nje certicikate dhe nje celes nga nje autoritet certifikatat i regjistruar CA . Konfigurimi baze i HTTPS perdor nje certifikate dhe nje celes te vetegjenreurar per efekte te testimit por kjo certifikate duhet zenvendesuar me certifikaten e marre nga CA i aregjistruar.
Per te konfiguruar Apache2 qe te perdire HTTPS, aktivizoni siten default-ssl:
sudo a2ensite default-ssl
Instalimi
PHP5 eshte disponibel ne Ubuntu Linux. Ndryshe nga python dhe perl, qe instalohen me sistemin baze gjuha, PHP duhet shtuar.
sudo apt-get install php5
Per te perdorur MySQL me PHP5 duhet te instalohet paketa php5-mysql :
sudo apt-get install php5-mysql
Konfigurimi
Si default , moduli PHP5 aktivizohet automatikisht gjate instalimit. Konfigurimi ruhet ne /etc/apache2/mods-enabled/php5.conf dhe /etc/apache2/mods-enabled/php5.load . Nese ndonje nga keta skedare nuk ekziston ateher moduli duhet aktivizuar nepermjet komandes a2enmod .
student@ubuntu:/var/www/ict$ sudo a2enmod php5
Module php5 already enabled
student@ubuntu:/var/www/ict$
Testimi
Per te verifikuar instalimin duhet te bejme nje skript prove:
<?php phpinfo(); ?>
dhe do ta vendosim ate ne rrenjen e sitet tone.