VPS-i malli loomine Drupal 9-ga Centos 8-s

Jätkame oma turu laiendamist. Me rääkisime teile hiljuti, kuidas tegi Gitlabi pildija sel nädalal ilmus meie turule Drupal.

Räägime, miks me just tema valisime ja kuidas pilt tekkis.

VPS-i malli loomine Drupal 9-ga Centos 8-s

Drupal — mugav ja võimas platvorm igat tüüpi veebisaitide loomiseks: alates mikrosaitidest ja ajaveebidest kuni suurte sotsiaalprojektideni, kasutatakse ka veebirakenduste alusena, kirjutatud PHP-s ja kasutades andmesalvestusena relatsiooniandmebaase.

Drupal 9 sisaldab kõiki versioonis 8.9 tutvustatud funktsioone. Peamine erinevus versiooni 9 ja versiooni 8 vahel on see, et platvorm saab ka pärast 2021. aasta novembrit värskendusi ja turvaparandusi. Versioon 9 lihtsustab ka värskendusprotsessi, muutes versiooni 8 versioonile ülemineku veelgi lihtsamaks.

Nõuded serverile

Drupali kasutamiseks on soovitatav kasutada 2 GB muutmälu ja 2 protsessorituuma.

Põhilised Drupali failid võtavad enda alla umbes 100 MB, lisaks vajate ruumi piltide, andmebaasi, teemade, lisamoodulite ja varukoopiate salvestamiseks, mis sõltuvad teie saidi suurusest.

Drupal 9 nõuab PHP 7.4 või uuemat versiooni minimaalse piiranguga (memory_limit) 64 MB mälu jaoks, lisamoodulite kasutamisel on soovitatav paigaldada 128 MB.

Drupal saab kasutada veebiserverina Apache'i või Nginxi ning andmebaasina MySQL-i, PostgreSQL-i või SQLite'i.

Me installime Drupali Nginxi ja MySQL-i abil.

Paigaldamine

Värskendame installitud paketid uusimale versioonile:

sudo dnf update -y

Lisame püsiva loa sissetulevale liiklusele http/80 ja https/443 portidele:

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

Rakendame uusi tulemüürireegleid:

sudo systemctl reload firewalld

Installime Nginxi:

sudo dnf install nginx -y

Alustame ja lubame Nginxi serveri:

sudo systemctl start nginx
sudo systemctl enable nginx

Kuna Centose peamine hoidla kasutab praegu PHP 7.2, lisame REMI hoidla PHP 7.4-ga (minimaalne versioon Drupal 9 jaoks).
Selleks lisage EPEL-i hoidla (REMI hoidla jaoks vajalik):

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

Lisame REMI hoidla:

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

Lubame php:remi-7.4 moodulil php 7.4 installimiseks:

sudo dnf module enable php:remi-7.4 -y

Installige php-fpm ja php-cli:

sudo dnf install -y php-fpm php-cli

Installime Drupali töötamiseks vajalikud PHP moodulid:

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

Installime ka soovitatud PHP mbstring opcache moodulid:

sudo dnf install -y php-mbstring php-opcache

Installime MySQL-i serveri:

sudo dnf install mysql-server -y

Lülitame sisse ja käivitame MySQL-i serveri:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Kuna teeme VDS-i jaoks malli ja need võivad olla aeglased, lisame mysqld-i käivitusviivituse 30 sekundit, vastasel juhul võib esineda probleeme serveri käivitumisega süsteemi alglaadimise ajal:

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

Muudame gruppi ja kasutajat, mille all nginx töötab, muutes faili /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 seansside kataloogi omanikuks vastavalt nginx:

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

Eemaldame konfiguratsioonifailist /etc/nginx/nginx.conf kommentaaridega read (et sed jaoks poleks topeltpäästikuid):

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

Lisage gzipi tihendamise sätted faili /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.conf

Lisame faili /etc/nginx/nginx.conf registrifaili index.php sätted:

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

Lisame vaikeserveri seaded: PHP töötlemine php-fpm pesa kaudu, staatiliste failide logi keelamine, aegumisaja pikendamine, favicon.ico ja robots.txt juurdepääsu- ja vealogi keelamine ning juurdepääsu keelamine .ht-le failid 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

Certboti installimiseks vajalik installige wget:

sudo dnf install wget -y

Laadige väljastpoolt alla täitmisfail certbot:

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

Teisaldage certbot kausta /usr/local/bin/:

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

Ja määrame juurutamise omaniku õigused:

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

Installime certboti sõltuvused ja katkestame selles etapis selle töö (Vastused: Y, c):

certbot-auto

Laadime väljastpoolt alla Drupal 9 uusima versiooniga arhiivi:

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

Arhiivi lahtipakkimiseks installige tar:

sudo dnf install tar -y

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

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

Pakime failid lahti veebiserveri kataloogi:

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

Teisaldame failid alamkataloogist veebiserveri juurkataloogi:

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

Kustutame alamkataloogi:

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

Kustutame arhiivi koos installifailidega:

rm -f ./tar.gz

Määrame nginxi failide omaniku:

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

Selles etapis lülitame serveri välja ja teeme hetktõmmise:

shutdown -h now

Pärast VDS-i hetktõmmisest käivitamist teostame MySQL-serveri esialgse häälestuse, käivitades skripti:

mysql_secure_installation

Lubame paroolivalidaatori:

Would you like to setup VALIDATE PASSWORD component? : y

Määrame MySQL-i juurkasutaja parooli:

New password:
Re-enter new password:

Eemaldame anonüümsed kasutajad:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Takistame root'il kaugühenduse loomise:

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

Kustutame testide andmebaasi:

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

Laadime privileegitabelid uuesti:

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

Pärast seda saame installimise lõpuleviimiseks minna aadressile vps_ip_address
Sellel aadressil näeme Drupali installilehte.

Valime keele, mida kasutada. Näiteks: vene keel. Klõpsake nuppu "Salvesta ja jätka"

Valime installiprofiili (demot kasutatakse ainult süsteemiga tutvumiseks). Meie puhul olgu see “standardne”.

Järgmisel lehel anname andmebaasile nime, näiteks “drupal”. Märgime andmebaasi kasutajanime root ja talle mysql_secure_installationi käivitamisel antud parooli. Klõpsake nuppu "Salvesta ja jätka".

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

Me näitame saidi nime, määrame saidi e-posti aadressi (mille nimel saadetakse teateid), sisselogimise, parooli ja Drupali administraatori konto e-posti aadressi. Samuti määrame piirkondlikes seadetes riigi ja ajavööndi. Ja lõpetage installimine, klõpsates "Salvesta ja jätka".

Pärast seda saate loodud Drupali administraatori sisselogimise ja parooliga minna juhtpaneelile.

HTTPS-i seadistamine (valikuline)

HTTPS-i konfigureerimiseks peab VDS-il olema kehtiv DNS-nimi, määrake sisse

/etc/nginx/nginx.conf

serveri jaotises serveri nimi (näiteks):

server_name  domainname.ru;

Taaskäivitame nginxi:

service nginx restart

Käivitame certbot:

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

Sisestage oma e-post, nõustuge teenusetingimustega (A), tellige uudiskiri (valikuline) (N), valige domeeninimed, millele soovite sertifikaadi väljastada (Sisesta kõigile).

Kui kõik läks vigadeta, näeme teadet sertifikaatide eduka väljastamise ja serveri konfiguratsiooni kohta:

Congratulations! You have successfully enabled ...

Pärast seda suunatakse ühendused pordiga 80 ümber aadressile 443 (https).

Sertide automaatseks värskendamiseks lisage faili /etc/crontab:

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

Usaldusväärse hosti turvalisuse seadistamine (soovitatav)

See säte on mõeldud dünaamilise baas_url-i määramisega seotud probleemi lahendamiseks ja mõeldud HTTP HOST-i päise rünnakute ärahoidmiseks (kui teie sait arvab, et see on keegi teine).

Selleks peate seadete failis määrama saidi usaldusväärsed domeeninimed.

Failis

/usr/share/nginx/html/sites/default/settings.php Tühistame kommentaarid või lisame sätte tegelike saidinimede mustritega, näiteks:

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

PHP APCu installimine (SOOVITATAV)

Drupal toetab APCu – alternatiivset PHP kasutaja vahemälu, versioonid 8 ja 9 kasutavad APCu-d lühiajalise kohaliku vahemäluna rohkem kui varasemad versioonid. Vahemälu vaikemaht (32 MB) sobib enamiku saitide jaoks ja ei tohi ületada 512 MB.

Aktiveerimiseks installige PHP APCu moodul:

dnf -y install php-pecl-apcu

Taaskäivitage nginx ja php-fpm:

service nginx restart
service php-fpm restart

Kui kasutate vene keelt ja APCu vahemälu jaoks soovitatud mälumahuga, võite juhtpaneelil näha hoiatust, et vahemälu jaoks eraldatud mälu suurus erineb soovitatust, kuid tegelikult töötab kõik õigesti, ja vale hoiatus parandatakse tõenäoliselt järgmistes värskendustes.

Või kui hoiatus teeb silmale haiget, võite kasutada vastav plaaster väljastpoolt.

Tuletame meelde, et saate ka meile pildi teha

Osalemiseks on kolm võimalust.

Valmistage pilt ise ette ja saate oma saldole 3000 rubla

Kui olete valmis koheselt lahingusse tormama ja looma kuvandi, mis teil puudu on, krediteerime teile teie sisebilanssi 3000 rubla, mille saate kulutada serveritele.

Kuidas luua oma pilti:

  1. Looge meiega konto veebisait
  2. Andke klienditoele teada, et kavatsete pilte luua ja testida
  3. Krediteerime teile 3000 rubla ja võimaldame hetktõmmiste loomise võimaluse
  4. Telli puhta operatsioonisüsteemiga virtuaalserver
  5. Installige tarkvara sellele VPS-ile ja konfigureerige see
  6. Kirjutage tarkvara juurutamiseks juhised või skript
  7. Looge konfigureeritud serverist hetktõmmis
  8. Tellige uus virtuaalserver, valides ripploendist "Serveri mall" eelnevalt loodud hetktõmmise
  9. Kui server on edukalt loodud, edastage etapis 6 saadud materjalid tehnilisele toele
  10. Kui ilmneb tõrge, saate selle põhjust klienditoega kontrollida ja seadistamist korrata

Ettevõtete omanikele: pakkuge oma tarkvara

Kui olete VPS-is juurutatud ja kasutatav tarkvaraarendaja, võime teid turule kaasata. Nii saame aidata teil tuua uusi kliente, liiklust ja teadlikkust. Kirjuta meile

Räägi meile kommentaarides, milline pilt sul puudu on?

Ja me valmistame selle ise

VPS-i malli loomine Drupal 9-ga Centos 8-s

VPS-i malli loomine Drupal 9-ga Centos 8-s

Allikas: www.habr.com