Abuuritaanka qaabka VPS ee Drupal 9 ee Centos 8

Waxaan sii wadeynaa ballaarinta suuqayada. Waxaan dhawaan ka hadalnay sida sameeyay sawirka Gitlab, todobaadkanna Drupal wuxuu ka soo muuqday suuqayada.

Waxaan u sheegnaa sababta aan u dooranay iyo sida sawirka loo abuuray.

Abuuritaanka qaabka VPS ee Drupal 9 ee Centos 8

Drupal waa goob ku habboon oo awood badan oo loogu talagalay abuurista nooc kasta oo ka mid ah boggag: laga bilaabo microsites iyo blogs ilaa mashruucyo bulsho oo waaweyn, kaas oo sidoo kale loo isticmaalo saldhigga codsiyada webka, oo ku qoran PHP iyo isticmaalka xogta la xidhiidha kaydinta xogta.

Drupal 9 waxaa ku jira dhammaan sifooyinka lagu soo bandhigay nooca 8.9. Farqiga ugu muhiimsan ee u dhexeeya nooca 9 iyo nooca 8 ayaa ah in madalku ay sii wadi doonto helista cusboonaysiinta iyo hagaajinta amniga wixii ka dambeeya Noofambar 2021. Sidoo kale nooca 9, habka cusboonaysiinta ayaa la fududeeyay, taas oo ka dhigaysa habka casriyaynta ee nooca 8 xitaa mid sahlan.

Shuruudaha server-ka

Si aad u isticmaasho Drupal, waxaa lagu talinayaa in la isticmaalo 2 GB ee RAM iyo 2 CPU.

Faylasha ugu muhiimsan ee Drupal waa qiyaastii 100 MB, intaa waxaa dheer waxaad u baahan doontaa meel aad ku kaydiso sawirada, xogta xogta, mawduucyada, add-ons iyo backups, taas oo ku xirnaan doonta xajmiga goobtaada.

Drupal 9 wuxuu u baahan yahay PHP 7.4 ama ka sareeya oo leh xadka ugu yar (memory_limit) ilaa 64 MB xasuusta, haddii la isticmaalo modules dheeraad ah, waxaa lagu talinayaa in la rakibo 128 MB.

Drupal waxay isticmaali kartaa Apache ama Nginx sidii shabakad shabakad ahaan, iyo MySQL, PostgreSQL ama SQLite xog ahaan.

Waxaan ku rakibi doonaa Drupal anagoo adeegsanayna Nginx iyo MySQL.

Ku rakibida

Cusbooneysii baakooyinka la rakibay nooca ugu dambeeyay:

sudo dnf update -y

Aynu ku darno ogolaanshaha joogtada ah ee taraafikada soo galaya http/80 iyo https/443 dekedaha:

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

Ku dhaqan xeerarka cusub ee firewall:

sudo systemctl reload firewalld

Aynu rakibno Nginx:

sudo dnf install nginx -y

Aan bilowno oo aan awoodno serverka Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Maadaama PHP 7.2 hadda lagu isticmaalo kaydka ugu weyn ee Centos, aan ku darno kaydka REMI ee PHP 7.4 (nooca ugu yar ee Drupal 9).
Si tan loo sameeyo, ku dar kaydka EPEL (waxaa u baahan kaydka REMI):

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

Aynu ku darno kaydka REMI:

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

Daar php:remi-7.4 module si loo rakibo php 7.4:

sudo dnf module enable php:remi-7.4 -y

Ku rakib php-fpm iyo php-cli:

sudo dnf install -y php-fpm php-cli

Ku rakib cutubyada PHP ee looga baahan yahay Drupal inuu shaqeeyo:

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

Waxaan sidoo kale rakibi doonaa cutubyada PHP ee lagu taliyay mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Ku rakib server MySQL:

sudo dnf install mysql-server -y

Daar oo bilow server-ka MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Maadaama aan samaynayno qaab-dhismeedka VDS, oo ay noqon karaan kuwo gaabis ah, waxaan ku dari doonaa dib u dhigista mysqld ee 30 ilbiriqsi, haddii kale waxaa jiri kara dhibaatooyin bilaabista serverka inta lagu jiro nidaamka bilowga ah:

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

Aan bedelno kooxda iyo isticmaalaha uu nginx ku shaqeyn doono anagoo isbedel ku sameynayna /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

U beddel milkiilaha tusaha kalfadhiga PHP nginx si waafaqsan:

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

Aynu ka saarno khadadka faallooyinka faylka qaabeynta /etc/nginx/nginx.conf (si aanay laba jeer u dhicin sed):

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

Ku dar dejinta isku-buufinta gzip /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

Aan ku darno jaangooyooyinka faylka index.php ee /etc/nginx/nginx.conf:

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

Aynu ku darno jaangooyooyinka php-ka caadiga ah ee server-ka iyada oo loo marayo godka php-fpm, dami diiwaanka faylalka taagan, kordhinta wakhtiga dhicitaanka, dami gelida gelitaanka iyo khaladaadka favicon.ico iyo robots.txt oo diidno gelitaanka .ht faylasha qof walba:

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

Ku rakib wget ayaa loo baahan yahay si loo rakibo certbot:

sudo dnf install wget -y

Ka soo deji faylka certbot-ga la fulin karo ee ka baxsan goobta:

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

U dhaqaaq certbot-ka/usr/maxalli/bin/:

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

Oo u qoondeeya xuquuqda iyo lahaanshaha xididka:

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

Ku rakib ku tiirsanaanta certbot oo jooji heerkan (Jawaab: Y, c):

certbot-auto

Soo deji kaydka noocii u dambeeyay ee Drupal 9 ee ka baxsan goobta:

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

Rakib daamur si aad u furto kaydka:

sudo dnf install tar -y

Tirtir faylasha caadiga ah ee ku jira /usr/share/nginx/html/ directory:

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

Ka fur faylalka hagaha server-ka shabakada:

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

Ka guuri faylalka haga-hoosaadka una guuri tusaha xididka seerfarka shabakadda:

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

Aynu tirtirno hagaha-hoosaadka:

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

Ku tirtir kaydka faylka rakibaadda:

rm -f ./tar.gz

Deji milkiilaha faylasha nginx:

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

Marxaladdan waxaan damin doonaa server-ka oo aan qaadi doonaa sawir:

shutdown -h now

Ka dib markii laga bilaabo VDS-ka sawir-qaadista, waxaanu samayn doonaa dejinta bilowga ah ee server-ka MySQL anagoo socodsiin doona qoraalka:

mysql_secure_installation

Daar ansixiyaha sirta ah:

Would you like to setup VALIDATE PASSWORD component? : y

Deji erayga sirta ah ee isticmaalaha MySQL:

New password:
Re-enter new password:

Ka saar isticmaalayaasha aan la garanayn:

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

Aan ka hortagno in xididku ku xidhmo meel fog:

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

Aynu ka saarno xogta xogta tijaabada:

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

Dib u soo deji miisaska mudnaanta:

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

Taas ka dib, si loo dhamaystiro rakibaadda, waxaan aadi karnaa vps_ip_cinwaanka
Cinwaankan waxaan ku arki doonaa bog la rakibay Drupal.

Dooro luqadda la isticmaalayo. Tusaale ahaan: Ruush. Guji "Save and Continue"

Aynu doorano astaanta rakibaadda (demo waxa loo isticmaalaa oo keliya in la barto nidaamka). Xaaladeena, ha noqoto "standard".

Bogga xiga, waxaad siisaa xogta xogta magac, sida "drupal". Sheeg magaca isticmaalaha database-ka iyo erayga sirta ah ee la siiyay markii uu bilaabay mysql_secure_installation. Guji "Save and Continue".

Aynu sugno rakibaadda iyo cusboonaysiinta tarjumaada si ay u dhammaystirmaan (habka ayaa laga yaabaa inuu qaato dhowr daqiiqo).

Sheeg magaca goobta, deji iimaylka goobta (iyaga oo ka wakiil ah ogeysiisyada goobta iman doona), gelitaanka, erayga sirta ah iyo iimaylka koontada maamulaha Drupal. Waxaan sidoo kale dejin doonaa dalka iyo aagga waqtiga ee goobaha gobollada. Oo dhamaystir rakibaadda adigoo gujinaya "Save and Continue".

Taas ka dib, waxaad aadi kartaa guddiga kantaroolka ee la abuuray maamulaha Drupal login iyo erayga sirta ah.

Dejinta HTTPS (ikhtiyaar)

Si loo habeeyo HTTPS, VDS waa inuu lahaadaa magac DNS oo sax ah, oo ku qeex

/etc/nginx/nginx.conf

qaybta serverka magaca serverka (tusaale):

server_name  domainname.ru;

Aan dib u bilowno nginx:

service nginx restart

Aan bilowno certbot:

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

Geli e-mailkaaga, ku heshiso shuruudaha adeegga (A), Ku biir warsidaha (ikhtiyaar) (N), dooro magacyada domain ee aad rabto inaad bixiso shahaado (Enter for all).

Haddii wax walbaa ku dhaceen khaladaad la'aan, waxaan arki doonaa fariin ku saabsan soo saarista guusha leh ee shahaadooyinka iyo dejinta serverka:

Congratulations! You have successfully enabled ...

Taas ka dib, isku xirka dekeda 80 waxaa loo wareejin doonaa 443 (https).

Ku dar /etc/crontab si aad si toos ah ugu cusbooneysiiso shahaadooyinka:

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

Dejinta Ammaanka Martigelinta La Aaminsanyahay (lagu taliyay)

Goobtan waxaa loogu talagalay sidii xal loogu heli lahaa dhibaatada ogaanshaha base_url ee firfircoon, waxaana loogu talagalay in laga hortago weerarada Madaxa HTTP HOST (marka goobtaadu u maleyneyso inay tahay qof kale).

Si tan loo sameeyo, waxaad u baahan tahay inaad ku qeexdo magacyada domain la aaminsan yahay ee goobta ee faylka dejinta.

Faylka ku jira

/usr/share/nginx/html/sites/default/settings.php faallooyin la'aan ama ku dar meel leh qaababka magacyada goobta dhabta ah, tusaale ahaan:

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

Ku rakibida PHP APCu

Drupal waxay taageertaa APCu - Kaadi Isticmaalaha PHP Beddelka ah, noocyada 8 iyo 9 waxay u isticmaalaan APCu si ka sii xoog badan sidii kayd maxalli ah oo gaaban oo ka duwan noocyadii hore. Cabbirka kaydinta caadiga ah (32 MB) ayaa ku habboon inta badan boggaga, mana dhaafi karo 512 MB.

Si aad u dhaqaajiso, rakib moduleka PHP APCu:

dnf -y install php-pecl-apcu

Dib u bilow nginx iyo php-fpm:

service nginx restart
service php-fpm restart

Marka la eego isticmaalka luqadda Ruushka iyo APCu oo leh cabbirka xusuusta cache ee lagu taliyey, waxaad arki kartaa digniin ku jirta guddiga xakamaynta in cabbirka xusuusta kaydinta loo qoondeeyay ay ka duwan tahay midda lagu taliyey, laakiin dhab ahaantii wax walba waxay u shaqeeyaan si sax ah, iyo qaladka. digniinta waxay u badan tahay in lagu hagaajin doono cusboonaysiinta soo socota.

Ama haddii digniintu ay indhahaaga dhaawacdo, waad isticmaali kartaa balastar u dhiganta oo ka yimid goobta.

Waxaan jecelnahay inaan ku xasuusino inaad sidoo kale noo samayn karto sawir

Waxaa jira saddex doorasho oo ah sida looga qaybqaadanayo.

U diyaari sawirka naftaada oo hel 3000 rubles dheelitirkaaga

Haddii aad diyaar u tahay inaad isla markiiba ku degdegto dagaalka oo aad abuurto sawirka aad naftaada ka maqan tahay, waxaanu kugu ammaanayn doonaa 3000 rubles dheelitirkaaga gudaha - waxaad ku bixin kartaa server-yada.

Sida loo sameeyo sawirkaaga:

  1. Nala samee akoon goobta
  2. Taageerada u sheeg inaad samaynayso oo aad tijaabinayso sawiro
  3. Waxaan ku siin doonaa credit 3000 oo rubles iyo awood u leh inay abuuraan snapshots
  4. Dalbo server dalwad ah oo leh nidaam hawleed nadiif ah
  5. Ku rakib software-ka VPS-kan oo deji
  6. Qor tilmaamo ama qoraal loogu talagalay soo dejinta software
  7. U samee sawir sawir seerfar la habeeyey
  8. Dalbo adeeg cusub oo macmal ah adiga oo dooranaya sawirka hore loo abuuray ee liiska hoos-u-dhaca ee "Server template".
  9. Haddii ay dhacdo in si guul leh loo abuuro server-ka, u wareeji agabka lagu helay tallaabada 6 taageero farsamo
  10. Haddii uu khalad jiro, waxaad ku hubin kartaa taageerada sababta oo ku celi dejinta

Milkiilayaasha ganacsiga: u soo bandhig software-kaaga

Haddii aad tahay horumariye kombuyuutar oo la diray oo lagu isticmaalo VPS, markaa waxaan kugu dari karnaa suuqa. Tani waa sida aan kuugu caawin karno inaad keento macaamiisha cusub, gaadiidka iyo wacyigelinta. Noo qor

Noogu sheeg faallooyinka sawirkee ayaad tabaysay?

Anaguna waanu diyaarin doonaa

Abuuritaanka qaabka VPS ee Drupal 9 ee Centos 8

Abuuritaanka qaabka VPS ee Drupal 9 ee Centos 8

Source: www.habr.com