Ricerca nel sito web

Come installare e configurare LAMP su Debian 11 (Bullseye)


Una delle cose più importanti per configurare un server Linux è ai fini della distribuzione di uno o più siti Web. Secondo il sondaggio di febbraio 2022 di NetCraft.com condotto su 1 milione di siti web più trafficati al mondo, circa il 23,44% di essi funziona su Apache.

Questo tutorial illustrerà le basi dell'installazione e della configurazione di un server Linux (in particolare Debian 11 Bullseye) per funzionare come server LAMP.

Cos'è LAMP Server?

Nel mondo informatico LAMP acronimo di Linux (qui utilizzando Debian 11), Apache, MySQL, e PHP (LAMP). LAMP è comunemente utilizzato per fare riferimento a stack software (in particolare MySQL e PHP) su un server web.

Prima di addentrarci negli aspetti di configurazione, è importante conoscere il server web Apache.

Cos'è il server Web Apache?

Apache è stato uno dei server web "originali" e le sue origini risalgono al 1995. Apache è ancora ampiamente utilizzato oggi e beneficia di longevità, elevate quantità di documentazione e tonnellate di moduli per aggiungere flessibilità.

Installazione di MySQL e PHP in Debian 11

1. Questa prima parte descriverà Debian come un server MySQL e PHP. Il segmento Linux di LAMP dovrebbe già essere realizzato installando Debian 11 dal seguente articolo su TecMint:

  • Una nuova installazione di Debian 11 Bullseye

Una volta che Debian è pronta, è il momento di installare il software necessario utilizzando il meta-packager "apt".

sudo apt install mariadb-server php libapache2-mod-php php-zip php-mbstring php-cli php-common php-curl php-xml php-mysql

2. Al termine dell'installazione di MySQL e PHP, spesso si consiglia di proteggere l'installazione di MySQL utilizzando l'utilità mysql_secure_installation.

Una volta eseguito il comando seguente, verrà chiesto all'utente di impostare la password root e rimuovere elementi come utenti anonimi, testare database e rimuovere l'accesso utente root remoto al database SQL.

sudo mysql_secure_installation

3. Ora che MySQL è configurato, andiamo avanti per definire alcune impostazioni di base PHP per questo particolare server. Sebbene esistano numerose impostazioni che possono essere configurate per PHP, ne faremo alcune di base che sono per lo più sempre necessarie.

Il file di configurazione php aperto si trova in /etc/php/7.4/apache2/php.ini.

sudo vi /etc/php/7.4/apache2/php.ini

Ora cerca la stringa "memory_limit" e aumenta il limite in base alle esigenze della tua applicazione.

Un'altra impostazione importante da verificare è "max_execution_time" e, ancora una volta, per impostazione predefinita sarà impostato su 30. Se un'applicazione richiede di più, è possibile modificare questa impostazione.

A questo punto, MySQL e PHP5 sono pronti per iniziare a ospitare siti. Ora è il momento di configurare Apache2.

Installazione e configurazione di Apache2

4. Ora è il momento di configurare Apache 2 per completare la configurazione del server LAMP. Il primo passo per configurare Apache2 è installare effettivamente il software utilizzando il metapackager apt.

sudo apt install apache2

Questo installerà tutti i file e le dipendenze necessari per Apache2.

Una volta installato, il server web Apache sarà attivo e servirà una pagina web predefinita. Esistono diversi modi per verificare che il server Web Apache sia attivo e funzionante. L'opzione più semplice è utilizzare l'utilità lsof:

sudo lsof -i :80

L'altra opzione è semplicemente navigare verso l'indirizzo IP del server web. Supponendo un'installazione predefinita di Debian, il sistema sarà probabilmente configurato per utilizzare DHCP per ottenere automaticamente un indirizzo IP.

Per determinare l'indirizzo IP del server, è possibile utilizzare una delle due utilità. Entrambe le utilità funzioneranno in questa situazione.

ip show addr			[Shown below in red]
ifconfig			[Shown below in green]

Indipendentemente dall'utilità utilizzata, l'indirizzo IP ottenuto può essere inserito in un browser web su un computer sulla stessa rete per confermare che Apache sta visualizzando la pagina predefinita.

http://IP-Address

A questo punto Apache è attivo e funzionante. Sebbene la pagina predefinita di Debian sia un sito Web appariscente, la maggior parte degli utenti vorrà ospitare qualcosa di personalizzato. I passaggi successivi descriveranno la configurazione di Apache 2 per ospitare un sito Web diverso.

Hosting di più siti Web con Apache in Debian

5. Debian ha confezionato alcune utilità utili per la gestione sia dei siti che dei moduli. Prima di illustrare come utilizzare queste utilità, è importante comprendere le funzioni che svolgono.

  • a2ensite: questa utility viene utilizzata per abilitare un sito Web dopo aver creato il file di configurazione appropriato.
  • a2dissite: questa utility viene utilizzata per disabilitare un sito Web specificando il file di configurazione del sito Web.
  • a2enmod: questa utility viene utilizzata per abilitare moduli Apache2 aggiuntivi.
  • a2dismod: questa utility viene utilizzata per disabilitare moduli Apache2 aggiuntivi.
  • a2query: questa utilità può essere utilizzata per raccogliere informazioni sui siti attualmente abilitati.

Prima di tutto raccogliamo un po’ di esperienza con i primi due. Dato che Apache 2 attualmente ospita la "pagina web predefinita", andiamo avanti e disabilitiamola con a2dissite.

sudo a2dissite 000-default.conf

Questo comando disabiliterà il sito Web Apache predefinito visualizzato nello screenshot sopra. Tuttavia, affinché eventuali modifiche abbiano effetto, è necessario ricaricare la configurazione di Apache 2.

sudo systemctl reload apache2

Questo comando istruirà Apache 2 ad aggiornare i siti abilitati/disabilitati che sta attualmente ospitando. Ciò può essere confermato tentando di connettersi nuovamente all'indirizzo IP del server web e notando che non viene visualizzato nulla (alcuni computer memorizzeranno nella cache le informazioni, se la macchina mostra ancora il sito Web predefinito dopo l'esecuzione dei due comandi precedenti, provare a cancellare il web- cache del browser). Un'altra opzione per confermare che il sito non è più abilitato è utilizzare l'utilità a2query.

sudo a2query -s

C'è molto da fare in questa schermata, quindi analizziamo le cose.

  • Il riquadro verde sopra è a2query -s che indica ad Apache 2 di indicare quali siti sono attualmente serviti.
  • La casella gialla è a2dissite 000-default.conf seguita dal servizio apache2 reload. Questi due comandi indicano ad Apache 2 di disabilitare il sito predefinito e quindi di ricaricare i siti attivi/inattivi.
  • La casella rossa è a2query -s che viene nuovamente emessa, ma nota che questa volta Apache risponde che non viene servito nulla.

Esaminiamo ora la creazione di un sito non predefinito. Il primo passo è passare alla directory di configurazione di Apache 2 che è /etc/apache2 utilizzando l'utilità cd.

cd /etc/apache2

Ci sono diversi file e directory importanti in questa directory, tuttavia, per brevità, qui verranno trattati solo quelli necessari.

La prima cosa da fare quando si configura un nuovo sito è creare un nuovo file di configurazione nella directory "siti disponibili". Cambia le directory nella directory "sites-available" e quindi crea un nuovo file di configurazione.

cd sites-available
sudo cp 000-default.conf tecmint-test-site.conf

Ciò copierà la configurazione dal sito predefinito nel nuovo file di configurazione del sito per ulteriori modifiche. Apri la nuova pagina di configurazione del sito con un editor di testo.

sudo vi tecmint-test-site.conf

All'interno di questo file c'è una riga molto importante per ottenere un sito Web ospitato, quella riga è la riga "DocumentRoot". Questa riga indica ad Apache dove si trovano i file web necessari che dovrebbero servire quando arrivano richieste per risorse particolari.

Per ora, questa riga sarà impostata su una directory che non esiste ma che lo sarà a breve e conterrà un semplice sito Web da visualizzare su questo server Debian.

DocumentRoot /var/www/tecmint

Salva le modifiche in questo file e chiudi l'editor di testo.

Ora la directory da cui ad Apache 2 è stato appena detto di servire i file deve essere creata e popolata con i file. Anche se questo articolo funzionerà con i file HTML, probabilmente non c'è abbastanza tempo per spiegare come creare un sito Web completamente funzionante e lascia questo processo al lettore.

Creiamo quindi la directory che Apache potrà servire e aggiungiamo una pagina web html di base chiamata "index.html".

sudo mkdir /var/www/tecmint
touch /var/www/tecmint/index.html
echo “It's ALIVE!” >> /var/www/tecmint/index.html

I comandi precedenti creeranno una nuova directory chiamata "tecmint" così come un nuovo file chiamato "index.html" nella directory tecmint.

Il comando echo inserirà del testo in quel file in modo che venga effettivamente visualizzato qualcosa nel browser web quando Apache serve il sito web.

Nota: la pagina creata per questo tutorial dall'autore verrà visualizzata in modo diverso! Ora, utilizzando i comandi discussi in precedenza, è necessario dire ad Apache di servire questo nuovo documento html.


sudo a2ensite tecmint-test-site.conf
sudo systemctl reload apache2
sudo a2query -s tecmint-test-site.conf

L'ultimo comando sopra confermerà semplicemente che Apache2 sta effettivamente servendo il sito web appena creato. A questo punto, naviga nuovamente con un browser web fino all'indirizzo IP del server e controlla se il sito web appena creato viene visualizzato (anche in questo caso, ai computer piace memorizzare nella cache i dati e, di conseguenza, potrebbero essere necessari diversi aggiornamenti per ottenere la nuova pagina web).

Se viene visualizzato il sito "It's ALIVE!!!" appena creato, significa che Apache 2 è stato configurato con successo e sta visualizzando il sito web.

Congratulazioni! Anche se si tratta di una configurazione semplice che prepara un server Linux LAMP per ospitare un sito, ci sono cose molto più complesse che possono essere fatte e la configurazione dipende molto da questo obiettivo finale.