introduzione a xampp - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · xampp...
TRANSCRIPT
![Page 1: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/1.jpg)
Introduzione a XAMPP
Andrea Atzeni ([email protected])Marco Vallini ([email protected])
Politecnico di TorinoDip. Automatica e Informatica
![Page 2: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/2.jpg)
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
![Page 3: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/3.jpg)
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
![Page 4: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/4.jpg)
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 richiestocanale HTTP
file .php
DB(MySQL)
4. lettura datida DB / file
![Page 5: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/5.jpg)
XAMPP per Windows 7 pagina di download
http://www.apachefriends.org/en/xampp-windows.html ultime versioni 5.6.35/7.0.29/7.1.16/7.2.4
a seconda della versione di PHP supportata XP e 2003 non più supportati (ultima versione 1.8.3)
disponibile anche per GNU/Linux Apple Mac OS X Solaris
![Page 6: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/6.jpg)
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”
![Page 7: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/7.jpg)
Installazione di XAMPP in Windows 7
avviare l’installazione conl’utente “Amministratore”
![Page 8: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/8.jpg)
Installazione di XAMPP in Windows 7
FileZilla, Mercury, Tomcat, Perl e Fake Sendmail non
verranno usati durante il corso
![Page 9: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/9.jpg)
Installazione di XAMPP in Windows 7
cartella di installazione
![Page 10: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/10.jpg)
Installazione di XAMPP in Windows 7
non usato nel corso
![Page 11: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/11.jpg)
Avvio di XAMPP
avviare XAMPP con l’utente “Amministratore”
![Page 12: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/12.jpg)
XAMPP – Pannello di controllo
![Page 13: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/13.jpg)
XAMPP – Impostazioni generali
![Page 14: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/14.jpg)
XAMPP – Impostazioni generali
editor di testo per le configurazioni
browser predefinito
avvio automatico dei servizi
![Page 15: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/15.jpg)
XAMPP – Impostazioni servizio
![Page 16: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/16.jpg)
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
![Page 17: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/17.jpg)
Avvio di Apache
avvio di Apache
![Page 18: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/18.jpg)
Avvio di Apache
identificativo/i del processo/i
![Page 19: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/19.jpg)
Avvio di Apache
Apache avviato (porte 80, 443)
![Page 20: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/20.jpg)
Stop di Apache
stop di Apache
![Page 21: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/21.jpg)
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"
![Page 22: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/22.jpg)
Apache – accesso ai file di configurazione
![Page 23: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/23.jpg)
...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
![Page 24: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/24.jpg)
...<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.)
![Page 25: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/25.jpg)
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)
![Page 26: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/26.jpg)
PHP – file di configurazione per Apache
![Page 27: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/27.jpg)
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
![Page 28: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/28.jpg)
LoadFile "C:/xampp/php/php5ts.dll"LoadModule php5_module "C:/xampp/php/php5apache2_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
![Page 29: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/29.jpg)
LoadFile "C:/xampp/php/php5ts.dll"LoadModule php5_module "C:/xampp/php/php5apache2_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 !
![Page 30: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/30.jpg)
PHP – file di configurazione per PHP
file di configurazione per impostazioni specifiche PHP
![Page 31: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/31.jpg)
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 PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<title>Saluti HTML</title></head><body>
<p>Ciao!</p></body></html>
ciao.html
![Page 32: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/32.jpg)
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 PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<title>Saluti PHP</title></head><body>
<p><?php echo "Ciao da PHP!" ?></p></body></html>
ciao.php
![Page 33: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/33.jpg)
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
![Page 34: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/34.jpg)
XAMPP portabile - problema
![Page 35: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/35.jpg)
XAMPP portabile - problema
vedere i log per investigare
l’errore
![Page 36: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/36.jpg)
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)
![Page 37: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/37.jpg)
XAMPP portabile – soluzioni
1. Open Computer Management by clicking the Start button clicking Control Panel, clicking System and Security, clicking Administrative Tools, and then double-clicking Computer Management• if you're prompted for an administrator password or confirmation,
type the password or provide confirmation. 2. In the left pane, click Disk Management3. 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:
http://windows.microsoft.com/en-us/windows/change-add-remove-drive-letter#1TC=windows-7
![Page 38: Introduzione a XAMPP - security.polito.itsecurity.polito.it/~lioy/01nbe/xampp.pdf · XAMPP portabile possibile selezionare solo i servizi necessari (usa meno spazio su disco) Apache,](https://reader031.vdocuments.net/reader031/viewer/2022022613/5b9d941409d3f2df1f8d2d27/html5/thumbnails/38.jpg)
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)