In questo articolo, ti forniremo istruzioni passo dopo passo su come configurare l'ambiente web su un server che esegue Linux. Prima di tutto, devi capire che un tipico server web è costituito da alcuni componenti interagenti:
- Server HTTP
- interprete del linguaggio di programmazione
- sistema di gestione del database (DBMS)
Per gestire il tuo sito web dovrai anche configurare un sistema di gestione dei contenuti (CMS), un'interfaccia web per la gestione del database e l'accesso FTP.
Consideriamo di impostare una configurazione molto popolare Apache-PHP-MySQL(MariaDB) su Linux. Installeremo anche vsftpd ftp server, phpMyAdmin - un'interfaccia web per la gestione del database e un sistema di gestione dei contenuti WordPress.
Per iniziare, è necessario ordinare un server VPS o un server dedicato . Ad esempio, abbiamo utilizzato un server virtuale con indirizzo IP statico su cui girava Ubuntu Server 18.04. Tutti i comandi sono stati eseguiti dall'utente root.
Configurazione del server HTTP Apache
1. Installazione
apt install apache2
Al termine dell'installazione, apri un browser e controlla "http://[indirizzo_IP_del_server]".
Se vedi una pagina di benvenuto come quella nello screenshot qui sopra, significa che il tuo server HTTP funziona.
2. Crea una pagina di prova
La directory radice predefinita per il sito web è "/var/www/html" . È qui che si trova la pagina di benvenuto che hai appena visto. Creiamo ora una directory separata "/var/www/sites" per gli host virtuali e una sottocartella "/var/www/sites/site1" con la pagina indice del tuo sito web di prova.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
Di conseguenza, il file “/var/www/sites/site1/index.html” dovrebbe contenere una sola riga di codice HTML:
<H1>Welcome</H1>
3. Configurazione del server Apache
I file di configurazione dei siti web si trovano nella directory "/etc/apache2/sites-available/" . Creiamo un file di configurazione per un nuovo host virtuale prendendo come base la configurazione predefinita dal file "000-default.conf" .
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Apri il file "site1.conf" e modifica l' attributo "DocumentRoot" . Inserisci il percorso del tuo sito web come valore, quindi nel nostro caso è "/var/www/sites/site1".
In questa fase non abbiamo bisogno di configurare il funzionamento simultaneo di più siti web, quindi possiamo disabilitare il sito web predefinito e abilitare il nuovo sito. Ricaricare la configurazione del server per applicare le modifiche.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Apri nuovamente il link “http://[indirizzo_IP_del_server]” e assicurati che al posto della pagina di benvenuto predefinita venga visualizzata la nostra nuova pagina.
Abbiamo completato la configurazione del nostro server HTTP e possiamo procedere alla fase successiva.
Configurazione del server FTP
1. Installazione
Installiamo il nostro server FTP e un pacchetto aggiuntivo, "db-util" , che ci servirà per configurare gli utenti virtuali.
apt install vsftpd db-util
2. Crea un account locale
Il server vsftpd ci consente di configurare i permessi di accesso in modo molto flessibile. Per i nostri compiti dobbiamo fornire agli utenti ftp quanto segue:
- accesso completo al contenuto di “/var/www/siti/”;
- disabilita tutto quello che c'è sopra “/var/www/”;
- collegamento con un conto virtuale;
Crea un account locale "virtuale" senza permessi di accesso ma con accesso alla cartella home "/var/www/" . Questo account verrà utilizzato dagli utenti FTP per connettersi al server.
useradd -d /var/www virtual
"Root" sarà il proprietario predefinito della cartella "/var/www" . Per consentire agli utenti FTP di modificare il contenuto dei siti web, modifichiamo il proprietario di "/var/www/sites/", incluse le sottocartelle di "virtual".
chown -R virtual:root /var/www/sites
Di conseguenza, l'utente "virtual" sarà in grado di visualizzare il contenuto di "/var/www/" e di scrivere nella sottocartella "/var/www/sites/".
3. Configurazione
La configurazione principale si trova nel file "/etc/vsftpd.conf" , quindi apriamolo e modifichiamolo come segue:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Crea il database
Per archiviare i dati dei conti virtuali sarà necessario un database.
Innanzitutto, creiamo un semplice file di testo chiamato "users.txt" nella cartella home e salviamo i dettagli di accesso (nome utente e password) degli utenti virtuali su righe alterne. Ad esempio, avremo bisogno di un utente virtuale con nome utente "ftp" e password "Qwe123" . Il file avrà quindi questo aspetto:
ftp
Qwe123
Creiamo il database
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Modifichiamo il file PAM predefinito "/etc/pam.d/vsftp" come segue:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Tieni presente che il percorso della libreria "pam_userdb.so" potrebbe essere diverso, ma puoi modificarlo se necessario.
Ricaricare il server vsftpd per applicare le modifiche.
systemctl restart vsftpd
Abbiamo terminato la configurazione del server FTP.
Dettagli di connessione:
- ftp://[indirizzo_ip_del_server]
- accedi: ftp
- parola d'ordine: Qwe123
Configurazione del server PHP
1. Installazione di PHP
Oggi l'ultima versione stabile di PHP è php 7.4.5 che non è inclusa nei repository ufficiali di Ubuntu. Colleghiamo un repository di terze parti e installiamo l'ultima versione di PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Dai un'occhiata
Affinché PHP venga eseguito, il file della pagina web deve avere l'estensione ".php" . Rinominiamo la nostra pagina di prova:
cd /var/www/sites/site1/
mv index.html index.php
Aggiungi la seguente riga PHP al file “/var/www/sites/site1/index.php” , in modo che il file appaia così:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Salvare le modifiche e controllare il risultato nel browser.
Se visualizzi il risultato della funzione "phpinfo()" , l'interprete PHP funziona correttamente. Ora procediamo al passaggio successivo.
Configurazione MySQL (MariaDB)
1. Installazione
Installiamo MariaDB e un modulo PHP per MySQL, quindi ricarichiamo Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Aggiorna la pagina di test e vai alla sezione PDO nella tabella di configurazione PHP. Se trovi la sezione "PDO_mysql" , significa che il driver per MySQL è installato correttamente.
Successivamente, dovremo effettuare la configurazione di sicurezza iniziale di MariaDB e impostare la password per l' utente "root" , disabilitare l'accesso remoto ed eliminare tutti gli account guest.
mysql_secure_installation
Come primo passaggio, dobbiamo inserire la password dell'utente "root" per accedere al DBMS oppure premere Invio se non è impostata alcuna password. Poiché dopo l'installazione non è stata impostata alcuna password per l'utente "root" , è sufficiente premere "Invio".
Si prega di notare che in MariaDB esistono già account propri che non hanno nulla a che vedere con gli account del sistema operativo. Pertanto, l'unico utente con cui abbiamo a che fare in MariaDB è "root".
Dopodiché, il configuratore ci chiederà di impostare la password per l'utente root. Digita "Y" per confermare e inserisci la nuova password. Nel nostro caso, è "Qwe123".
Rispondi "S" a tutte le restanti domande fino alla fine.
La configurazione è completata!
Dettagli di accesso a MariaDB:
- Accesso: root
- Parola d'ordine: Qwe123
configurazione phpMyAdmin
1. Installazione
Installiamo l'estensione necessaria per PHP: mbstring.
apt install php-mbstring
Nel repository ufficiale è presente solo una versione obsoleta di phpMyAdmin, quindi installiamo manualmente quella nuova.
Apri il sito web ufficiale del progetto “ https://www.phpmyadmin.net/ ” e scarica l'archivio più recente.
Copia l'archivio sul server nella cartella "/var/www/sites/" utilizzando un qualsiasi client FTP.
Estrai il contenuto della cartella e rinominala in "phpMyAdmin" . Non dimenticare di installare l' utility "unzip" . Puoi eliminare l'archivio dopo averlo estratto.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Crea la seguente cartella "/var/www/sites/phpMyAdmin/tmp" per i file temporanei e abilita l'accesso per tutti. In caso contrario, phpMyAdmin segnalerà un accesso negato alla cartella temporanea.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Crea un alias
Poiché phpMyAdmin non è un host virtuale separato e si trova all'esterno della directory radice, configuriamo l'alias.
Apri il file “/etc/apache2/mods-available/alias.conf” e aggiungi questa riga:
Alias /pma “/var/www/sites/phpMyAdmin"
all'interno di questa sezione:
<IfModule alias_module>
</IfModule>
Ricarica Apache per applicare le modifiche.
systemctl reload apache2
L'alias è impostato, quindi possiamo accedere a phpMyAdmin qui : "http://[indirizzo_IP_del_server]/pma".
3. Preparare il database
Poiché durante la configurazione iniziale di MariaDB abbiamo limitato l'uso dell'utente root, dovremo creare un nuovo account con tutti i permessi che verranno utilizzati per accedere a phpMyAdmin.
Inoltre, per abilitare le funzionalità aggiuntive di phpMyAdmin avremo bisogno di un database di servizio e di un account per accedervi.
Creiamo gli account
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Si prega di notare che il nome del database nella seconda richiesta è in back sparks “… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY …”,
Come risultato, verranno creati due account in MariaDB:
- Login: pma, Password: Qwe123Accesso completo, verrà utilizzato per accedere a phpMyAdmin
- Login: pmaservice, Password: Qwe123L'account di servizio è necessario per il funzionamento delle funzionalità aggiuntive
Nel passaggio successivo, imposteremo questi dettagli nel file di configurazione "config.inc.php".
Dopodiché dovremo importare il database dal file "phpMyAdmin/sql/create_tables.sql".
Importiamolo con l'aiuto di phpMyAdmin.
Apri il link “http://[indirizzo_IP_del_server]/pma”
Inserisci il nome utente "pma" e la password "Qwe123"
Vai su "Importa" , clicca su "Seleziona file" e seleziona il file "sql/create_tables.sql" nella directory principale di phpMyAdmin. Dovrebbe esserci una cartella "phpMyAdmin" sul tuo PC contenente i file. Estraila se necessario.
Fai clic su "Avanti" per avviare l'importazione.
4. Configurazione
Copiamo il file di configurazione dal modello
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Apriamo il file di configurazione “/var/www/sites/phpMyAdmin/config.inc.php” ed effettuiamo le seguenti modifiche:
Imposta un valore casuale di 32 caratteri per l'attributo "$cfg['blowfish_secret']" . Utilizza un qualsiasi generatore di password.
Rimuovi i commenti da tutte le righe della sezione "phpMyAdmin configuration storage settings" e imposta di conseguenza il nome utente e la password dell'account di servizio di MariaDB per gli attributi "controluser" e "controlpass" . Nel nostro caso, si tratta di pmaservice e Qwe123.
Salva le modifiche.
Dettagli di accesso per phpMyadmin:
- http://[server’s_ip_address]/pma/
- Accesso: pma
- Parola d'ordine: Qwe123
Come installare e configurare WordPress su un server Linux
1. Posizionamento dei pacchetti e dei file WordPress
Visita il sito ufficiale di WordPress " https://ru.wordpress.org/ " e scarica l'archivio sul tuo PC.
Carica l'archivio sul server nella cartella "/var/www/sites/" e decomprimilo nella cartella "wordpress ".
Copia il contenuto della cartella radice “/var/www/sites/wordpress/” del sito web “/var/www/sites/site1/”.
Poiché abbiamo copiato i file tramite la console con i permessi di root, modifichiamo il proprietario della cartella "/var/www/sites/", incluso il contenuto di "virtual" . Questo è necessario per abilitare l'accesso completo per la connessione FTP tramite il client.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. Crea un database per WordPress
Accedi a phpMyAdmin e clicca su "Crea database". Specifica un nome di database arbitrario, nel nostro caso "wordpress_db" e clicca sul pulsante "Crea".
Seleziona il nuovo database nella sezione a sinistra e fai clic su "Privilegi".
Quindi fai clic su “Aggiungi account utente”.
Nella finestra che si apre, inserisci nome utente e password ( wpservice / Qwe123 ), seleziona la casella "Concedi tutti i privilegi nel database wordpress" e clicca su "Avanti".
Nella pagina successiva, fai clic su "Annulla tutto" per reimpostare tutti i privilegi a livello di database e poi su "Avanti".
3. Configurazione di WordPress su un server Linux
Vai alla directory principale del tuo sito web e copia il file di configurazione dal modello
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Apri il file “wp-config.php” , inserisci i parametri di connessione al database che abbiamo creato nel passaggio precedente e salva le modifiche.
4. Installa CMS WordPress
Apri il seguente link nel browser : “http://[indirizzo_IP_del_server]/wp-admin/install.php”.
Compila tutti i campi e clicca su "Installa WordPress" . Imposta un nome utente e una password casuali. Nel nostro caso, sono rispettivamente wpadmin e Qwe123.
Questi dettagli verranno utilizzati per accedere a WordPress.
Una volta completata l'installazione, apri il link "http://[indirizzo_IP_del_server]/wp-login.php" , inserisci i dati di accesso ed effettua il login a WordPress.
Dovresti vedere uno dei modelli di WordPress nella pagina principale.
La configurazione è completata.
Dettagli di accesso a WordPress:
- http://[server’s_ip_address]/wp-login.php
- Accedi: wpadmin
- Parola d'ordine: Qwe123