Drupal 9 VPS šabloni loomine CentOS 8-l

Me jätkame oma turuplatsile laienemist. Hiljuti rääkisime sellest, kuidas loomiseks kasutatakse Gitlabi, kuid sellel nädalal on meie turuplatsil ilmunud Drupal.

Räägime, miks valisime just selle ja kuidas see pilt loodi.

Drupal 9 VPS šabloni loomine CentOS 8-l

Drupal — mugav ja võimekas platvorm erinevate tüüpi veebisaitide loomiseks: alates mikrosaitidest ja blogidest kuni suurte sotsiaalsete projektideni, mida kasutatakse ka veebirakenduste aluseks, kirjutatud PHP keeles ja kasutades andmete salvestamiseks relatsioonilisi andmebaase.

Drupal 9 sisaldab kõiki versioonis 8.9 rakendatud funktsioone. Versiooni 9 peamine erinevus versioonist 8 on see, et platvormile pakutakse uuendusi ja turbeparandusi ka pärast novembrit 2021. Ainus muudatus on see, et versioonis 9 on uuendamisprotsess lihtsustatud, muutes versioonilt 8 uuendamise veelgi lihtsamaks.

Serverinõuded

Drupal'i kasutamiseks on soovitatav kasutada 2 GB RAM-i ja 2 südamikku CPU-d.

Drupal'i põhifailid võtavad umbes 100 MB, lisaks vajate ruumi piltide, andmebaasi, teemade, lisamoodulite ja varukoopiate salvestamiseks, mis sõltub teie saidi suurusest.

Drupal 9 nõuab PHP 7.4 või kõrgemat versiooni koos minimaalsete piirangutega (memory_limit) 64 MB mälu, lisamoodulite kasutamisel soovitatakse seada 128 MB.

Veebiserverina võib Drupal kasutada Apache't või Nginx'i ning andmebaasina MySQL'i, PostgreSQL'i või SQLite'i.

Paigaldame Drupal'i kasutades Nginx'i ja MySQL'i.

Installimine

Uuendame paigaldatud pakette viimasele versioonile:

sudo dnf update -y

Lisa püsiv lubamine sissetulevale liiklusele http/80 ja https/443 portidel:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Rakendame uued tulemüüri reeglid:

sudo systemctl reload firewalld

Paigaldame Nginx'i:

sudo dnf install nginx -y

Käivitame ja käivitame Nginx serveri:

sudo systemctl start nginx
sudo systemctl enable nginx

Kuna hetkel CentOS'i põhikataloogis kasutatakse PHP 7.2 versiooni, lisame REMI repositooriumi PHP 7.4 (Drupal 9 minimaalne versioon).
Selleks lisame EPEL repositooriumi (REMIl on see vajalik):

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Lisame REMI repositooriumi:

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Käivitage php:remi-7.4 moodul PHP 7.4 paigaldamiseks:

sudo dnf module enable php:remi-7.4 -y

Paigaldame php-fpm ja php-cli:

sudo dnf install -y php-fpm php-cli

Paigaldame vajalikud PHP moodulid Drupal'i toimimiseks:

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-xml

Paigaldame ka soovitatavad PHP moodulid mbstring ja opcache:

sudo dnf install -y php-mbstring php-opcache

Paigaldame MySQL serveri:

sudo dnf install mysql-server -y

Lülitame sisse ja käivitame MySQL serveri:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Kuna teeme VDS-i jaoks malli ja need võivad olla aeglased, lisame mysqld käivitamisele 30-sekundilise viivituse, et vältida serveri käivitamisprobleeme süsteemi esmakordsel laadimisel:

sudo sed -i '/Group=mysql/a 
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service

Muudame rühma ja kasutajat, kelle alt nginx töötab, tehes muudatused failis /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

Muudame PHP sessioonide katalooge omanikku vastavalt nginx-ile:

sudo chown -R nginx. /var/lib/php/session

Kustutame konfiguratsioonifailist /etc/nginx/nginx.conf kommentaaririd, et vältida sed-i topeltkäivitusi:

sudo sed -i -e '/^[ t]*#/d'  /etc/nginx/nginx.conf

Lisame konfiguratsioonifaili /etc/nginx/nginx.conf gzip'i kokkusurumise seaded

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.conf

Lisame faili /etc/nginx/nginx.conf seadist index.php jaoks:

sudo sed -i '/        root         /usr/share/nginx/html;/a 
        index index.php index.html index.htm;
' /etc/nginx/nginx.conf

Lisame seadistused defaultri serverile php töötlemiseks php-fpm soketi kaudu, keelame staatiliste failide logimise, suurendame aegumisaega, keelame favicon.ico ja robots.txt logide ning vigade logimise ja keelame juurdepääsu .ht failidele kõigile:

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.conf

Paigime wget, mis on vajalik certboti installimiseks:

sudo dnf install wget -y

Laadime certboti täitevfaili alla ametlikult saidilt:

cd ~
wget https://dl.eff.org/certbot-auto

Liigutame certboti kausta /usr/local/bin/:

mv certbot-auto /usr/local/bin/certbot-auto

Määrame õigused ning omanikuks root:

chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Paigaldame certboti sõltuvused ja sel hetkel lõpetame selle töö (Vastused: Y, c):

certbot-auto

Laadime ametlikult saidilt alla Drupal 9 viimase versiooni arhivi:

cd ~
wget https://www.drupal.org/download-latest/tar.gz

Paigaldame tar, et arhiveerida faili avamiseks:

sudo dnf install tar -y

Kustutame vaikefailid kataloogist /usr/share/nginx/html/:

rm -rf /usr/share/nginx/html/*

Pakime failid veebiserveri katalooge:

tar xf tar.gz -C /usr/share/nginx/html/

Kandame failid alamkataloogist veebiserveri peasse kataloogi:

mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/

Kustutame alamkatalooge:

rm -rf /usr/share/nginx/html/drupal-9.0.7

Kustutame installifailide arhiivi:

rm -f ./tar.gz

Määrame failide omanikuks nginx:

chown -R nginx. /usr/share/nginx/html

Selles etapis lülitame serveri välja ja teeme snapshot'i:

shutdown -h now

Pärast VDS-i käivitamist snapshot'ist teeme MySQL serveri algse seadistuse käivitades skripti:

mysql_secure_installation

Lülitame sisse paroolide valideerimise:

Kas soovite seadistada VALIDATE PASSWORD komponenti? : y

Seame MySQL kasutaja root parooli:

Uus parool:
Kinnita uus parool:

Kustutame anonüümsetest kasutajatest:

Eemaldada anonüümsed kasutajad? (Press y|Y jah, mis tahes teine nupp ei) : y

Keelame root'i eemalt sisselogimise:

Eemalt root sisselogimine keelata? (Press y|Y jah, mis tahes teine nupp ei) : y

Kustutame testandmebaasi:

Eemaldada testandmebaas ja ligipääs sellele? (Press y|Y jah, mis tahes teine nupp ei) : y

Taaskäivitage õiguste tabelid:

Taaskäivitada õiguste tabelid nüüd? (Press y|Y jah, mis tahes teine nupp ei) : y

Pärast seda, et paigaldamine lõpetada, saame minna aadressile vps_ip_address
Sellel aadressil näeme Drupal'i installimise lehte.

Valime kasutatava keele. Näiteks: vene keel. Klõpsame „Salvesta ja jätka“

Valime installatsiooniprofiili (demo kasutatakse ainult süsteemiga tutvumiseks). Antud juhul olgu see „standardne“.

Järgmisel lehel määrame andmebaasi nime, näiteks „drupal“. Määrame andmebaasi kasutajanime root ja parooli, mis talle määrati mysql_secure_installation käivitamisel. Klõpsame „Salvesta ja jätka“.

Ootame installimise ja tõlgete värskendamise lõppemist (protsess võib võtta mitu minutit).

Määrame saidi nime, sisestame saidi e-posti (millelt saadetakse saidi teated), administraatori Drupal-i kasutajanime, parooli ja e-posti. Samuti määrame riigi ja ajatsooni regionaalsetes seadeteks. Lõpetame installimise, klõpsates „Salvesta ja jätka“.

Pärast seda saame administreerimispaneelile minna loodud admin kasutajanime ja parooliga.

HTTPS-i seadistamine (valikuline)

HTTPS-i seadistamiseks peab VDS-il olema registreeritud DNS-nimi, sisestage see

/etc/nginx/nginx.conf

serveri jaotisesse (näiteks):

server_name domainname.ru;

Taaskäivitame nginx:

service nginx restart

Käivitame certboti:

sudo /usr/local/bin/certbot-auto --nginx

Sisestage oma e-post, nõustuge teenuse tingimustega (A), tellige uudiskiri (valikuline) (N), valige domeeninimed, mille jaoks tuleb sertifikaat välja anda (Enter kõigile).

Kui kõik läks hästi, näeme sertifikaatide ja serveri seadistamise edukast väljastamisest teavitavat sõnumit:

Palju õnne! Olete edukalt aktiveerinud ...

Pärast seda suunatakse 80 port HTTPS-ile (443).

Lisame /etc/crontab automaatseks sertifikaatide uuendamiseks:

# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"

Usaldusväärse Host Security seadistamine (soovitatav)

See seadistus on mõeldud lahenduseks probleemile, mis on seotud dünaamilise base_url määramisega, ja see on loodud, et vältida HTTP HOST Header rünnakuid (kui teie veebisait arvab, et ta on keegi teine).

Selleks tuleb määrata usaldusväärsed domeeninimed veebisaidi seadete failis.

Failis

/usr/share/nginx/html/sites/default/settings.php Eemaldame kommentaari või lisame seade aktuaalsete domeeninimede mustritega, näiteks:

$settings['trusted_host_patterns'] = [
  '^www.mydomain.ee$',
];

PHP APCu installimine (SOOVITATAV)

Drupal toetab APCu — Alternative PHP User Cache, versioonid 8 ja 9 kasutavad APCu lühiajalise kohaliku vahemälu jaoks rohkem kui varasemad versioonid. Vahemälu suurus vaikimisi (32 MB) sobib enamikule veebisaitidele ja ei tohi ületada 512 MB.

Aktiveerimiseks paigaldame PHP APCu mooduli:

dnf -y install php-pecl-apcu

Taaskäivitame nginx ja php-fpm:

service nginx restart
service php-fpm restart

Kui kasutate vene keelt ja APCu soovitatava mälu suurusega vahemälu, võite juhtpaneelis näha hoiatust, et eraldatud mälu suurus ei vasta soovitatule, kuid tegelikult töötab kõik õigesti ja vale hoiatuse parandavad tõenäoliselt tulevastes uuendustes.

Või kui hoiatus häirib, võite kasutada sobivat pidi offfailt.

Tahame teile meelde tuletada, et võite ka meie jaoks pildi luua

On kolm võimalust, kuidas osaleda.

Valmistage pilt ise ja saate 3000 rubla oma kontole

Kui olete valmis kohe tegutsema ja looma puuduoleva pildi, anname teile 3000 rubla sisetaskusse — mida saate serverite ostmiseks kasutada.

Kuidas luua oma pilt:

  1. Looge meie juures konto, veebilehel
  2. Teavitage tuge, et kavatsete pilte luua ja тестida.
  3. Anname teile 3000 rubla ning aktiveerime võimaluse luua snapshot'e.
  4. Tellitud virtuaalne server puhta operatsioonisüsteemiga
  5. Installige sellele VPS-ile tarkvara ja seadistage see
  6. Koostage juhend või skript tarkvara juurutamiseks
  7. Looge konfigureeritud serveri jaoks momentka
  8. Tellige uus virtuaalne server, valides rippmenüüst 'Serveri mall' varem loodud momentka
  9. Kui server on edukalt loodud, edastage 6. etapis saadud materjalid tehnilisele toele
  10. Vea korral võite täpsustada toe käest probleemi ja korrata seadistamist

Ärimeestele: pakkuda oma tarkvara

Kui olete tarkvaraarendaja, mida juurutatakse ja kasutatakse VPS-il, saame teid lisada turuplatsile. Nii saame aidata teil tuua uusi kliente, liiklust ja tuntust. Kirjutage meile

Rääkige kommentaarides, millisest pildist teil puudus on?

Ja me valmistame selle ise

Drupal 9 VPS šabloni loomine CentOS 8-l

Drupal 9 VPS šabloni loomine CentOS 8-l

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster