Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, installazione, configurazione - phpMyAdmin - Interazione tra PHP e MySQL

Download Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, installazione, configurazione - phpMyAdmin - Interazione tra PHP e MySQL

Post on 02-Jul-2015

165 views

Category:

Education

1 download

Embed Size (px)

DESCRIPTION

Master: Amministratore Linux - Livello Avanzato Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato. Il contenuto del corso allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico disponibile liberamente con licenza Creative Commons BY-NC-SA. I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno. Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin

TRANSCRIPT

  • 1. www.php.netPercorso 7PHP e MySQL3

2. PHPInstallazioneE un modulo di ApacheInstallare: libapache2-mod-php5$ sudo a2enmod php5Configurazione/etc/php5/apache2/php.iniConfigurazioni disponibili (da copiare o linkare)/usr/share/php5/php.ini-development/usr/share/php5/php.ini-productionPercorso 7PHP e MySQL4 3. TestCreare una pagina con estensione .phpphpinfo.phpContenente listruzione Caricare la pagina con un client web e controllare il risultatoPercorso 7PHP e MySQL5 4. TestPercorso 7PHP e MySQL6 5. EsercizioCreare una pagina php che richiami la funzione phpinfo()Richiamare la pagina e verificare il contenuto con un browserPercorso 7PHP e MySQL7 6. PHP come linguaggioCiao mondo !Percorso 7PHP e MySQL8 7. Today isVisualizzare la scritta:Today is ...Staticamente: Today is 13/05/2003 E domani?Percorso 7PHP e MySQL9 8. Today isDinamicamenteToday is Si aggiorna in tempo realePercorso 7PHP e MySQL10 9. Pagine dinamiche come?Una pagina php un software, che genera lo stesso output a parit di inputLa pagina pu generare output diversi solo in funzione delle variazioni dei suoi inputPercorso 7PHP e MySQL11Quali sono gli input che possono variare, nellesecuzione di una pagina web dinamica? 10. Pagine dinamiche come?Una pagina php un software, che genera lo stesso output a parit di inputLa pagina pu generare output diversi solo in funzione delle variazioni dei suoi inputPercorso 7PHP e MySQL12Quali sono gli input che possono variare, nellesecuzione di una pagina web dinamica?Tempo (data/ora) di sistemaInformazioni fornite dallutente (FORM POST o GET)Informazioni presenti in un databaseInformazioni fornite dallutente (Ajax)Informazioni contenute in file sul serverInformazioni fornite da servizi esterni 11. php.iniFile di testo, composto da coppiedirettiva = valoreSezioni definite con [sezione], ma praticamente ignorate (sono usate solo in modalit CGI)Percorso 7PHP e MySQL13 12. Direttive php.ini principali (1)engine = OnAttiva linterprete PHPshort_open_tag = OffNon abilita tag abbreviati , obbliga alla forma completa asp_tags = OffIdem per tag Percorso 7PHP e MySQL14 13. Direttive php.ini principali (2)output_buffering = Offoutput_buffering = 4096Ritarda linvio della risposta al web server, memorizzandola in un bufferQuando la risposta arriva al server web, esso deve inviarla al client, e quindi dovr generare tutti gli header HTTPFinch la risposta nel buffer, ancora possibile modificare gli headerPercorso 7PHP e MySQL15 14. Direttive php.ini sugli errorierror_reporting = E_ALL|E_STRICTerror_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICTerror_reporting = E_ALLQuali messaggi di errore mostrare (gli altri sono ignorati)display_errors = OffMostra errori nella risposta HTMLlog_errors = OnInvia errori al log di sistemaerror_log = "/var/log/php_errors.log"error_log = syslogPercorso 7PHP e MySQL16 15. Tipi di errorePercorso 7PHP e MySQL17 16. Direttive php.ini sui limiti di risorsedate.timezone = "US/Central"Fuso orario del servermax_execution_time = 30max_input_time = 60memory_limit = 128Mpost_max_size = 8Mupload_max_filesize = 2MPercorso 7PHP e MySQL18 17. Direttive php.ini sulle sessionisession.use_cookies = 1session.name = PHPSESSIDsession.cookie_lifetime = 0Durata sessione fino al riavvio del browsersession.cookie_path = /Eventuali limitazioni a porzioni del sitoPercorso 7PHP e MySQL19 18. MySQLInstallazionemysql-serverphp5-mysqlConfigurazionemy.cnf (in /etc/mysql)sudo service mysql start / stop / restartPercorso 7PHP e MySQL21 19. Configurazione server (my.cnf)[mysqld]user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usrdatadir = /var/lib/mysqltmpdir = /tmpbind-address = 127.0.0.1Percorso 7PHP e MySQL22 20. Porte di retePorta di default mysql: 3306Solitamente rimane in ascolto (bind) solamente sullinterfaccia di loopback (localhost)Sconsigliato fornire accesso SQL ad altri client sulla LANEventualmente solo al web server, se risiede su una macchina diversa da mysqlPercorso 7PHP e MySQL23 21. Data directoryContiene i databaseFile binari, non toccare Ma backuppare (!)Percorso 7PHP e MySQL24 22. Amministrazione serverComandi SQL via command linemysqlTool di configurazione da linea di comandomysqladminTool di configurazione web-basedWebminPhpMyAdminAltri client SQLPercorso 7PHP e MySQL25 23. Utente root mysqlNon centra nulla con lutente root di LinuxUtente privilegiato per laccesso al databaseNellinstallazione di default, non ha password (!)Percorso 7PHP e MySQL26 24. Connessione direttamysql -u root (no password)mysql -u root -p (ask password)Inserire comandi SQLUscire con qPercorso 7PHP e MySQL27 25. EsercizioInstallare MySQL (se necessario)Collegarsi al database con il tool mysql, come utente rootVisualizzare i database esistentiVisualizzare le tabelle nei databaseSettare una password per lutente root (come prova, possiamo usare toor come password)Uscire da MySQLPercorso 7PHP e MySQL28 26. Mysqladminmysqladmin [options] command [command-arg] [command [command- arg]] ...--user=user_name--password[=password]create db_namepassword "new-password"statusprocesslistPercorso 7PHP e MySQL29 27. Webmin per MySQLPercorso 7PHP e MySQL30 28. phpMyAdminClient/frontend SQL molto potente e user friendlyScritto completamente in PHPwww.phpmyadmin.net/Percorso 7PHP e MySQL31 29. Installazione phpMyAdminsudo apt-get install phpmyadminNecessari i repository universe di UbuntuRispondere alle domande poste durante linstallazioneAccedere con: http://192.168.56.xxx/phpmyadmin/Percorso 7PHP e MySQL32 30. phpMyAdminPercorso 7PHP e MySQL33ServerDatabasesTablesData 31. EsercizioInstallare phpMyAdminCollegarsi al database ed esplorare le tabelleCreare un nuovo database RubricaCreare una tabella People nel database rubrica, avente i campi: id, cognome, nome, telefonoPopolare la tabella People con alcuni dati di provaPercorso 7PHP e MySQL34 32. Accedere a MySQL dagli script PHPAlcuni moduli di PHP permettono di accedere a MySQL, eseguire query, e recuperare i risultatimysql libreria storica (deprecata)mysqli versione aggiornata (i=improved)PDO (PHP Data Objects), API object-oriented e database-independent (quasi...)PEAR MDB2 33. Concetti baseConnectionQuery StatementResult SetColumn value(s)Percorso 7PHP e MySQL37 34. ConnessioneScelta DBQueryDisconnessionePreparaEseguiEstrai rigaEstrai colonneFinePercorso 7PHP e MySQL38 35. EsercizioScrivere una pagina PHP che estragga i valori della tabella People nel database Rubrica, e li visualizzi sul browserNon utilizzare lutente root per la connessione, ma creare uno specifico utente web con i privilegi sul solo database RubricaPercorso 7PHP e MySQL39 36. Riferimentihttps://help.ubuntu.com/community/ApacheMySQLPHPhttp://php.net/manual/http://dev.mysql.com/doc/refman/5.6/en/index.htmlPercorso 7PHP e MySQL40 37. These slides are licensed under a Creative CommonsAttribution Non Commercial Share Alike 4.0 InternationalTo view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/Versione in Italiano:https://creativecommons.org/licenses/by-nc-sa/4.0/deed.it