Istallazione lemp su debian 10

Passaggio 1: installazione del server Web Nginx

Per servire le pagine web ai visitatori del tuo sito, impiegheremo Nginx, un server web popolare che è ben noto per le sue prestazioni e stabilità complessive.

Tutto il software che userete per questa procedura verrà direttamente dai repository di pacchetti predefiniti di Debian. Ciò significa che è possibile utilizzare la suite di gestione dei pacchetti apt per completare l’installazione.

Poiché è la prima volta che utilizzerai apt per questa sessione, dovresti iniziare aggiornando l’indice del pacchetto locale. È quindi possibile installare il server:

sudo apt update
sudo apt install nginx

Passaggio 2: installazione di MariaDB

Ora che hai un server web attivo e funzionante, devi installare il sistema di database per poter archiviare e gestire i dati per il tuo sito.

In Debian 10, il metapacchetto mysql-server, che era tradizionalmente usato per installare il server MySQL, è stato sostituito da default-mysql-server. Questo metapacchetto fa riferimento a MariaDB, un fork della community del server MySQL originale di Oracle, ed è attualmente il server di database compatibile con MySQL predefinito disponibile nei repository di gestione pacchetti basati su debian.

Per una compatibilità a lungo termine, tuttavia, si consiglia di installare MariaDB invece di utilizzare il metapacchetto utilizzando il pacchetto effettivo del programma, mariadb-server.

Per installare questo software, eseguire:

sudo apt install mariadb-server

Al termine dell’installazione, si consiglia di eseguire uno script di sicurezza preinstallato con MariaDB. Questo script rimuoverà alcune impostazioni predefinite non sicure e bloccherà l’accesso al tuo sistema di database. Avvia lo script interattivo eseguendo:

sudo mysql_secure_installation

Passaggio 3: installazione di PHP per l’elaborazione

Hai Nginx installato per servire i tuoi contenuti e MySQL installato per archiviare e gestire i tuoi dati. Ora puoi installare PHP per elaborare il codice e generare contenuti dinamici per il web server.

Mentre Apache incorpora l’interprete PHP in ogni richiesta, Nginx richiede un programma esterno per gestire l’elaborazione PHP e fungere da ponte tra l’interprete PHP stesso e il server web. Ciò consente prestazioni complessive migliori nella maggior parte dei siti Web basati su PHP, ma richiede una configurazione aggiuntiva. Dovrai installare php-fpm, che significa “gestore di processi PHP fastCGI”, e dire a Nginx di inoltrare le richieste PHP a questo software per l’elaborazione. Inoltre, avrai bisogno di php-mysql, un modulo PHP che consente a PHP di comunicare con database basati su MySQL. I pacchetti core di PHP verranno installati automaticamente come dipendenze.

Per installare i pacchetti php-fpm e php-mysql, eseguire:

sudo apt install php-fpm php-mysql

Ora hai i componenti PHP installati. Successivamente, configurerai Nginx per usarli.
Passaggio 4: Configurare Nginx per utilizzare il processore PHP

Quando si utilizza il server Web Nginx, è possibile utilizzare blocchi di server (simili agli host virtuali in Apache) per incapsulare i dettagli di configurazione e ospitare più di un dominio su un singolo server. In questa guida, useremo your_domain come nome di dominio di esempio.

Su Debian 10, Nginx ha un blocco server abilitato di default ed è configurato per servire documenti da una directory in / var / www / html. Sebbene funzioni bene per un singolo sito, può essere difficile gestirlo se si ospitano più siti. Invece di modificare / var / www / html, creiamo una struttura di directory all’interno di / var / www per il sito Web your_domain, lasciando / var / www / html in posizione come directory predefinita da servire se una richiesta client non corrisponde a nessuna altri siti.

Crea la directory web principale per tuo_dominio come segue:

sudo mkdir /var/www/your_domain

Successivamente, assegna la proprietà della directory con la variabile di ambiente $ USER, che dovrebbe fare riferimento al tuo attuale utente di sistema:

sudo chown -R $USER:$USER /var/www/your_domain

Quindi, apri un nuovo file di configurazione nella directory dei siti disponibili di Nginx usando il tuo editor di riga di comando preferito. Qui useremo nano:

sudo nano /etc/nginx/sites-available/your_domain

Questo creerà un nuovo file vuoto. Incolla nella seguente configurazione bare-bones:

/etc/nginx/sites-available/your_domain

server {
    listen 80;
    listen [::]:80;

    root /var/www/your_domain;
    index index.php index.html index.htm;

    server_name your_domain;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}

Questa è una configurazione di base che è in ascolto sulla porta 80 e serve i file dalla web root appena creata. Risponderà solo alle richieste all’host o all’indirizzo IP fornito dopo nome_server e tutti i file che terminano con .php verranno elaborati da php-fpm prima che Nginx invii i risultati all’utente.

Al termine della modifica, salva e chiudi il file. Se hai usato nano per creare il file, digita CTRL + X e quindi y e INVIO per confermare.

Attiva la tua configurazione collegandoti al file di configurazione dalla directory abilitata per i siti di Nginx:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Questo dirà a Nginx di usare la configurazione la prossima volta che verrà ricaricata. È possibile testare la configurazione per errori di sintassi digitando:

sudo nginx -t

Se vengono segnalati errori, tornare al file di configurazione per rivederne il contenuto prima di continuare.

Quando sei pronto, ricarica Nginx per apportare le modifiche:

sudo systemctl reload nginx

Passaggio 5: creazione di un file PHP per testare la configurazione

Lo stack LEMP ora dovrebbe essere completamente impostato. Puoi testarlo per confermare che Nginx può consegnare correttamente i file .php al tuo processore PHP.

Puoi farlo creando un file PHP di prova nella radice del documento. Apri un nuovo file chiamato info.php nella cartella principale del tuo editor di testo:

nano /var/www/your_domain/info.php

Digita o incolla le seguenti righe nel nuovo file. Questo è un codice PHP valido che restituirà informazioni sul tuo server:

/var/www/your_domain/info.php

<?php
phpinfo();

Al termine, salvare e chiudere il file digitando CTRL + X e quindi y e INVIO per confermare.

Ora puoi accedere a questa pagina nel tuo browser web visitando il nome di dominio o l’indirizzo IP pubblico che hai impostato nel tuo file di configurazione Nginx, seguito da /info.php:

http: //your_domain/info.php

Vedrai una pagina web contenente informazioni dettagliate sul tuo server

Dopo aver verificato le informazioni rilevanti sul tuo server PHP attraverso quella pagina, è meglio rimuovere il file che hai creato in quanto contiene informazioni sensibili sul tuo ambiente PHP e sul tuo server Debian. Puoi usare rm per rimuovere quel file:

 rm /var/www/tuo_dominio/info.php

Passaggio 1: creazione di un database e utente per WordPress

WordPress ha bisogno di un database basato su MySQL per archiviare e gestire le informazioni sul sito e sugli utenti. La nostra configurazione utilizza MariaDB, un fork della community del progetto MySQL originale di Oracle. MariaDB è attualmente il server di database compatibile con MySQL predefinito disponibile sul gestore di pacchetti basato su debian repossudo systemctl status php * | grep fpmitories.

Per iniziare, accedi all’account di root (amministrativo) di MariaDB. Se MariaDB è configurato per utilizzare il plug-in di autenticazione auth_socket, che è l’impostazione predefinita, è possibile accedere all’account amministrativo MariaDB utilizzando sudo:

sudo mariadb

Se hai modificato il metodo di autenticazione per utilizzare una password per l’account root MariaDB, utilizza invece il formato seguente:

mariadb -u root -p

Ti verrà richiesta la password impostata per l’account root di MariaDB.

Innanzitutto, possiamo creare un database separato che WordPress può controllare. Puoi nominarlo come preferisci, ma useremo wordpress in questa guida per renderlo semplice. È possibile creare il database per WordPress digitando:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Successivamente, creeremo un account utente MariaDB separato che utilizzeremo esclusivamente per operare sul nostro nuovo database. La creazione di database e account a una funzione è una buona idea dal punto di vista della gestione e della sicurezza. Useremo il nome wordpress_user in questa guida. Sentiti libero di cambiarlo, se lo desideri.

Il seguente comando creerà questo account, imposterà una password e consentirà l’accesso al database che abbiamo creato. Ricorda di scegliere una password complessa per l’utente del database:

GRANT ALL ON wordpress.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'password';

Ora hai un database e un account utente, ognuno creato appositamente per WordPress. Dobbiamo svuotare i privilegi in modo che l’attuale istanza del server di database sia a conoscenza delle recenti modifiche che abbiamo apportato:

FLUSH PRIVILEGES;

EXIT

Passaggio 2: installazione di estensioni PHP aggiuntive

Durante l’impostazione del nostro stack LEMP, abbiamo richiesto solo un set minimo di estensioni per consentire a PHP di comunicare con MariaDB. WordPress e molti dei suoi plugin sfruttano estensioni PHP aggiuntive.

Possiamo scaricare e installare alcune delle estensioni PHP più popolari da utilizzare con WordPress digitando:

sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xmlrpc php-cgi php-common php-pear php-zip php-net-socket php-xml-util php-gettext php-mysql php-bcmath unzip wget git curl

Al termine dell’installazione delle nuove estensioni, dovrai riavviare il processo PHP-FPM in modo che il processore PHP in esecuzione possa sfruttare le funzionalità appena installate:

sudo systemctl restart php7.3-fpm.service

Potrebbe essere necessario regolare la parte evidenziata del comando con la versione specifica di PHP-FPM, poiché ciò può variare. Per verificare il nome esatto del servizio che è necessario utilizzare all’interno dei comandi systemctl, è possibile utilizzare:

sudo systemctl status php* | grep fpm.service

Open the php.ini file:
sudo nano /etc/php/7.3/fpm/php.ini

Make the following changes:
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 32M
date.timezone = Europe/Rome

Passaggio 3: configurazione di Nginx

sudo nano /etc/nginx/sites-available/domain.name

server {
        listen 80;
        root /var/www/wordpress;
        index index.php;
        server_name domain.name www.domain.name;

        access_log /var/log/nginx/domain.name_access.log;
        error_log /var/log/nginx/domain.name_error.log;

        client_max_body_size 64M;
    	  location = /favicon.ico {
        	log_not_found off;
        	access_log off;
    	  }

    	 location = /robots.txt {
       	allow all;
       	log_not_found off;
       	access_log off;
	  }

        location / {
                try_files $uri $uri/ /index.php?$args;
                }

        location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_read_timeout 3600s;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 4 128k;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
                fastcgi_index index.php;
                }
    	  location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        	    expires max;
        	   log_not_found off;
    		}
      }

Al termine, salva e chiudi il file.

Ora, possiamo verificare la nostra configurazione per errori di sintassi digitando:

sudo nginx -t

Se non sono stati segnalati errori, ricaricare Nginx digitando:

sudo systemctl reload nginx

Assicurati di aggiornare il nome di dominio tecmint.com con il tuo nome di dominio.

Per attivare o abilitare il file di blocco del server, creare un collegamento simbolico come mostrato.

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

sudo nginx -t

sudo systemctl restart nginx

sudo systemctl restart php7.3-fpm.service

Ora che i nostri file sono a posto, assegneremo loro la proprietà all’utente e al gruppo di dati www. Questo è l’utente e il gruppo su cui viene eseguito Nginx e Nginx dovrà essere in grado di leggere e scrivere file WordPress per servire il sito Web ed eseguire aggiornamenti automatici.

sudo chown -R www-data:www-data /var/www/wordpress

Ora che la configurazione del server è completa, possiamo completare l’installazione tramite l’interfaccia web.

Nel browser Web, accedi al nome di dominio o all’indirizzo IP pubblico del tuo server:

http://server_domain_or_IP

Istallazione phpmyadmin come per wordpress su ngnix

Importare create_tables.sql per creare tabelle per phpMyAdmin.

sudo mysql < /var/www/phpMyAdmin/sql/create_tables.sql -u root -p

Effettuare il login a mariadb

sudo mysql -u root -p

Aggiungi l’utente e concedi l’autorizzazione al database di phpMyAdmin.

GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'utente_phpmyadmin'@'localhost' IDENTIFIED BY 'tuapassword';

FLUSH PRIVILEGES;

È possibile seguire i passaggi per disabilitare l’autenticazione socket Unix e abilitare l’accesso con password nativa nel caso richiesto.

Accedi al database MariaDB con l’utente root.

# mysql -u root -p

Eseguire le query seguenti nel database MariaDB. Questa query abilita l’accesso con password nativa disabilitando l’accesso al socket Unix.

use mysql;

update user set plugin='mysql_native_password' where user='root';

flush privileges; 

quit;

Lascia un commento

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

Torna su