Stiamo continuando ad espandere il nostro marketplace. Recentemente abbiamo parlato di come , e questa settimana nel nostro marketplace è arrivato Drupal.
Vi raccontiamo perché lo abbiamo scelto e come è stata creata l'immagine.
Drupal — una piattaforma comoda e potente per la creazione di qualsiasi tipo di sito: da micrositi e blog a grandi progetti sociali, utilizzata anche come base per applicazioni web, scritta in PHP e che utilizza database relazionali come storage.
Drupal 9 include tutte le funzionalità implementate nella versione 8.9. La principale differenza tra la versione 9 e la versione 8 è che per la piattaforma verranno rilasciati aggiornamenti e correzioni di sicurezza anche dopo novembre 2021. Inoltre, nella versione 9 è stato semplificato il processo di aggiornamento, rendendo il passaggio dalla versione 8 ancora più facile.
Requisiti del server
Per utilizzare Drupal, si consiglia di avere 2 GB di RAM e 2 core CPU.
I file principali di Drupal occupano circa 100 MB; avrete anche bisogno di spazio per immagini, database, temi, moduli aggiuntivi e backup, che dipenderà dalle dimensioni del vostro sito.
Per Drupal 9 è necessario PHP 7.4 o superiore con un limite minimo dimemory_limit) per la memoria di 64 MB; se si utilizzano moduli aggiuntivi, si consiglia di impostare 128 MB.
Come server web, Drupal può utilizzare Apache o Nginx e come database MySQL, PostgreSQL o SQLite.
Installeremo Drupal utilizzando Nginx e MySQL.
Installazione
Aggiorneremo i pacchetti installati all'ultima versione:
sudo dnf update -yAggiungeremo un permesso permanente per il traffico in entrata sulle porte http/80 e https/443:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsApplicheremo le nuove regole del firewall:
sudo systemctl reload firewalldInstalleremo Nginx:
sudo dnf install nginx -yAvvieremo e attiveremo il server Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx Poiché attualmente nel repository principale di CentOS è utilizzata la versione PHP 7.2, aggiungeremo il repository REMI con PHP 7.4 (versione minima per Drupal 9).
Per questo, aggiungeremo il repository EPEL (richiesto dal repository REMI):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmAggiungeremo il repository REMI:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Attiveremo il modulo php:remi-7.4 per installare php 7.4:
sudo dnf module enable php:remi-7.4 -yInstalleremo php-fpm e php-cli:
sudo dnf install -y php-fpm php-cliInstalleremo i moduli PHP richiesti per il funzionamento di Drupal:
sudo dnf install -y php-mysqlnd php-date php-dom php-filter php-gd php-hash php-json php-pcre php-pdo php-session php-simplexml php-spl php-tokenizer php-xmlInstalleremo anche i moduli PHP consigliati mbstring e opcache:
sudo dnf install -y php-mbstring php-opcacheInstalleremo il server MySQL:
sudo dnf install mysql-server -yAbiliteremo e avvieremo il server MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqldPoiché stiamo creando un template per VDS, e potrebbero essere lenti, aggiungeremo un ritardo di avvio per mysqld di 30 secondi, altrimenti potrebbero verificarsi problemi di avvio del server durante il caricamento iniziale del sistema:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.serviceModificheremo il gruppo e l'utente sotto i quali funzionerà 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.confCambieremo anche il proprietario della cartella delle sessioni PHP su nginx:
sudo chown -R nginx. /var/lib/php/sessionRimuoveremo le righe con commenti dal file di configurazione /etc/nginx/nginx.conf (per evitare attivazioni duplicate per sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.confAggiungeremo le impostazioni di compressione gzip in /etc/nginx/nginx.conf
sudo sed -i '/types_hash_max_size 2048;/a
gzip on;
gzip_static on;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;
gzip_comp_level 9;
gzip_proxied any;
gzip_min_length 1000;
gzip_disable "msie6";
gzip_vary on;
' /etc/nginx/nginx.confAggiungiamo nel /etc/nginx/nginx.conf la configurazione per il file index.php:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confAggiungiamo configurazioni per il server predefinito per l'elaborazione di php tramite il socket php-fpm, disattiviamo il log per i file statici, aumentiamo il tempo di scadenza, disattiviamo il log di accesso e di errore per favicon.ico e robots.txt e vietiamo l'accesso ai file .ht per tutti:
sudo sed -i '/ location / {/a
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* ^.+\.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
access_log off;
expires max;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ /.ht {
deny all;' /etc/nginx/nginx.confInstalleremo wget necessario per l'installazione di certbot:
sudo dnf install wget -yScaricheremo il file eseguibile di certbot dal sito ufficiale:
cd ~
wget https://dl.eff.org/certbot-autoSpostiamo certbot in /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoE impostiamo i permessi e il proprietario su root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoInstalleremo le dipendenze di certbot e a questo punto interromperemo la sua esecuzione (Risposte: Y, c):
certbot-autoScaricheremo dal sito ufficiale l'archivio con l'ultima versione di Drupal 9:
cd ~
wget https://www.drupal.org/download-latest/tar.gzInstalleremo tar per estrarre l'archivio:
sudo dnf install tar -yElimineremo i file predefiniti nella directory /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Decomprimiamo i file nella directory del server web:
tar xf tar.gz -C /usr/share/nginx/html/Trasferiamo i file dalla sottodirectory alla directory principale del server web:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Eliminiamo la sottodirectory:
rm -rf /usr/share/nginx/html/drupal-9.0.7Eliminiamo l'archivio con i file di installazione:
rm -f ./tar.gzImpostiamo nginx come proprietario dei file:
chown -R nginx. /usr/share/nginx/htmlA questo punto spegneremo il server e creeremo uno snapshot:
shutdown -h nowDopo aver avviato il VDS dallo snapshot, eseguiremo la configurazione iniziale del server MySQL avviando lo script:
mysql_secure_installationAttiveremo il validatore delle password:
Would you like to setup VALIDATE PASSWORD component? : yImposteremo la password per l'utente root di MySQL:
New password:
Re-enter new password:Eliminiamo gli utenti anonimi:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : yImpediremo l'accesso remoto per root:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yEliminiamo il database di test:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yRicarichiamo le tabelle dei privilegi:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Dopo di che, per completare l'installazione, possiamo visitare l'indirizzo
A questo indirizzo vedremo la pagina di installazione di Drupal.
Scegliamo la lingua da utilizzare. Ad esempio: italiano. Facciamo clic su «Salva e continua»
Scegliamo il profilo di installazione (la demo viene utilizzata esclusivamente per familiarizzare con il sistema). In questo caso, scegliamo «standard».
Nella pagina successiva, daremo un nome al database, ad esempio «drupal». Indicheremo il nome utente del database root e la password assegnata durante l'esecuzione di mysql_secure_installation. Facciamo clic su «Salva e continua».
Attendiamo il completamento dell'installazione e dell'aggiornamento delle traduzioni (il processo potrebbe richiedere alcuni minuti).
Indichiamo il nome del sito, impostiamo l'email del sito (da cui verranno inviate le notifiche del sito), il nome utente, la password e l'email dell'account amministratore di Drupal. Imposteremo anche il paese e il fuso orario nelle impostazioni regionali. E completiamo l'installazione facendo clic su «Salva e continua».
Dopo di ciò, sarà possibile accedere al pannello di controllo con il nome utente e la password dell'amministratore di Drupal appena creato.
Configurazione di HTTPS (opzionale)
Per configurare HTTPS, il VDS deve avere un nome DNS valido, indicare in
/etc/nginx/nginx.confnella sezione server il nome del server (ad esempio):
server_name domainname.ru;Riavviamo nginx:
service nginx restartAvviamo certbot:
sudo /usr/local/bin/certbot-auto --nginxInserire la propria e-mail, accettare i termini del servizio (A), iscrizione alla newsletter (opzionale) (N), scegliere i nomi di dominio per i quali emettere il certificato (Invio per tutti).
Se tutto è andato a buon fine, vedremo un messaggio di avvenuta emissione dei certificati e configurazione del server:
Congratulazioni! Hai abilitato con successo ...Dopo questa connessione, le richieste sulla porta 80 verranno reindirizzate sulla porta 443 (https).
Aggiungere a /etc/crontab per l'aggiornamento automatico dei certificati:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Configurazione della Sicurezza del Server Host Fidato (consigliato)
Questa impostazione è progettata come soluzione a problemi legati alla determinazione dinamica di base_url, ed è destinata a prevenire attacchi HTTP HOST Header (quando il tuo sito pensa di essere qualcun altro).
Per fare ciò, è necessario specificare i nomi di dominio fidati del sito nel file di configurazione.
Nel file
/usr/share/nginx/html/sites/default/settings.php decommentare o aggiungere l'impostazione con i pattern dei nomi attuali del sito, ad esempio:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
Installazione di PHP APCu (RACCOMANDATO)
Drupal supporta APCu — Alternative PHP User Cache, le versioni 8 e 9 utilizzano APCu come cache locale a breve termine in modo più intenso rispetto alle versioni precedenti. La dimensione predefinita della cache (32 MB) è adatta per la maggior parte dei siti e non può superare i 512 MB.
Per attivare, installiamo il modulo PHP APCu:
dnf -y install php-pecl-apcuRiavviamo nginx e php-fpm:
service nginx restart
service php-fpm restartNel caso si utilizzi la lingua russa e APCu con la dimensione della memoria raccomandata per la cache, nel pannello di controllo potresti vedere un avviso che indica che la dimensione della memoria allocata per la cache è diversa da quella raccomandata, ma in realtà tutto funziona correttamente, e l'avviso errato verrà probabilmente corretto nei prossimi aggiornamenti.
Oppure, se l'avviso è sgradevole, puoi utilizzare .
Vogliamo ricordare che anche tu puoi creare un'immagine per noi
Ci sono tre modi per partecipare.
Prepara l'immagine tu stesso e ricevi 3000 rubli sul tuo saldo
Se sei pronto a tuffarti subito e creare l'immagine di cui hai bisogno, accreditaremo 3000 rubli sul tuo saldo interno — potrai usarli per i server.
Come creare la tua immagine:
- Crea un account con noi su
- Comunica al supporto che intendi creare e testare le immagini
- Accrediteremo 3000 rubli e attiveremo la possibilità di creare snapshot
- Ordina un server virtuale con un sistema operativo pulito
- Installa il software su questo VPS e configurarlo
- Elabora una guida o uno script per il deployment del software
- Crea uno snapshot del server configurato
- Ordina un nuovo server virtuale selezionando dal menu a discesa il «Modello server» lo snapshot creato in precedenza
- In caso di creazione riuscita del server, invia il materiale ricevuto al supporto tecnico al passo 6
- In caso di errore, puoi chiedere al supporto il motivo e ripetere la configurazione
Per i proprietari di aziende: proponi il tuo software
Se sei uno sviluppatore di software da deployare e utilizzare su VPS, possiamo includerti nel marketplace. In questo modo possiamo aiutarti a portare nuovi clienti, traffico e visibilità.
Raccontaci nei commenti quale immagine ti manca?
E la prepareremo noi
Fonte: habr.com
