[:it]Il server web è un software che gira su un server con porte dedicate che permette di comunicare con i client ad essi connessi.
Un server web, per poter comunicare usa un protocollo http.
Ogni volta che si scrive un indirizzo Internet, il browser traduce la richiesta in una richiesta http e la consegna al server indicato. Riceve poi da questo una risposta http e un file HTML che viene tradotto (rendering) sotto forma di testo e immagini per mostrarlo a video.
Il protocollo più utilizzato a tal fine è l’HTTP ( HyperText Transfer Protocol).
Il server http può essere utilizzato come servizio in una qualunque rete, installando un server web.
Per il servizio http si utilizza la porta 80 oppure 8080.
Il server web multipiattaforma, più diffuso nei sistemi Linux è APACHE (leggi apaci).
Per installare un server Apache
digitare il seguente comando
sudo apt-get install apache2 oppure apache oppure httpd
(si consiglia di disinstallare, precedentemente all’installazione di Apache, il server thttpd, che è un server web) con il seguente comando
sudo apt-get remove thttpd
Il programma di installazione crea la directory
/etc/apache2
(qui si trovano i files di configurazione ed il file principale è apache2.conf)
e scrive
il file apache2 nella directory /etc/init.d
Crea inoltre la directory /var/www
In www verranno memorizzate le pagine web, e a installazione avvenuta risulta creata la pagina index.html.
Al termine dell’installazione, per verificare il corretto funzionamento del server, si può provare a digitare nella barra di un browser
Al termine dell’installazione, il server viene avviato automaticamente, se ciò non avviene utilizzare il seguente comando con le opzioni
start restart stop
sudo /etc/init.d/apache2 start
Pagine statiche e pagine dinamiche
Le pagine statiche sono scritte solamente con codice HTML ed al loro interno contengono già tutti i dati che verranno poi mostrati all’utente finale.
Le pagine dinamiche, invece, oltre ad HTML, usano altri linguaggi (PHP, ASP, ecc. ) attraverso i quali si crea un’iterazione tra la richiesta del client e il server che elabora la richiesta stessa.
In generale quindi l’ambiente che si predispone è non solo un server web Apache ma anche Mysql e PHP.
In questo caso si parla di configurazione LAMP= Linux Apache MySQL PHP
PHP
Con il comando:
sudo apt install php7.0-cli
installo php7.
con il comando:
php -r ‘echo “\n\nInstallazione avvenuta con successo\n\n\n”;’
verifico a terminale che l’installazione è avvenuta con successo.
avendo installato la versione 7 di php è necessario che sia presente il modulo che permetta l’interfacciamento con Apache2
con il seguente comando si crea il modulo opportuno:
sudo apt install libapache2-mod-php7.0
a questo punto fare il restart del server
Per verificare che tutto funzioni creare il file test.php nella libreria /var/www/html
con il seguente comando:
sudo nano /var/www/html/test.php
all’interno del file editare le seguenti righe di codice:
<html>
<head>
<title>Test PHP</title>
</head>
<body>
<?php
phpinfo();
?>
</body>
</html>
(nano è un ulteriore editor presente in linux)
per usarlo e salvare un file usare CTRL e il relativo comando suggerito nell’editor.
Per richiamarlo basta digitare nano dal terminale e si avrà:
infine per verificare che funzioni, si va sul browser e si digita:
http://localhost/test.php
e comparirà la seguente schermata:
Mysql – MariaDB
Ultimo passo per gestire completare la LAMP è installare un database, nel caso specifico un database relazionale RDBMS.
Con la versione Debian 9.4.0 chiamata Stretch non si utilizza più Mysql ma MariaDB
Le differenze sono poche ma esso è un’evoluzione del Mysql:
https://mariadb.com/kb/it/mariadb-vs-mysql-compatibilita/
Con il seguente comando installo mysql e l’interfaccia con php
sudo apt-get install mysql-server php7.0-mysql
durante la fase di installazione si chiede di impostare la password di amministratore del server mysql.
Operare in mysql – mariaDB
con il comando
mysql -u root -p
si chiede la password di amministratore e si connessi con la console del server mysql.
Si avrà la seguente schermata:
digitando poi il comando
show database
ho come output:
con il comando quit esco dalla console del database
Per gestire il database si può usare sempre la console ma rimane molto più pratico usare una console dedicata
phpMyAdmin
Con il comando
sudo apt-get install phpmyadmin
installo il pacchetto di amministrazione
durante l’installazione si chiede con quale webserver si vuole collegare phpadmin e si seleziona apache2
Si lascia che il pacchetto configuri il database necessario digitando la password precedente.
A questo punto aprire come root il file:
sudo nano /etc/apache2/apache2.conf
ed inserire la riga alla fine del file di configurazione:
Include /etc/phpmyadmin/apache.conf
si deve far ripartire il server apache
con il comando
sudo /etc/init.d/apache2 restart
o
sudo service apache2 restart
adesso digitando sul browser:
http://localhost/phpmyadmin si avrà la seguente schermata:
Come nome utente se non è stato modificato in fase d’installazione è root e password quella precedentemente immessa.
Oppure su Debian 9 se non si è cambiato il login si ha:
login phpmyadmin
pwd quella_opportuna
Se dovesse dare come errore:
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
con phpmyadmin non si riesce a creare alcun database per cui si deve creare un utente che permette il collegamento al database
si devono seguire i seguenti passi:
- log into MYSQL as root
mysql -u root
- Grant privileges. To a new user execute:
dove al newuser darò i privilegi per creare un database
-
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost'; FLUSH PRIVILEGES;
- bind to all addresses:The easiest way is to comment out the line in your /etc/mysql/mariadb.conf.d/50-server.cnf or /etc/mysql/mysql.conf.d/mysqld.cnf file, depending on what system you are running:
#bind-address = 127.0.0.1
- exit mysql and restart mysql
exit service mysql restart
N.B. Per conoscere il nome della versione del sistema operativo usato si deve dare il comando
cat /proc/version
cat /etc/issue
Alla fine avremo al seguente schermata:
[:]