Top Banner
Uvod u LAMP Autor: Mario Goljak Voditeljica: Vlasta Pavičić 12. lipnja 2018. Obrazovni program za IT-specijaliste edu4IT, Sistemski administrator 1
37

Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Sep 06, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Uvod u LAMP

Autor: Mario Goljak

Voditeljica: Vlasta Pavičić

12. lipnja 2018.

Obrazovni program za IT-specijaliste edu4IT, Sistemski administrator 1

Page 2: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Sadržaj

Što je LAMP?

Linux operacijski sustav

Apache HTTP poslužitelj

MySQL baza podataka

PHP skriptni jezik

Demo instalacija i konfiguracija

phpMyAdmin

Page 3: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Što je LAMP?

Skup alata otvorenog koda za razvoj i implementaciju dinamičkog i interaktivnog web sadržaja

Slojevito strukturirane komponente:

• [L]inux operacijski sustav

• [A]pache web poslužitelj

• [M]ySQL baza podataka

• [P]HP skriptni jezik

Inačice dostupne na većini aktualnih operacijskih sustava:

• Windows, macOS, Linux, BSD, itd.

Page 4: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Što je LAMP?

Klijent

HTTP zahtjev

HTTP odgovor

Poslužitelj

Web poslužitelj

Izvršno PHPokruženje

Baza podataka

Page 5: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Linux operacijski sustav

Besplatan OS sastavljen isključivo od slobodnog softvera koji razvija zajednica suradnika - korisnika i programera

Temeljna komponenta LAMP programskog paketa

Siguran i visoko pouzdan izbor za implementaciju web poslužitelja

Za razvoj i održavanje jeftiniji od komercijalnih alternativa

Različite distribucije:

Red Hat, CentOS, Ubuntu, Debian, itd.

Sustavi za upravljanje paketima pojednostavljuju instalaciju

Page 6: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache HTTP poslužitelj

Učinkovit web poslužitelj usklađen s trenutnim HTTP standardima

Održava i razvija otvorena zajednica programera koju vodi Apache Software Foundation

Neke od mogućnosti Apache poslužitelja su:

Modularna konfiguracija jednostavna za korištenje

Detaljna službena dokumentacija

Bez naknade ili troškova licenciranja

Trenutno pokreće preko 42% aktivnih web stranica

Page 7: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache HTTP poslužitelj

Page 8: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL baza podataka

Sustav za upravljanje relacijskim bazama podataka (RDBMS)• Visoko optimizirana baza podataka• Funkcije definirane SQL standardom• Stabilna i dobro dokumentirana• Podrška za brojne programske jezike: PHP, Java, Perl, Python...• Sastavni dio poslužiteljskih Linux distribucija

U vlasništvu Oracle korporacije (od 2010. godine):• Community Edition

• Enterprise Edition

MariaDB - razvojna grana MySQL-a:• Bolje performanse• Novi mehanizmi za pohranu podataka

Percona poslužitelj za MySQL - kompatibilna zamjena s Enterprise mogućnostima

Page 9: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

PHP skriptni jezik

Skriptni jezik namijenjen razvoju dinamičkog web sadržaja

Izvodi se na poslužiteljskoj strani na način da se ugrađuje u izvorni HTML kôd web stranice

Podrška za povezivanje s bazama podataka (MySQL/MariaDB, PostgreSQL, SQLite...)

Koristi se kao standardni Apache modul

Besplatno dostupan pod licencom otvorenog kôda

Page 10: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Demo instalacija i konfiguracija

Radno okruženje:

Operacijski sustav Debian GNU/Linux 9.4 (stretch)

IP adresa 127.0.0.1

Naziv računala debian.srce.lamp

• Instalacija LAMP komponenata

• Upravljanje servisima

• Provjera ispravnosti

Page 11: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache - instalacija

root@debian # apt-get install apache2

Page 12: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache - upravljane servisom

systemctl {start|stop|restart|enable|disable} apache2

systemctl status apache2

Page 13: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache - konfiguracija

.

├── apache2.conf < Glavna konfiguracijska datoteka

│ `-- ports.conf < Konfiguracija mrežnih portova

├── conf-[enabled,available]/ < Fragmenti globalne konfiguracije

│ `-- *.conf

├── mods-[enabled,available]/ < Upravljanje modulima

│ |-- *.load

│ `-- *.conf

└── sites-[enabled,available]/ < Konfiguracija udomljenih stranica

`-- *.conf

root@debian:/etc/apache2 #

Page 14: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache - provjera ispravnosti

Usmjeriti web preglednik na adresu poslužitelja:

Page 15: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache - virtualni domaćini

Osnovna jedinica individualne web stranice ili domene

Mogućnost udomljavanja više stranica na jednom sustavu

Broj virtualnih domaćina nema softverskih ograničenja

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Page 16: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Apache - virtualni domaćini

<VirtualHost *:80>

ServerName www.primjer.hr

ServerAlias primjer.hr

ServerAdmin [email protected]

DocumentRoot /var/www/primjer/html

ErrorLog ${APACHE_LOG_DIR}/primjer-error.log

CustomLog ${APACHE_LOG_DIR}/primjer-access.log combined

</VirtualHost>

/etc/apache2/sites-enabled/primjer.conf

Page 17: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - instalacija

root@debian # apt-get install mysql-server

Page 18: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - stanje servisa

systemctl {start|stop|restart|enable|disable} mysql

systemctl status mysql

Page 19: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - povećanje sigurnosti

root@debian # mysql_secure_installation

Page 20: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - povećanje sigurnosti

Postavljanje lozinke za root korisnika baze podataka

Page 21: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - povećanje sigurnosti

Onemogućeno spajanje anonimnim korisnicima

Page 22: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - povećanje sigurnosti

Onemogućeno udaljeno spajanje root računa

Brisanje testne baze podataka

Page 23: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - povećanje sigurnosti

Promjene odmah stupaju na snagu

Page 24: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - osnovno korištenje

root@debian # mysql -u root -p

Page 25: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

MySQL - osnovno korištenje

Izrada demo baze podataka i pripadajućeg korisnika s odgovarajućim pravima

Page 26: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

PHP - instalacija

root@debian # apt-get install php7.0

Page 27: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

PHP - provjera ispravnosti

Izraditi info.php datoteku sa sadržajem: <?php phpinfo(); ?>

Usmjeriti web preglednik na adresu: http://127.0.0.1/info.php

Page 28: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

PHP - podrška za MySQL

root@debian # apt-cache search php7.0

root@debian # apt-get install php7.0-mysql

Page 29: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

PHP - provjera ispravnosti

Usmjeriti web preglednik na PHP info stranicu: http://127.0.0.1/info.php

Page 30: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

phpMyAdmin

Alat za upravljanje bazom podataka iz web preglednika

Napisan u PHP programskom jeziku

Podrška za većinu MySQL mogućnosti:

• Izvršavanje SQL upita

• Upravljanje bazama, tablicma, poljima i indeksima

• Upravljanje korisničkim računima i privilegijama

• Upravljanje pohranjenim procedurama i trigerima

Intuitivno grafičko sučelje

Page 31: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

phpMyAdmin - instalacija

root@debian # apt-get install phpmyadmin

Page 32: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

phpMyAdmin - upravljanje

Usmjeriti web preglednik na adresu: http://127.0.0.1/phpmyadmin

Prijaviti se s odgovarajućim korisničkim podacima

Page 33: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

phpMyAdmin - upravljanje

Upravljanje MySQL bazom podataka

Page 34: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

LAMP alternative

Razvijen niz zamjena temeljen na različitim tehnologijama:

• LEMP - Linux, Nginx, MySQL, PHP

• LAPP - Linux, Apache, PosgreSQL, PHP

• LNPP - Linux, Nginx, PosgreSQL, PHP

• WIMP - Windows, IIS, MySQL, PHP

• MEAN - MongoDB, Express, AngularJS, Node.js

Izbor komponenata fleksibilan i lako prilagodljiv postojećim sustavima

Page 35: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Zaključak

Služi za razvoj i implementaciju dinamičkog web sadržaja

Komponente besplatne i otvorenog kôda

Jednostavna instalacija

Prilagodljiv postojećim sustavima

Dodatni alati pojednostavljuju održavanje

Može poslužiti kao temelj CMS sustavima za upravljanje sadržajem

Page 36: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Literatura

[1] Wiki stranice Debian operacijskog sustava

https://wiki.debian.org

[2] Dokumentacija Apache HTTP poslužitelja

https://httpd.apache.org/docs

[3] MySQL baza podataka

https://www.mysql.com/

[4] Dokumentacija PHP skriptnog jezika

https://secure.php.net/docs.php

[5] Alat za administraciju MySQL baze podataka

https://phpmyadmin.net

Page 37: Uvod u LAMP - srce.unizg.hr · MySQL baza podataka Sustav za upravljanje relacijskim bazama podataka (RDBMS) •Visoko optimizirana baza podataka •Funkcije definirane SQL standardom

Srce politikom otvorenog pristupa široj javnosti

osigurava dostupnost i korištenje svih rezultata rada

Srca, a prvenstveno obrazovnih i stručnih informacija

i sadržaja nastalih djelovanjem i radom Srca.

Ovo djelo je dano na korištenje pod licencom

Creative Commons Imenovanje-Nekomercijalno

4.0 međunarodna.

www.srce.unizg.hr creativecommons.org/licenses/by-nc/4.0/deed.hr www.srce.unizg.hr/otvoreni-pristup

Hvala na pozornosti!

Pitanja?