,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh...

39
Introduzione a XAMPP Andrea Atzeni ([email protected]) Marco Vallini ([email protected]) Politecnico di Torino Dip. Automatica e Informatica AA 2018-19

Transcript of ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh...

Page 1: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Introduzione a XAMPP

Andrea Atzeni ([email protected])

Marco Vallini ([email protected])

Politecnico di Torino

Dip. Automatica e Informatica

AA 2018-19

Page 2: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Introduzione

applicazione web richiede

molteplici componenti

HTTP server per rendere disponibili le pagine web

– es. Apache

database per immagazzinare e gestire i dati

– es. MySQL

application engine per l'esecuzione di programmi

– es. interprete PHP, Tomcat per JSP

configurazioni specifiche per ogni componente

trade-off: semplicità vs. sicurezza vs. efficienza

– ambito di utilizzo

2

Page 3: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Introduzione

XAMPP: insieme integrato di pacchetti software (distribuzione)

include: Apache, PHP, MariaDB (MySQL), phpMyAdmin, …

orientato allo sviluppo/test di applicazioni web

facile da installare, configurazione predefinita

interfaccia per operazioni semplici

es. avvio/stop servizi, configurazione porte web server

operazioni avanzate: necessario agire sulle configurazioni specifiche dei servizi

es. host virtuali

in generale non adatto per sistemi di produzione

hardening

3

Page 4: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

HDHD

Il web dinamico e XAMPP

browser web

(es. Firefox)

server web

(Apache)

1.richiesta risorsa (PHP)

5. invio risposta (D)HTML

6. interprete HTML+ parte dinamica (es. JS)

interprete(PHP)

2. inoltro richiestainterprete PHP

3. letturafile richiesto

canale HTTP

file .php

DB(MySQL)

4. lettura datida DB / file

4

Page 5: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP per Windows

pagina di download

http://www.apachefriends.org/en/xampp-windows.html

ultime versioni 5.6.40/7.1.28/7.2.17 &7.3.4

a seconda della versione di PHP supportata

XP e 2003 non più supportati (ultima versione 1.8.3)

vecchie versioni di XAMPP ancora disponibili

... a proprio rischio e pericolo

disponibile anche per

GNU/Linux

Apple Mac OS X

Solaris

5

Page 6: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP portabile

possibile selezionare solo i servizi necessari (usa meno spazio su disco)

Apache, PHP, mariaDB base essenziale

phpMyAdmin molto utile

installabile su memoria esterna (es. memoria USB)

una volta installata, per essere avviata:

aprire la cartella di installazione

default “C:\xampp”

non usare spazi vuoti o caratteri di spaziatura nel path

doppio click su “xampp_start.exe”

per accedere al pannello di controllo, doppio click su “xampp_control.exe”

6

Page 7: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Installazione di XAMPP in Windows

avviare l’installazione conl’utente “Amministratore”

7

Page 8: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Installazione di XAMPP in Windows

FileZilla, Mercury, Tomcat, Perl e Fake Sendmail non

verranno usati durante il corso

8

Page 9: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Installazione di XAMPP in Windows

cartella di installazione(servono 400-600 MB di base)

9

Page 10: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Installazione di XAMPP in Windows

ATTENZIONE!

in molte installazioni di Windows la cartella radice del disco C: è riservata per elementi del S.O.

può essere scritta solo da utenti col privilegio di amministratore … oppure superando i controlli dell'UAC (User Access Control), cosa che non può essere fatta autonomamente da un programma

quindi installare XAMPP in C:\xampp potrebbe non essere una buona idea (ossia potrebbe non funzionare o mostrare errori inattesi)

meglio installarlo in un disco separato (es. D:\xampp)

in generale, è sempre meglio separare il disco coi dati utente (es. D:) da quello del S.O. (C:) avendo due dischi fisici o creando due partizioni di un solo disco, sia per problemi di controllo accessi sia per semplicità di backupl

10

Page 11: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Installazione di XAMPP in Windows

non usato nel corso

11

Page 12: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Avvio di XAMPP

avviare XAMPP con l’utente “Amministratore”

12

Page 13: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP – Pannello di controllo

13

Page 14: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP – Impostazioni generali

14

Page 15: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP – Impostazioni generali

editor di testo per le configurazioni

browser predefinito

avvio automatico dei servizi

15

Page 16: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP – Impostazioni servizio

16

Page 17: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Apache

HTTP server

ospita pagine HTML statiche

application server

ospita pagine/applicazioni dinamiche (es. PHP)

attraverso caricamento di un modulo (es. PHP)

file con estensione “.php” (o altro: configurabile!)

pagine/applicazioni posizionate nella “Document Root”

equivalente alla URI http://server/

configurazione di default

HTTP porta 80/TCP

HTTPS porta 443/TCP

17

Page 18: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Avvio di Apache

avvio di Apache

18

Page 19: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Avvio di Apache

identificativo/i del processo/i

19

Page 20: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Avvio di Apache

Apache avviato (porte 80, 443)

20

Page 21: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Stop di Apache

stop di Apache

21

Page 22: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Apache – file di configurazione e cartelle

cartella “DocumentRoot”

dove posizionare le pagine/applicazioni web

default (Win) "C:\xampp\htdocs"

cartella “ServerRoot”

dove Apache viene installato

default (Win) "C:\xampp\apache"

file configurazione principale

porte in ascolto, moduli da caricare, …

default (Win) "C:\xampp\apache\conf\httpd.conf"

file configurazione XAMPP

usato per integrare i componenti (es. PHP, database, …)

default (Win) "C:\xampp\apache\conf\extra\httpd-xampp.conf"

22

Page 23: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Apache – accesso ai file di configurazione

23

Page 24: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

...ServerName localhost:80...ServerRoot "C:/xampp/apache"...DocumentRoot "C:/xampp/htdocs"...Listen 80...LoadModule auth_basic_module modules/mod_auth_basic.soLoadModule mime_module modules/mod_mime.soLoadModule cgi_module modules/mod_cgi.so

Apache – estratto httpd.conf

24

Page 25: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

...<Directory "C:/xampp/cgi-bin">

AllowOverride AllOptions NoneRequire all granted

</Directory>...<IfModule mime_module>

AddType text/html .shtmlAddOutputFilter INCLUDES .shtml

</IfModule>...# XAMPP settingsInclude "conf/extra/httpd-xampp.conf"

Apache – estratto httpd.conf (cont.)

25

Page 26: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

PHP

modulo installato sul server

caricato/utilizzato da application server

configurazione interna all’application server

configurazione del modulo PHP

impostazioni specifiche (es. upload di file, sessioni, …)

integrato e preconfigurato in XAMPP

installato in C:\xampp\php\ (in MS Windows)

file configurazione Apache

C:\xampp\apache\conf\extra\httpd-xampp.conf(in MS Windows)

file configurazione modulo PHP

C:\xampp\php\php.ini (in MS Windows)

26

Page 27: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

PHP – file di configurazione per Apache

27

Page 28: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

php7_module "C:/xampp/php/php7apache2_4.dll"LoadFile "C:/xampp/php/php7ts.dll"LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

<FilesMatch "\.php$"SetHandler application/x-httpd-php

</FilesMatch><FilesMatch "\.phps$">

SetHandler application/x-httpd-php-source</FilesMatch>

PHP – estratto httpd-xampp.conf

software che implementa PHP

28

Page 29: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

"LoadFile "C:/xampp/php/php7ts.dll"LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

<FilesMatch "\.php$">SetHandler application/x-httpd-php

</FilesMatch><FilesMatch "\.phps$">

SetHandler application/x-httpd-php-source</FilesMatch>

PHP – estratto httpd-xampp.conf

estensione “.php” (notare regexp!): file eseguito dall'interprete PHP

29

Page 30: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

"LoadFile "C:/xampp/php/php7ts.dll"LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

<FilesMatch "\.php$">SetHandler application/x-httpd-php

</FilesMatch><FilesMatch "\.phps$">

SetHandler application/x-httpd-php-source</FilesMatch>

PHP – estratto httpd-xampp.conf

estensione ".phps" (PHP Source): file NON eseguito dall'interprete PHP !

30

Page 31: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

PHP – file di configurazione per PHP

file di configurazione per impostazioni specifiche PHP

31

Page 32: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Apache - verifica installazione

caricare il file "ciao.html" nella DocumentRoot di Apache

C:\xampp\htdocs (in MS Windows)

aprire il browser alla URL:

http://localhost/ciao.html

<!DOCTYPE html><html><head>

<meta charset=ütf-8"><title>Saluti HTML</title>

</head><body>

<p>Ciao!</p></body></html>

ciao.html

32

Page 33: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

PHP - verifica installazione

caricare il file "ciao.php" nella DocumentRoot di Apache

C:\xampp\htdocs” (in MS Windows)

aprire il browser alla URL:

http://localhost/ciao.php

<!DOCTYPE html><html><head>

<meta charset=ütf-8"><title>Saluti PHP</title>

</head><body>

<p><?php echo "Ciao da PHP!" ?></p></body></html>

ciao.php

33

Page 34: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP portabile - problema

installare su memoria esterna, semplice ma ...

su host diversi, possibili unita logiche diverse (E:\xampp, G:\xampp)

il pannello di controllo parte comunque ...

ma i file di configurazione possono contenere percorsi errati

34

Page 35: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP portabile - problema

35

Page 36: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP portabile - problema

vedere i log per investigare

l’errore

36

Page 37: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP portabile - problema

[Mon May 04 07:08:03.729200 2015] [ssl:warn] [pid 18020:tid 244] AH01909:www.example.com:443:0 server certificate does NOT includean ID which matches the server name

[Mon May 04 07:08:04.246200 2015] [mpm_winnt:notice][pid 18020:tid 244] AH00455: Apache/2.4.12 (Win32)OpenSSL/1.0.1l PHP/5.6.8 configured -- resuming normal operations

[Mon May 04 07:08:04.246200 2015] [mpm_winnt:notice][pid 18020:tid 244] AH00456:Apache Lounge VC11 Server built: Jan 28 2015 16:48:40

[Mon May 04 07:08:04.246200 2015] [core:notice] [pid 18020:tid 244] AH00094:Command line: 'g:\\xampp\\apache\\bin\\httpd.exe -d G:/xampp/apache'

[Mon May 04 07:08:04.280200 2015] [mpm_winnt:notice]

[pid 18020:tid 244] AH00418: Parent: Created child process 19664

Logs –> Apache (error.log)

37

Page 38: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

XAMPP portabile – soluzioni

1. Open Computer Management by clicking the Start button, right-clicking Computer, select Manage

• if you're prompted for an administrator password or confirmation, type the password or provide confirmation.

2. In the left pane, click Disk Management

3. Right-click the drive that you want to change, and then click Change Drive Letter and Paths.

cambiare tutti i percorsi nei file di configurazione

molti, soprattutto per Apache -> possibili errori!!!

possibile usare percorsi relativi (tranne che per serverRoot e documentRoot)

cambiare lettera associata all’unità esterna:

38

Page 39: ,QWURGX]LRQHD ;$033lioy/01nbe/xampp.pdf · ,qvwdood]lrqh gl ;$033 lq :lqgrzv $77(1=,21( lq prowh lqvwdood]lrql gl :lqgrzv od fduwhood udglfh gho glvfr & q ulvhuydwd shu hohphqwl gho

Possibili conflitti

a volte l'avvio di Apache (o di un altro servizio, es. MySQL) fallisce

oltre ad errori nei file di configurazione, il fallimento può essere dovuto a porte già occupate

(WIN) le porte occupate in ascolto di possono vedere connetstat –a | find "LISTENING"

caso tipico è Skype

Skype cerca sempre di occupare la porta 80/tcp se disponibile (creando così un conflitto con Apache che vorrebbe usare la stessa porta)

in questo caso terminare Skype e riprovare l'avvio di Apache

dopo che Apache è partito regolarmente, si può riavviare Skype (che sceglierà una porta diversa dalla 80/tcp per comunicare con i peer)

in Win 10 altro caso tipico: IIS (porta 80)39