Að búa til VPS sniðmát með Drupal 9 á Centos 8

Við höldum áfram að stækka markaðstorg okkar. Við sögðum þér nýlega hvernig gerði Gitlab mynd, og í vikunni birtist Drupal á markaðstorgi okkar.

Við segjum þér hvers vegna við völdum hann og hvernig myndin varð til.

Að búa til VPS sniðmát með Drupal 9 á Centos 8

Drupal — þægilegur og öflugur vettvangur til að búa til hvers konar vefsíður: allt frá örsíðum og bloggum til stórra félagslegra verkefna, einnig notaður sem grunnur fyrir vefforrit, skrifuð í PHP og með því að nota venslagagnagrunna sem gagnageymslu.

Drupal 9 inniheldur alla eiginleika sem kynntir eru í útgáfu 8.9. Lykilmunurinn á útgáfu 9 og útgáfu 8 er að pallurinn mun halda áfram að fá uppfærslur og öryggisleiðréttingar eftir nóvember 2021. Útgáfa 9 einfaldar einnig uppfærsluferlið, sem gerir uppfærsluferlið úr útgáfu 8 enn auðveldara.

Kröfur miðlara

Til að nota Drupal er mælt með því að nota 2 GB vinnsluminni og 2 CPU kjarna.

Helstu Drupal skrárnar taka um 100 MB, auk þess þarftu pláss til að geyma myndir, gagnagrunn, þemu, viðbótareiningar og afrit, sem fer eftir stærð vefsvæðisins þíns.

Drupal 9 krefst PHP 7.4 eða hærra með lágmarkstakmörkunum (memory_limit) fyrir 64 MB minni; ef viðbótareiningar eru notaðar er mælt með því að setja upp 128 MB.

Drupal getur notað Apache eða Nginx sem vefþjón og MySQL, PostgreSQL eða SQLite sem gagnagrunn.

Við munum setja upp Drupal með Nginx og MySQL.

Uppsetning

Við skulum uppfæra uppsetta pakka í nýjustu útgáfuna:

sudo dnf update -y

Bætum við varanlegu leyfi fyrir komandi umferð á http/80 og https/443 tengi:

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

Við skulum beita nýju eldveggreglunum:

sudo systemctl reload firewalld

Við skulum setja upp Nginx:

sudo dnf install nginx -y

Við skulum byrja og virkja Nginx netþjóninn:

sudo systemctl start nginx
sudo systemctl enable nginx

Þar sem aðal Centos geymslan notar nú PHP 7.2, skulum við bæta við REMI geymslu með PHP 7.4 (lágmarksútgáfa fyrir Drupal 9).
Til að gera þetta skaltu bæta við EPEL geymslunni (krafist af REMI geymslunni):

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

Við skulum bæta við REMI geymslunni:

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

Við skulum virkja php:remi-7.4 eininguna til að setja upp php 7.4:

sudo dnf module enable php:remi-7.4 -y

Settu upp php-fpm og php-cli:

sudo dnf install -y php-fpm php-cli

Við skulum setja upp PHP einingarnar sem þarf til að Drupal virki:

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

Við munum einnig setja upp ráðlagðar PHP mbstring opcache einingar:

sudo dnf install -y php-mbstring php-opcache

Við skulum setja upp MySQL netþjóninn:

sudo dnf install mysql-server -y

Kveikjum á og ræsum MySQL þjóninn:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Þar sem við erum að búa til sniðmát fyrir VDS, og þau geta verið hæg, munum við bæta við mysqld ræsingartöf upp á 30 sekúndur, annars gætu verið vandamál með að þjónninn ræsist við upphaflega ræsingu kerfisins:

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

Við skulum breyta hópnum og notandanum sem nginx mun keyra undir með því að gera breytingar á /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

Við skulum breyta eiganda PHP session möppunnar í nginx í samræmi við það:

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

Fjarlægum línurnar með athugasemdum úr stillingarskránni /etc/nginx/nginx.conf (svo að það séu engir tvöfaldir kveikjur fyrir sed):

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

Bættu gzip þjöppunarstillingum við /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

Bætum við stillingum vísitöluskráarinnar index.php við /etc/nginx/nginx.conf:

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

Bætum við stillingum fyrir sjálfgefna netþjóninn: PHP vinnslu í gegnum php-fpm falsið, slökkva á log fyrir truflanir skrár, auka fyrningartíma, slökkva á aðgangi og villuskrá fyrir favicon.ico og robots.txt og neita aðgangi að .ht skrár fyrir alla:

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

Settu upp wget sem þarf til að setja upp certbot:

sudo dnf install wget -y

Sæktu certbot keyrsluskrána frá offsite:

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

Færðu certbot í /usr/local/bin/:

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

Og við skulum úthluta rétti sem eiganda til að róta:

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

Við skulum setja upp certbot ósjálfstæðin og á þessu stigi trufla vinnu þess (Svör: Y, c):

certbot-auto

Við skulum hlaða niður skjalasafninu með nýjustu útgáfunni af Drupal 9 frá offsite:

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

Settu upp tar til að taka upp skjalasafnið:

sudo dnf install tar -y

Eyðum sjálfgefnum skrám í /usr/share/nginx/html/ möppunni:

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

Við skulum taka skrárnar upp í möppuna á vefþjóninum:

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

Færum skrárnar úr undirmöppunni í rótarskrána á vefþjóninum:

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

Eyðum undirskránni:

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

Eyðum skjalasafninu með uppsetningarskrám:

rm -f ./tar.gz

Við skulum úthluta eiganda nginx skránna:

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

Á þessu stigi munum við slökkva á þjóninum og taka skyndimynd:

shutdown -h now

Eftir að VDS hefur verið ræst úr skyndimyndinni munum við framkvæma fyrstu uppsetningu MySQL netþjónsins með því að keyra handritið:

mysql_secure_installation

Kveikjum á lykilorðaprófandanum:

Would you like to setup VALIDATE PASSWORD component? : y

Við skulum stilla lykilorðið fyrir MySQL rót notandann:

New password:
Re-enter new password:

Fjarlægjum nafnlausa notendur:

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

Við skulum koma í veg fyrir að root tengist lítillega:

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

Eyðum prófunargagnagrunninum:

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

Við skulum endurhlaða forréttindatöflurnar:

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

Eftir þetta, til að ljúka uppsetningu, getum við farið í vps_ip_address
Á þessu heimilisfangi munum við sjá Drupal uppsetningarsíðuna.

Við skulum velja tungumálið sem á að nota. Til dæmis: rússneska. Smelltu á „Vista og haltu áfram“

Við skulum velja uppsetningarsnið (sýnishornið er eingöngu notað til að kynna þér kerfið). Í okkar tilviki, láttu það vera „staðlað“.

Á næstu síðu munum við gefa gagnagrunninum nafn, til dæmis „drupal“. Við skulum gefa til kynna notandanafn gagnagrunnsins rót og lykilorðið sem honum er gefið þegar mysql_secure_installation er keyrt. Smelltu á „Vista og haltu áfram“.

Bíðum eftir að uppsetningu og uppfærslu þýðinga ljúki (ferlið getur tekið nokkrar mínútur).

Við munum tilgreina nafn síðunnar, stilla netfang síðunnar (fyrir hönd þess sem tilkynningar verða sendar), innskráningu, lykilorð og netfang Drupal stjórnandareikningsins. Við munum einnig stilla landið og tímabeltið í svæðisstillingunum. Og kláraðu uppsetninguna með því að smella á "Vista og haltu áfram".

Eftir þetta geturðu farið á stjórnborðið með búið til Drupal stjórnanda innskráningu og lykilorði.

Uppsetning HTTPS (valfrjálst)

Til að stilla HTTPS verður VDS að hafa gilt DNS nafn, tilgreinið í

/etc/nginx/nginx.conf

í miðlarahlutanum er nafn þjónsins (til dæmis):

server_name  domainname.ru;

Við skulum endurræsa nginx:

service nginx restart

Við skulum ræsa certbot:

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

Sláðu inn tölvupóstinn þinn, samþykktu þjónustuskilmálana (A), Gerast áskrifandi að fréttabréfinu (valfrjálst) (N), veldu lénin sem þú vilt gefa út vottorð fyrir (Sláðu inn fyrir alla).

Ef allt gekk án villna munum við sjá skilaboð um árangursríka útgáfu skírteina og uppsetningu netþjóns:

Congratulations! You have successfully enabled ...

Eftir þetta verða tengingar við port 80 sendar á 443 (https).

Bættu við /etc/crontab til að uppfæra vottorð sjálfkrafa:

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

Setja upp Trusted Host Security (mælt með)

Þessi stilling er hugsuð sem lausn á vandamálinu sem tengist kraftmikilli base_url ákvörðun og er hönnuð til að koma í veg fyrir HTTP HOST Header árásir (þegar vefsvæðið þitt heldur að það sé einhver annar).

Til að gera þetta þarftu að tilgreina traust lén fyrir síðuna í stillingaskránni.

Í skrá

/usr/share/nginx/html/sites/default/settings.php Við skulum afskrifa athugasemdir eða bæta við stillingu með mynstrum af raunverulegum nöfnum vefsvæða, til dæmis:

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

Að setja upp PHP APCu (MÆLT TIL)

Drupal styður APCu - Alternative PHP User Cache, útgáfur 8 og 9 nýta APCu meira sem skammtíma skyndiminni en fyrri útgáfur. Sjálfgefin skyndiminnisstærð (32 MB) er hentug fyrir flestar síður og má ekki fara yfir 512 MB.

Til að virkja skaltu setja upp PHP APCu eininguna:

dnf -y install php-pecl-apcu

Endurræstu nginx og php-fpm:

service nginx restart
service php-fpm restart

Ef þú notar rússneska tungumálið og APCu með ráðlagðri minnisstærð fyrir skyndiminni gætirðu séð viðvörun á stjórnborðinu um að stærð úthlutaðs minnis fyrir skyndiminni sé frábrugðin því sem mælt er með, en í raun virkar allt rétt, og röng viðvörun verður líklega leiðrétt í næstu uppfærslum.

Eða ef viðvörunin særir augun geturðu notað samsvarandi plástur frá offsite.

Við viljum minna á að þú getur líka gert mynd fyrir okkur

Það eru þrír möguleikar til að taka þátt.

Undirbúðu myndina sjálfur og fáðu 3000 rúblur í jafnvægi

Ef þú ert tilbúinn til að flýta þér strax í bardaga og búa til myndina sem þig vantar, munum við gefa þér 3000 rúblur á innri stöðu þína, sem þú getur eytt á netþjónum.

Hvernig á að búa til þína eigin mynd:

  1. Búðu til reikning hjá okkur á Online
  2. Láttu stuðning vita að þú ætlar að búa til og prófa myndir
  3. Við munum gefa þér 3000 rúblur og gera þér kleift að búa til skyndimyndir
  4. Pantaðu sýndarþjón með hreinu stýrikerfi
  5. Settu upp hugbúnaðinn á þessum VPS og stilltu hann
  6. Skrifaðu leiðbeiningar eða handrit fyrir uppsetningu hugbúnaðar
  7. Búðu til skyndimynd fyrir stillta netþjóninn
  8. Pantaðu nýjan sýndarþjón með því að velja skyndimyndina sem áður var búið til í fellilistanum „Sniðmát miðlara“
  9. Ef þjónninn hefur tekist að búa til skaltu flytja efnið sem berast í skrefi 6 til tækniaðstoðar
  10. Ef það er villa geturðu leitað til stuðningsaðila um ástæðuna og endurtekið uppsetninguna

Fyrir eigendur fyrirtækja: bjóða upp á hugbúnaðinn þinn

Ef þú ert hugbúnaðarhönnuður sem er notaður og notaður á VPS, þá getum við haft þig með á markaðnum. Þannig getum við hjálpað þér að koma nýjum viðskiptavinum, umferð og vitund. Skrifaðu okkur

Segðu okkur í athugasemdunum hvaða mynd þig vantar?

Og við munum undirbúa það sjálf

Að búa til VPS sniðmát með Drupal 9 á Centos 8

Að búa til VPS sniðmát með Drupal 9 á Centos 8

Heimild: www.habr.com