TPSIT: il server Web - LAMP

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

http://localhost

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:

  1. log into MYSQL as root
    mysql -u root
  2. Grant privileges. To a new user execute:

dove al newuser darò i privilegi per creare un database

  1. CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
    FLUSH PRIVILEGES;
  2. 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 
  3. 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:

 

Info su Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *