Drupal 9 malendi loomine VPS-is CentOS 8-l

Me jätkame oma turuplatsiga laienemist. Hiljuti rääkisime, kuidas me tegime Gitlabi pildi, ja sel nädalal ilmus meie turuplatsile Drupal.

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

Drupal 9 malendi loomine VPS-is CentOS 8-l

Drupal — mugav ja võimas platvorm igasuguste veebisaitide loomiseks: alates mikrosaitidest ja blogidest kuni suurte sotsiaalsete projektideni, mida kasutatakse ka veebirakenduste aluseks, kirjutatud PHP keeles ja kasutab andmete salvestamiseks relatsioonilisi andmebaase.

Drupal 9 sisaldab kõiki versiooni 8.9 funktsioone. Peamine erinevus versiooni 9 ja versiooni 8 vahel on see, et platvormile antakse uuendusi ja turvaparandusi ka pärast novembrit 2021. Samuti on versioonis 9 uuendamise protsessi lihtsustatud, muutes versioonilt 8 uuendamise veelgi lihtsamaks.

Serverinõuded

Drupali kasutamiseks on soovitatav kasutada 2 GB RAM-i ja 2 CPU tuuma.

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

Drupal 9 nõuab PHP 7.4 või uuemat, minimaalsete piirangutega (memory_limit) mälu 64 MB, juhul kui kasutatakse lisamooduleid, soovitatakse seada 128 MB.

Webiserverina võib Drupal kasutada Apache või Nginx’i, andmebaasina MySQL, PostgreSQL või SQLite.

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

Paigaldamine

Uuendame installitud paketid viimasele versioonile:

sudo dnf update -y

Lisame püsiva lubamise sisendliiklus http/80 ja https/443 portidele:

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

Rakendame uued tulemüüri reeglid:

sudo systemctl reload firewalld

Installeerime Nginx'i:

sudo dnf install nginx -y

Käivitame ja lubame Nginx serveri:

sudo systemctl start nginx
sudo systemctl enable nginx

Kuna hetkel on CentOS-i peamises repositooriumis kasutusel PHP versioon 7.2, lisame REMI repositooriumi PHP 7.4 jaoks (minimaalne versioon Drupal 9 jaoks).
Selleks lisame EPEL repositooriumi (REMI repositoorium vajab seda):

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

Lülitame php:remi-7.4 mooduli php 7.4 installimiseks sisse:

sudo dnf module enable php:remi-7.4 -y

Installeerime php-fpm ja php-cli:

sudo dnf install -y php-fpm php-cli

Installeerime Drupali tööks 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

Samuti installime soovitatavad PHP moodulid mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Installime MySQL serveri:

sudo dnf install mysql-server -y

L aktiveerime ja käivitame MySQL serveri:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Kuna teeme VDS-i šablooni ning need võivad olla aeglased, lisame mysqld käivitamiseks 30 sekundi viivituse, vastasel juhul võivad süsteemi esmakordsel käivitamisel tekkida probleemid serveri käivitamisel:

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

Muudame grupi ja kasutaja, mille alt töötab nginx, tehes muudatusi /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 sessioonikausta omaniku samuti nginx-iks:

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

Kustutame kommentaarid konfigureerimisfailist /etc/nginx/nginx.conf (et ei tekiks kahekordseid väljendeid sed-i jaoks):

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

Lisame /etc/nginx/nginx.conf gzip tihendamise seaded

sudo sed -i 's/types_hash_max_size 2048;/a \n\ngzip on;\ngzip_static on;\ngzip_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;\ngzip_comp_level 9;\ngzip_proxied any;\ngzip_min_length 1000;\ngzip_disable "msie6";\ngzip_vary on;\n/' /etc/nginx/nginx.conf

Lisame /etc/nginx/nginx.conf indeksifaili index.php seaded:

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

Lisame seadistusi vaikimisi serveri PHP töötlemiseks php-fpmi kaudu, keelame staatiliste failide logimise, suurendame aegumisaega, keelame juurdepääsu logid favicon.ico ja robots.txt jaoks ning keelan ligipääsu .ht failidele kõigile:

sudo sed -i 's/        location \/ {/a \t\ttry_files $uri $uri\/ \/index.php?q=$uri&$args;\n        }\n\n        location ~* ^.+\.(js|css|png|jpg|jpeg|gif|ico|woff)$ {\n        access_log off;\n        expires max;\n        }\n\n        location ~ .php$ {\n        try_files  $uri =404;\n        fastcgi_pass   unix:\/run\/php-fpm\/www.sock;\n        fastcgi_index index.php;\n        include fastcgi_params;\n        fastcgi_intercept_errors on;\n        fastcgi_ignore_client_abort off;\n        fastcgi_connect_timeout 60;\n        fastcgi_send_timeout 180;\n        fastcgi_read_timeout 180;\n        fastcgi_buffer_size 128k;\n        fastcgi_buffers 4 256k;\n        fastcgi_busy_buffers_size 256k;\n        fastcgi_temp_file_write_size 256k;\n        }\n\n        location = \/favicon.ico {\n        log_not_found off;\n        access_log off;\n        }\n\n        location = \/robots.txt {\n        allow all;\n        log_not_found off;\n        access_log off;\n        }\n\n        location ~ \/\.ht {\n        deny all;' /etc/nginx/nginx.conf

Installime wget, mida on vaja certboti installimiseks:

sudo dnf install wget -y

Laadime alla täitmisfaili certbot ametlikult veebisaidilt:

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

Liigume certboti kausta /usr/local/bin/:

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

Ja määrame õigused ja omanikuks root:

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

Paigaldame certboti sõltuvused ja peatame selle töö (Vastused: Y, c):

certbot-auto

Laadime alla ametlikult veebisaidilt arhiivi viimase versiooni Drupal 9:

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

Paigaldame tar arhiivi ekstraktsiooniks:

sudo dnf install tar -y

Kustutame vaikimisi failid kataloogist /usr/share/nginx/html/:

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

Ekstraheerime failid veebiserveri katalooge:

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

Liigume failid alamkataloogist veebiserveri juurkatalooge:

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 arhiivi installifailidest:

rm -f ./tar.gz

Määrame failide omanikuks nginx:

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

Sellel etapil lülitame serveri välja ja teeme hetkepildi:

shutdown -h now

Pärast VDS käivitamist hetkepildilt teeme algse seadistuse MySQL serveri käivitades skripti:

mysql_secure_installation

Käivitame paroolide valideerimise:

Would you like to setup VALIDATE PASSWORD component? : y

Seame MySQL kasutaja root parooli:

New password:
Re-enter new password:

Kustutame anonüümsed kasutajad:

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

Keelame root'i kauglogin:

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

Kustutame testandmebaasi:

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, et installatsioon lõpetada, saame minna aadressile vps_ip_address
Sellel aadressil näeme Drupal'i installimise lehte.

Valime kasutatava keele. Näiteks: eesti. Vajutame „Salvesta ja jätka“

Valime installiprofiili (demo on mõeldud ainult süsteemi tutvustamiseks). Meie puhul olgu see „standard“.

Järgmises lehes määrame andmebaasi nime, näiteks „drupal“. Anname andmebaasi kasutajale root ja parooli, mille määrasime mysql_secure_installation käivitamisel. Vajutame „Salvesta ja jätka“.

Ootame, kuni installatsioon ja tõlgete värskendamine on lõpule viidud (protsess võib võtta mitu minutit).

Määrake saidi nimi, sisestage saidi e-posti aadress (millest saidi teatised saadetakse), kasutajanimi, parool ja Drupal administraatori konto e-posti aadress. Samuti määrake riik ja ajavöönd regionaalsetes seadetes. Ja lõpetage installatsioon, vajutades "Salvesta ja edasta".

Pärast seda saab minna juhtpaneeli loodud administraatori kasutajanime ja parooliga.

HTTPS-i seadistamine (valikuline)

HTTPS-i seadistamiseks peab VDS-l olema kehtiv DNS-nimi; määrake see

/etc/nginx/nginx.conf

serveri jaotises (näiteks):

server_name  domainname.ee;

Taaskäivitame nginx:

service nginx restart

Käivitame certboti:

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

Sisestage oma e-posti aadress, nõustuge teenuse tingimustega (A), liitumine uudiskirjaga (valikuline) (N), valige domeeninimed, millele soovite sertifikaadi väljastada (Enter kõigi jaoks).

Juhul, kui kõik läks ilma vigadeta, näeme sõnumit eduka sertifikaadi väljastamise ja serveri seadistamise kohta:

Congratulations! You have successfully enabled ...

Pärast seda suunatakse ühendused 80. portilt 443-ile (https).

Lisame /etc/crontab automaatsete sertifikaatide värskenduste jaoks:

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

Trusted Host Security seadistamine (soovitatav)

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

Selleks tuleb määrata saidi usaldusväärsed domeeninimed seadistust failis.

Failis

/usr/share/nginx/html/sites/default/settings.php kommendi eemaldamine või lisamine aktiivsete saidi nimede mustritega, näiteks:

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

PHP APCu seadistamine (SOOVITATAV)

Drupal toetab APCu — Alternatiivne PHP kasutaja vahemälu, versioonid 8 ja 9 kasutavad APCut intensiivsemalt lühiajalise vahemäluna kui eelnevad versioonid. Vahemälu suurus vaikimisi (32 MB) sobib enamikule saitidest, ega võib ületada 512 MB.

Käivitamiseks installige PHP APCu moodul:

dnf -y install php-pecl-apcu

Taaskäivitame nginx ja php-fpm:

service nginx restart
service php-fpm restart

Kui kasutate vene keelt ja APCut soovitatava vahemälu suurusega, siis juhtpaneelis võite näha hoiatust, et määratud vahemälu suurus erineb soovitatud suurusest, kuid tegelikult töötab kõik õigesti ja valehoiatus tõenäoliselt parandatakse lähitulevikus uuendustega.

Või kui hoiatus on silma riivav, võib kasutada vastavik patch allikast.

Tuletame meelde, et ka teie saate meie jaoks malli luua

Osalemiseks on kolm võimalust.

Valmistage mall ise ja saate 3000 rubla krediiti

Kui olete valmis kohe lahingusse astuma ja looma puuduva malli, kanname teile 3000 rubla sisetingimustele krediteerimiseks — seda saab kasutada serverite ostmiseks.

Kuidas luua oma malli:

  1. Looge konto meie juures veebisaidil
  2. Teavitage tuge, et kavatsete luua ja testida malli
  3. Kandame teile 3000 rubla ja lubame malli loomise võimaluse
  4. Kasutage puhta operatsioonisüsteemiga virtuaalserverit
  5. Installige sellele VPS-ile tarkvara ja seadistage see
  6. Koostage juhend või skript tarkvara juurutamiseks
  7. Looge seatud serverist snapshot
  8. Küsi uut virtuaalserverit, valides allolevast nimekirjast varem loodud snapshot
  9. Kui serveri loomine on edukas, edastage tehnilisele toele saadud materjalid etapis 6
  10. Viga esinemise korral võite toetustelt küsida põhjuse ja korrata seadistust

Ärimeestele: pakkuda oma tarkvara

Kui olete tarkvara arendaja, mida juurutatakse ja kasutatakse VPS-is, võime teid lisada turuplatvormile. Nii saame aidata teil tuua uusi kliente, liiklust ja tuntust. Kirjutage meile

Rääkige meile kommentaarides, millest malli teil puudu on?

Ja me valmistame selle ise

Drupal 9 malendi loomine VPS-is CentOS 8-l

Drupal 9 malendi loomine VPS-is CentOS 8-l

Allikas: habr.com

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster