Come ospitare un sito Web (Guida alla configurazione del proprio server)

Come creare un server


Per ospitare un sito Web su un server, dovrai sporcarti le mani e impostare l’intero ambiente da solo. Di seguito, troverai un esempio generalizzato di come eseguire le operazioni utilizzando un server privato virtuale in esecuzione Ubuntu 18.04

In breve, dovrai:

    • Eseguire la configurazione iniziale del server
    • Imposta una zona DNS e punta il tuo dominio
    • Installa uno stack software
    • Crea un host virtuale
    • Metti in funzione il tuo sito Web

Post scriptum Se non vuoi seguire questi passaggi complicati, prendi in considerazione l’idea di ottenere un web hosting.

1. I primi passi di installazione del server

Se decidi di noleggiare un server dedicato o un VPS, dovrai prima gettare solide basi. Ciò comporta l’accesso al server tramite un terminale o un client SSH e l’esecuzione di modifiche e aggiornamenti della sicurezza.

Connetti al tuo server

Inizia connettendoti al tuo server. Il seguente comando farà il trucco:

ssh [e-mail protetta] _server_IP -port

Quando ci si connette per la prima volta, è possibile che venga richiesto di aggiungere l’IP del server all’elenco degli host noti. Digitare per procedere e ti verrà richiesto di inserire il password di root.

aggiunta dell'IP del server a host noti

Ecco un esempio di cosa dovresti vedere sullo schermo se tutto è andato per il verso giusto.

schermata iniziale di accesso a Ubuntu SSH

Ricevi gli ultimi aggiornamenti

Esegui i seguenti comandi per ottenere gli ultimi aggiornamenti per il tuo server Ubuntu 18.04:

sudo apt update
sudo apt upgrade

Quando esegui il secondo comando, vedrai una schermata di conferma. Digitare Y procedere.

confermando gli aggiornamenti del server Ubuntu

Crea un nuovo utente

Successivamente, dovrai aggiungere un nuovo utente, poiché non è consigliabile utilizzare quello principale per le attività quotidiane. Chiamiamolo webmaster. Per iniziare la creazione dell’utente, eseguire:

webmaster adduser

creando un nuovo utente Ubuntu

Dopo aver creato una password, ti verrà chiesto di inserire i dettagli generali (che puoi lasciare in bianco). Quindi digitare Y per confermare la creazione del nuovo utente.

Per impostazione predefinita, il nuovo utente non avrà sufficienti privilegi per fare tutto ciò di cui hai bisogno, quindi dovrai aggiungerli manualmente. Ecco come lo fai:

usermod -aG sudo webmaster

Questo è tutto! Il tuo nuovo utente amministrativo è pronto. Per iniziare a usarlo invece di root, eseguire:

su – webmaster

cambio utente di sistema

Imposta autenticazione chiave pubblica (opzionale)

L’uso di una password per l’autenticazione ti rende vulnerabile ai tentativi di forza bruta e espone il tuo server a un rischio moderato (soprattutto se sei pigro nell’impostare una password unica e sicura).

Un ottimo modo per migliorare l’integrità del server è utilizzare le chiavi SSH invece di una normale password. I passaggi dovrebbero essere identici indipendentemente dalla distribuzione Linux in esecuzione. Iniziare disconnettersi del tuo server ed esegui il seguente comando sul tuo computer locale per creare una nuova chiave pubblica:

ssh-keygen

Ti verrà chiesto di inserire una passphrase aggiuntiva e la posizione in cui salvare la chiave pubblica. Per impostazione predefinita, salva tutto in /Users/Your_User/.ssh directory (che puoi tenere se non hai in mente altri piani).

in esecuzione SSH keygen

Al termine, copia sulla chiave SSH sul tuo server usando:

ssh-copy-id [e-mail protetto] _server_IP

Puoi anche fare lo stesso per il tuo utente root nel caso in cui:

ssh-copy-id [e-mail protetto] _server_IP

spostamento della chiave SSH sul server remoto

Infine, dovrai accedere nuovamente al tuo server. Solo questa volta, utilizzerai la chiave SSH e la relativa passphrase per l’autenticazione. Se la tua password viene indovinata da qualcuno, non sarà in grado di accedere, poiché la chiave pubblica è necessaria per stabilire una connessione corretta.

accedere al server con chiave SSH

Disabilita autenticazione password (opzionale)

Dato che ora sei in grado di accedere al tuo server con la chiave SSH appena generata, è consigliabile disabilitare la normale autenticazione della password. Per fare ciò, possiamo usare il nano editor di testo:

sudo nano / etc / ssh / sshd_config

Cerca una riga che dice #PasswordAuthentication sì, elimina il # e cambia il a a no. Il risultato finale dovrebbe apparire come:

disabilitazione dell'autenticazione password in sshd config

Per salvare queste modifiche e uscire dall’editor nano, premere CTRL + X, digitare Y e premere accedere. E infine, applica tutto ricaricando il servizio sshd:

sudo systemctl ricarica sshd

E questo è tutto! Ora utilizzerai una chiave pubblica per l’autenticazione anziché una password, che è considerata un modo più sicuro per accedere e gestire un server.

Installa un firewall

Infine, ma non meno importante, è consigliabile utilizzare un firewall per proteggersi dai pericoli in agguato sul Web. Il firewall semplice è uno dei migliori strumenti per il lavoro. Per configurarlo, eseguire:

sudo apt-get install ufw

Se installato, il firewall non funzionerà se non attivato manualmente. Puoi abilitarlo usando:

sudo ufw enable

abilitando Ubuntu

Per verificare se è attivo e funzionante, eseguire:

sudo stato ufw dettagliato

2. Configurare una zona DNS

La prossima sfida sarà la creazione di una zona DNS, che funge da materiale vincolante tra un nome di dominio e un server. Possiamo suddividerlo in due passaggi più piccoli:

  1. Impostazione di una zona DNS all’interno del server
  2. Creazione di nameserver personalizzati nel tuo registrar di domini

Crea una nuova zona DNS

Per creare una nuova zona DNS, utilizzeremo uno strumento chiamato bind9. Alla fine, questo è il servizio che ci consente di caricare un sito Web tramite un nome di dominio anziché un indirizzo IP.

Per installare Bind9 sul tuo server Ubuntu 18.04, esegui:

sudo apt-get install bind9

Una volta installato, tutti i file saranno disponibili in / Etc / bind directory. Andiamo prima ad esso:

cd / etc / bind

Per mantenere tutto pulito e organizzato, creeremo una directory separata per le nostre zone DNS:

sudo mkdir -p zone

Creiamo un nuovo file di zona DNS per il nostro dominio. Useremo domain-example.com a scopo dimostrativo (è necessario sostituirlo con il nome effettivo del dominio).

sudo nano zone / domain-example.com

Esempio di frammento di zona DNS:

;
; File di dati BIND per domain-example.com
;
$ TTL 3h
@ IN SOA ns1.domain-example.com. admin.domain-example.com. (
1; Seriale
3h; Aggiorna dopo 3 ore
1h; Riprovare dopo 1 ora
1w; Scade dopo 1 settimana
1h); TTL con memorizzazione nella cache negativa di 1 giorno
;
@ IN NS ns1.domain-example.com.
@ IN NS ns2.domain-example.com.

domain-example.com. IN A YOUR_SERVER_IP
ns1 IN A YOUR_SERVER_IP
ns2 IN A YOUR_SERVER_IP
www IN CNAME domain-example.com.
posta IN A YOUR_SERVER_IP
ftp IN CNAME domain-example.com.
domain-example.com. IN MX 10 domain-example.com.

Assicurati di sostituire tutte le tue istanze Your_Server_IP e domain-example.com con i valori effettivi. Salvare il file della zona premendo CTRL + X e poi digitando Y per confermare le modifiche.

Successivamente, dovremo modificare la configurazione locale e specificare la posizione della nostra zona DNS appena creata. Ciò garantisce che il server sappia quale file di zona appartiene a quale nome di dominio.

sudo nano named.conf.local

