37
Uvod u LAMP Autor: Mario Goljak Voditeljica: Vlasta Pavičić 12. lipnja 2018. Obrazovni program za IT-specijaliste edu4IT, Sistemski administrator 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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Uvod u LAMP

Autor: Mario Goljak

Voditeljica: Vlasta Pavičić

12. lipnja 2018.

Obrazovni program za IT-specijaliste edu4IT, Sistemski administrator 1

Sadržaj

Što je LAMP?

Linux operacijski sustav

Apache HTTP poslužitelj

MySQL baza podataka

PHP skriptni jezik

Demo instalacija i konfiguracija

phpMyAdmin

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

Što je LAMP?

Klijent

HTTP zahtjev

HTTP odgovor

Poslužitelj

Web poslužitelj

Izvršno PHPokruženje

Baza podataka

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

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

Apache HTTP poslužitelj

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

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

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

Apache - instalacija

root@debian # apt-get install apache2

Apache - upravljane servisom

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

systemctl status apache2

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 #

Apache - provjera ispravnosti

Usmjeriti web preglednik na adresu poslužitelja:

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>

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

MySQL - instalacija

root@debian # apt-get install mysql-server

MySQL - stanje servisa

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

systemctl status mysql

MySQL - povećanje sigurnosti

root@debian # mysql_secure_installation

MySQL - povećanje sigurnosti

Postavljanje lozinke za root korisnika baze podataka

MySQL - povećanje sigurnosti

Onemogućeno spajanje anonimnim korisnicima

MySQL - povećanje sigurnosti

Onemogućeno udaljeno spajanje root računa

Brisanje testne baze podataka

MySQL - povećanje sigurnosti

Promjene odmah stupaju na snagu

MySQL - osnovno korištenje

root@debian # mysql -u root -p

MySQL - osnovno korištenje

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

PHP - instalacija

root@debian # apt-get install php7.0

PHP - provjera ispravnosti

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

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

PHP - podrška za MySQL

root@debian # apt-cache search php7.0

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

PHP - provjera ispravnosti

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

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

phpMyAdmin - instalacija

root@debian # apt-get install phpmyadmin

phpMyAdmin - upravljanje

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

Prijaviti se s odgovarajućim korisničkim podacima

phpMyAdmin - upravljanje

Upravljanje MySQL bazom podataka

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

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

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

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?