Creazione di un modello VPS con Drupal 9 su Centos 8
Continuiamo ad espandere il nostro mercato. Di recente ti abbiamo spiegato come ha creato un'immagine Gitlabe questa settimana Drupal è apparso sul nostro mercato.
Vi raccontiamo perché lo abbiamo scelto e come è stata realizzata l'immagine.
Drupal — una piattaforma comoda e potente per creare qualsiasi tipo di sito web: da micrositi e blog a grandi progetti sociali, utilizzata anche come base per applicazioni web, scritta in PHP e utilizzando database relazionali come archivio dati.
Drupal 9 include tutte le funzionalità introdotte nella versione 8.9. La differenza fondamentale tra la versione 9 e la versione 8 è che la piattaforma continuerà a ricevere aggiornamenti e correzioni di sicurezza dopo novembre 2021. La versione 9 semplifica inoltre il processo di aggiornamento, rendendo il processo di aggiornamento dalla versione 8 ancora più semplice.
Requisiti del server
Per utilizzare Drupal, si consiglia di utilizzare 2 GB di RAM e 2 core della CPU.
I file Drupal principali occupano circa 100 MB, inoltre avrai bisogno di spazio per archiviare immagini, database, temi, moduli aggiuntivi e backup, che dipenderanno dalle dimensioni del tuo sito.
Drupal 9 richiede PHP 7.4 o versione successiva con una limitazione minima (memory_limit) per 64 MB di memoria; se si utilizzano moduli aggiuntivi si consiglia di installare 128 MB.
Drupal può utilizzare Apache o Nginx come server web e MySQL, PostgreSQL o SQLite come database.
Installeremo Drupal utilizzando Nginx e MySQL.
Installazione
Aggiorniamo i pacchetti installati all'ultima versione:
sudo dnf update -y
Aggiungiamo l'autorizzazione permanente per il traffico in entrata alle porte http/80 e https/443:
Poiché il repository principale di Centos attualmente utilizza PHP 7.2, aggiungiamo un repository REMI con PHP 7.4 (versione minima per Drupal 9).
Per fare ciò, aggiungi il repository EPEL (richiesto dal repository REMI):
Dato che stiamo creando un modello per VDS, e possono essere lenti, aggiungeremo un ritardo di avvio di mysqld di 30 secondi, altrimenti potrebbero esserci problemi con l'avvio del server durante l'avvio iniziale del sistema:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
Cambiamo il gruppo e l'utente con cui verrà eseguito nginx apportando modifiche a /etc/php-fpm.d/www.conf:
sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
Cambiamo di conseguenza il proprietario della directory delle sessioni PHP in nginx:
sudo chown -R nginx. /var/lib/php/session
Rimuoviamo le righe con i commenti dal file di configurazione /etc/nginx/nginx.conf (in modo che non ci siano doppi trigger per sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.conf
Aggiungi le impostazioni di compressione gzip a /etc/nginx/nginx.conf
Aggiungiamo le impostazioni del file indice index.php a /etc/nginx/nginx.conf:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.conf
Aggiungiamo le impostazioni per il server predefinito: elaborazione PHP tramite il socket php-fpm, disabilitiamo il registro per i file statici, aumentiamo il tempo di scadenza, disabilitiamo il registro degli accessi e degli errori per favicon.ico e robots.txt e neghiamo l'accesso a .ht file per tutti:
Eliminiamo l'archivio con i file di installazione:
rm -f ./tar.gz
Assegniamo il proprietario dei file nginx:
chown -R nginx. /usr/share/nginx/html
A questo punto spegneremo il server e faremo uno snapshot:
shutdown -h now
Dopo aver avviato il VDS dallo snapshot, eseguiremo la configurazione iniziale del server MySQL eseguendo lo script:
mysql_secure_installation
Abilitiamo il validatore della password:
Would you like to setup VALIDATE PASSWORD component? : y
Impostiamo la password per l'utente root MySQL:
New password:
Re-enter new password:
Rimuoviamo gli utenti anonimi:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Evitiamo che root si connetta da remoto:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Eliminiamo il database dei test:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Ricarichiamo le tabelle dei privilegi:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Successivamente, per completare l'installazione, possiamo andare su vps_indirizzo_ip
A questo indirizzo vedremo la pagina di installazione di Drupal.
Selezioniamo la lingua da utilizzare. Ad esempio: russo. Fare clic su "Salva e continua"
Selezioniamo un profilo di installazione (la demo serve esclusivamente per familiarizzare con il sistema). Nel nostro caso, lascia che sia "standard".
Nella pagina successiva daremo un nome al database, ad esempio “drupal”. Indichiamo il nome utente root del database e la password che gli è stata data durante l'esecuzione di mysql_secure_installation. Fai clic su "Salva e continua".
Aspettiamo il completamento dell'installazione e dell'aggiornamento delle traduzioni (il processo potrebbe richiedere diversi minuti).
Indicheremo il nome del sito, imposteremo l'e-mail del sito (per conto del quale verranno inviate le notifiche del sito), login, password e e-mail dell'account amministratore Drupal. Imposteremo anche il paese e il fuso orario nelle impostazioni regionali. E completa l'installazione facendo clic su "Salva e continua".
Successivamente, puoi andare al pannello di controllo con il login e la password dell'amministratore Drupal creati.
Configurazione di HTTPS (facoltativo)
Per configurare HTTPS, il VDS deve avere un nome DNS valido, specificato in
/etc/nginx/nginx.conf
nella sezione server il nome del server (ad esempio):
server_name domainname.ru;
Riavviamo nginx:
service nginx restart
Lanciamo cerbot:
sudo /usr/local/bin/certbot-auto --nginx
Inserisci la tua email, accetta i termini del servizio (A), Iscriviti alla newsletter (facoltativo) (N), seleziona i nomi a dominio per i quali vuoi rilasciare il certificato (Inserisci per tutti).
Se tutto è andato senza errori, vedremo un messaggio sull'avvenuta emissione dei certificati e sulla configurazione del server:
Congratulations! You have successfully enabled ...
Successivamente, le connessioni alla porta 80 verranno reindirizzate a 443 (https).
Aggiungi a /etc/crontab per aggiornare automaticamente i certificati:
Configurazione della sicurezza dell'host attendibile (consigliata)
Questa impostazione è intesa come soluzione al problema associato alla determinazione dinamica di base_url ed è progettata per prevenire attacchi all'intestazione HOST HTTP (quando il tuo sito pensa che si tratti di qualcun altro).
Per fare ciò, è necessario specificare i nomi di dominio attendibili per il sito nel file delle impostazioni.
In archivio
/usr/share/nginx/html/sites/default/settings.php Rimuoviamo il commento o aggiungiamo un'impostazione con modelli di nomi di siti effettivi, ad esempio:
Drupal supporta APCu - Alternative PHP User Cache, le versioni 8 e 9 fanno un uso maggiore di APCu come cache locale a breve termine rispetto alle versioni precedenti. La dimensione predefinita della cache (32 MB) è adatta alla maggior parte dei siti e non può superare i 512 MB.
Per attivare, installare il modulo PHP APCu:
dnf -y install php-pecl-apcu
Riavvia nginx e php-fpm:
service nginx restart
service php-fpm restart
Se utilizzi la lingua russa e APCu con la dimensione di memoria consigliata per la cache, potresti visualizzare un avviso nel pannello di controllo che la dimensione della memoria allocata per la cache è diversa da quella consigliata, ma in realtà tutto funziona correttamente, e l'avviso errato verrà molto probabilmente corretto nei prossimi aggiornamenti.
Ci teniamo a ricordarti che puoi anche realizzare un'immagine per noi
Ci sono tre opzioni su come partecipare.
Prepara tu stesso l'immagine e ottieni 3000 rubli sul tuo saldo
Se sei pronto per precipitarti immediatamente in battaglia e creare l'immagine che ti manca, ti accrediteremo 3000 rubli sul tuo saldo interno, che potrai spendere sui server.
Fai sapere al supporto che creerai e testerai le immagini
Ti accrediteremo 3000 rubli e abiliteremo la possibilità di creare istantanee
Ordina un server virtuale con un sistema operativo pulito
Installa il software su questo VPS e configuralo
Scrivere istruzioni o script per la distribuzione del software
Crea uno snapshot per il server configurato
Ordina un nuovo server virtuale selezionando lo snapshot precedentemente creato nell'elenco a discesa "Modello server".
Se il server viene creato correttamente, trasferire i materiali ricevuti nella fase 6 al supporto tecnico
Se si verifica un errore, è possibile verificare il motivo con l'assistenza e ripetere la configurazione
Per gli imprenditori: offri il tuo software
Se sei uno sviluppatore di software distribuito e utilizzato su VPS, possiamo includerti nel marketplace. Ecco come possiamo aiutarti a portare nuovi clienti, traffico e notorietà. Scrivici