Incollate le seguenti righe nella parte inferiore del file durante la sostituzione domain-example.com con il tuo attuale indirizzo del sito web.

zona "domain-example.com" {
tipo master;
file "/etc/bind/zones/domain-example.com";
};

stampa CTRL + X e input Y per salvare le modifiche e chiudere l’editor nano.

Puoi anche verificare se tutto è stato aggiunto e configurato correttamente eseguendo il comando seguente:

sudo named-checkzone domain-example.com /etc/bind/zones/domain-example.com

verifica zona dns

Infine, esegui questi due comandi per riavviare il servizio DNS del tuo server e per assicurarti che sia in esecuzione:

sudo /etc/init.d/bind9 restart
sudo /etc/init.d/bind9 start

A questo punto, la zona DNS è pronta dal lato server. Per finalizzarlo, dovrai creare voci di nameserver personalizzate all’interno del tuo registrar di domini.

Crea server dei nomi personalizzati per il tuo dominio

Poiché abbiamo specificato due nameserver (ns1.domain-example.com e ns2.domain-example.com) nell’esempio della nostra zona DNS, dovremo creare queste voci nel registrar del dominio e utilizzarle.

Ecco come dovrebbero apparire le voci:

Nameserver personalizzato Punta a
ns1.domain-example.com Your_Server_IP
ns2.domain-example.com Your_Server_IP

creazione di nameserver figlio

Una volta creato, dovrai indirizzare il tuo dominio su questi nuovi nameserver.

aggiorna i nameserver

3. Installare lo stack LAMP

LAMP è uno degli stack software più utilizzati del web. È l’acronimo di Linux, Apache HTTP Server, MySQL / MariaDB e PHP. Prima di ospitare un sito, devi assicurarti che tutti questi ingredienti siano disponibili sul tuo server. Ecco come apparirebbe il processo di configurazione usando Ubuntu 18.04:

Apache

Apache HTTP Server potrebbe già essere incluso nei pacchetti predefiniti forniti con il server. In caso contrario, eseguire:

sudo apt-get install apache2

installa Apache

Poiché esiste un firewall, dobbiamo assicurarci che queste porte siano aperte poiché Apache non funzionerà correttamente altrimenti. Ecco cosa dovresti consentire attraverso il firewall:

sudo ufw consentire 80 / tcp
sudo ufw consentire 443 / tcp

Quindi, riavviarlo per assicurarsi che le modifiche siano applicate:

sudo ricarica

A questo punto, ecco cosa dovresti vedere visitando il Indirizzo IP del tuo server attraverso un browser:

pagina predefinita di Apache2

PHP

Per ottenere l’ultima versione di PHP con alcuni moduli extra di cui WordPress ha bisogno, esegui:

sudo apt-get install php php-common php-mysql php-gd php-cli

confermare l'installazione di PHP

Puoi verificare quale versione di PHP è stata installata sul tuo server digitando:

php -v

controlla la versione di PHP

MySQL / MariaDB

MariaDB e MySQL sono due delle migliori scelte per il tuo server di database in Linux. Per questo esempio, useremo MariaDB. Per installarlo sul tuo server, esegui:

sudo apt-get install mariadb-server mariadb-client

installa Mariadb

Una volta terminato, dovrai utilizzare uno script aggiuntivo fornito con il pacchetto. Stabilirà le misure di sicurezza di base per il tuo server di database. Inizia digitando:

sudo mysql_secure_installation

Al primo passo, ti verrà chiesto di fornire la password di MySQL root. premi il accedere per continuare poiché non è stato ancora creato. Quindi seguire le altre istruzioni visualizzate nell’interfaccia della riga di comando.

Installazione sicura di Mariadb

Infine, puoi verificare se il mio server di database è operativo eseguendo:

sudo systemctl status mysql

4 Creare un host virtuale

Il prossimo compito sarà creare una directory dedicata per i file del tuo sito web. Inizia cambiando la tua directory di lavoro:

cd / var / www / HTML

Usa questo comando per creare una cartella per il tuo dominio e una cartella aggiuntiva all’interno di:

sudo mkdir -p domain-example.com/public_html

Quindi, crea il file webmaster utente che abbiamo creato in precedenza il proprietario utilizzando:

sudo chown -R webmaster: webmaster domain-example.com/public_html

Dovrai anche assicurarti che le autorizzazioni di lettura siano applicate alla directory principale di Apache. In questo caso:

sudo chmod -R 755 / var / www / html /

A questo punto, Apache ottiene tutte le impostazioni dal 000-default.conf file. Dovremo copiare i contenuti di questo file e crearne uno separato per il nostro nome di dominio. Il modo più semplice per copiare un modello della configurazione dell’host virtuale è utilizzando il comando seguente:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain-example.com.conf

In sostanza, questo crea una copia del file con un nome diverso nella stessa directory. Questo è il file che indica al server Web Apache la posizione della directory principale, del registro errori e di altri percorsi importanti di un dominio. Per cambiarne il contenuto, useremo nano:

sudo nano /etc/apache2/sites-available/domain-example.com.conf

Esempio di configurazione di Apache:

# La direttiva ServerName imposta lo schema di richiesta, il nome host e la porta
# il server utilizza per identificarsi. Questo è usato durante la creazione
# URL di reindirizzamento. Nel contesto di host virtuali, ServerName
# specifica quale nome host deve apparire nell’intestazione Host: richiesta a
# corrisponde a questo host virtuale. Per l’host virtuale predefinito (questo file) questo
Il valore # non è decisivo in quanto viene utilizzato come host dell’ultima risorsa indipendentemente.
# Tuttavia, è necessario impostarlo in modo esplicito per qualsiasi altro host virtuale.

ServerAdmin [e-mail protetto]
DocumentRoot /var/www/html/domain-example.com/public_html
ServerName domain-example.com
ServerAlias ​​www.domain-example.com

# Loglevels disponibili: trace8, …, trace1, debug, informazioni, avviso, avviso,
# errore, critico, avviso, emerg.
# È anche possibile configurare il livello di Google per particolari
# moduli, ad es.
#LogLevel info ssl: warn

ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log combinati

# Per la maggior parte dei file di configurazione da conf-available /, che sono
# abilitato o disabilitato a livello globale, è possibile
# include una linea per un solo host virtuale particolare. Ad esempio il
# seguente riga abilita la configurazione CGI solo per questo host
# dopo che è stato disabilitato a livello globale con "a2disconf".
#Includi conf-available / serve-cgi-bin.conf

Assicurati di sostituire tutte le istanze di domain-example.com con il tuo vero nome di dominio. Per salvare il file, premere CTRL + X e confermare digitando Y. Il risultato finale dovrebbe apparire come:

aggiunta della configurazione del dominio ad Apache

A questo punto, dovrai disattivare il file di configurazione dell’host virtuale predefinito e utilizzare quello appena creato. Questo comando lo disabiliterà:

sudo a2dissite 000-default.conf

Quindi, aggiungi il file di configurazione creato di recente come mostrato di seguito:

sudo a2ensite domain-example.com.conf

Infine, dovrai riavviare Apache per applicare le modifiche. Puoi farlo eseguendo:

sudo systemctl ricarica apache2

LAMP è stata installata correttamente sul server. Poiché il tuo dominio è già indirizzato al server, potrebbe essere necessario attendere alcune ore affinché il DNS si propaghi completamente. Quindi dovresti vedere una schermata simile quando visiti il ​​tuo dominio attraverso il browser.

contenuto della directory principale di dominio

5. Configurare WordPress (o caricare un sito Web)

Poiché la configurazione iniziale del server è finalmente completa, è tempo di ospitare un sito Web su di esso. In questa sezione, ti mostreremo un esempio generale di come far funzionare un sito WordPress.

Crea un nuovo database e utente MySQL

Inizia accedendo all’interfaccia MySQL tramite il terminale:

sudo mysql

>Utilizzare la sintassi seguente per creare un nuovo database:

CREA DATABASE wpdatabase;

Quindi, crea un nuovo utente e specifica la password:

