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