CREA L’UTENTE ‘wpuser’ @ ‘localhost’ IDENTIFICATO DA ‘SuperSecurePassword123’;

Successivamente, assegna i privilegi di amministratore al tuo nuovo utente creato con:

CONCESSIONE DI TUTTI I PRIVILEGI SU wpdatabase. * A ‘wpuser’ @ ‘localhost’;

Questo è tutto! L’utente e il database MySQL sono pronti all’azione. Per disattivare l’interfaccia, digitare:

Uscita

Sposta i file WordPress sul tuo server

Infine, ma non meno importante, dobbiamo caricare i file del sito Web effettivo nella directory principale del tuo dominio. Esistono due approcci che descriveremo passo per passo:

  • Utilizzando il comando wget per ottenere l’ultima versione di WordPress
  • Configurazione di un client FTP (come FileZilla)

Metodo 1: utilizzo degli strumenti da riga di comando

Il primo modo è usare un comando chiamato wget. Per usarlo sul tuo server, devi installarlo:

sudo apt-get install wget

Quindi, cambia la tua directory di lavoro nella cartella principale del tuo nome di dominio:

cd /var/www/html/domain-example.com/public_html

Usa il comando wget per scaricare l’ultima versione di WordPress dal Web:

wget https://www.wordpress.org/latest.zip

Quindi, estrarre tutto il contenuto dell’archivio utilizzando:

decomprimi latest.zip

Per impostazione predefinita, tutti i file appariranno in una nuova directory chiamata WordPress (che può comportare il funzionamento del tuo sito Web tramite domain-example.com/wordpress). Affinché tutto funzioni correttamente, dovremo spostare tutti i file da quella directory a quello sopra. Ecco come farlo:

cd wordpress

Il comando seguente sposta tutti i file dalla directory corrente nella posizione specificata:

sudo mv * /var/www/html/domain-example.com/public_html/

Prima di iniziare l’installazione, dovrai preparare il tuo file wp-config.php. Poiché ne viene fornito solo uno di esempio. Inizia rinominandolo:

sudo mv wp-config-sample.php wp-config.php

Quindi, modifica il file utilizzando nano e aggiungi i dettagli di configurazione del database MySQL.

sudo nano wp-config.php

Assicurati di aggiornare il MySQL Utente, Banca dati, e Ospite sezioni con i valori creati in precedenza.

modifica della configurazione WP

Infine, visita il tuo nome di dominio nel browser e vedrai la schermata iniziale di configurazione di WordPress.

configurazione iniziale di WordPress

Al termine, è possibile installare un plug-in di migrazione come All-in-One WP Migration per importare un sito Web WordPress esistente.

Metodo 2: utilizzo di un client FTP

In alternativa, è possibile utilizzare un client FTP come FileZilla. Nel caso in cui tu abbia configurato una chiave SSH e disabilitato l’autenticazione della password, dovrai utilizzarla per accedere al posto della normale combinazione nome utente e password. Per configurare la connessione SFTP:

  1. Vai a FileZilla Site Manager e aggiungi a Nuovo sito.
  2. Impostare il protocollo su SFTP – Protocollo di trasferimento file SSH.
  3. Immettere l’IP del server in Ospite campo e impostare la porta su 22.
  4. Impostare il tipo di accesso su File chiave.
  5. Specifica il percorso della tua chiave SSH (ad es. /Users/Name/.ssh/id_rsa).
  6. FileZilla lo convertirà in a .PPK file, che è quindi possibile utilizzare per stabilire una connessione.

conversione chiave SSH

La configurazione finale dovrebbe assomigliare a questa:

FileZilla sftp configuration

Ora sarai in grado di accedere al tuo server tramite FTP e caricare qualsiasi file direttamente dal tuo computer.

Connessione sftp di FileZilla

Congratulazioni! Hai imparato come ospitare un sito Web su un server privato virtuale con Ubuntu 18.04. È stato coperto tutto, dall’impostazione iniziale del server alla preparazione dello stack software. Non resta che prendere un server e sporcarsi le mani!

Questo articolo è stato pubblicato con l’aiuto di Hostinger.com.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector