VPS txantiloi bat sortzea Drupal 9-rekin Centos 8-n

Gure merkatua zabaltzen jarraitzen dugu. Duela gutxi kontatu dizuegu nola Gitlab irudi bat egin du, eta aste honetan Drupal agertu da gure merkatuan.

Zergatik aukeratu genuen eta irudia nola sortu zen kontatzen dizuegu.

VPS txantiloi bat sortzea Drupal 9-rekin Centos 8-n

Drupal edozein motatako webguneak sortzeko plataforma erosoa eta indartsua da: mikrogune eta blogetatik hasi eta gizarte proiektu handietaraino, web aplikazioetarako oinarri gisa ere erabiltzen dena, PHPn idatzia eta datu-base erlazionalak erabiliz datu biltegiratze gisa.

Drupal 9k 8.9 bertsioan sartutako ezaugarri guztiak biltzen ditu. 9. bertsioaren eta 8. bertsioaren arteko aldea nagusiena da plataformak eguneratzeak eta segurtasun konponketak jasotzen jarraituko duela 2021eko azarotik aurrera. 9. bertsioak eguneratze prozesua ere errazten du, 8. bertsiotik eguneratzeko prozesua are errazagoa eginez.

Zerbitzariaren eskakizunak

Drupal erabiltzeko, 2 GB RAM eta 2 CPU nukleo erabiltzea gomendatzen da.

Drupal fitxategi nagusiek 100 MB inguru hartzen dute, gainera irudiak, datu-baseak, gaiak, modulu osagarriak eta babeskopiak gordetzeko lekua beharko duzu, zure gunearen tamainaren araberakoa izango dena.

Drupal 9-k PHP 7.4 edo berriagoa behar du gutxieneko muga batekin (memory_limit) 64 MBko memoriarako; modulu gehigarriak erabiltzen badira, 128 MB instalatzea gomendatzen da.

Drupalek Apache edo Nginx erabil ditzake web zerbitzari gisa, eta MySQL, PostgreSQL edo SQLite datu-base gisa.

Drupal instalatuko dugu Nginx eta MySQL erabiliz.

Instalazio-

Eguneratu ditzagun instalatutako paketeak azken bertsiora:

sudo dnf update -y

Gehitu dezagun sarrerako trafikorako baimen iraunkorra http/80 eta https/443 portuetan:

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

Aplikatu ditzagun suebakiaren arau berriak:

sudo systemctl reload firewalld

Instala dezagun Nginx:

sudo dnf install nginx -y

Hasi eta gaitu gaitezen Nginx zerbitzaria:

sudo systemctl start nginx
sudo systemctl enable nginx

Gaur egun Centos biltegi nagusiak PHP 7.2 erabiltzen duenez, gehi dezagun REMI biltegi bat PHP 7.4 (Drupal 9rako gutxieneko bertsioa).
Horretarako, gehitu EPEL biltegia (REMI biltegiak eskatzen duena):

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

Gehitu dezagun REMI biltegia:

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

Gaitu dezagun php:remi-7.4 modulua php 7.4 instalatzeko:

sudo dnf module enable php:remi-7.4 -y

Instalatu php-fpm eta php-cli:

sudo dnf install -y php-fpm php-cli

Instala ditzagun Drupalek funtziona dezan behar diren PHP moduluak:

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

Gomendatutako PHP mbstring opcache moduluak ere instalatuko ditugu:

sudo dnf install -y php-mbstring php-opcache

Instala dezagun MySQL zerbitzaria:

sudo dnf install mysql-server -y

Piztu eta abi dezagun MySQL zerbitzaria:

sudo systemctl start mysqld
sudo systemctl enable mysqld

VDSrako txantiloi bat egiten ari garenez, eta motelak izan daitezkeenez, 30 segundoko mysqld hasierako atzerapena gehituko dugu, bestela sistemaren hasierako abiaraztean zerbitzaria abiaraztearekin arazoak egon daitezke:

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

Alda ditzagun nginx-ek abiaraziko duen taldea eta erabiltzailea /etc/php-fpm.d/www.conf-en aldaketak eginez:

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

Alda dezagun PHP saioen direktorioaren jabea nginx-era horren arabera:

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

Kendu ditzagun /etc/nginx/nginx.conf konfigurazio fitxategitik iruzkinak dituzten lerroak (sed-en abiarazle bikoitzik ez egon dadin):

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

Gehitu gzip konpresioaren ezarpenak /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

Gehi ditzagun index.php fitxategiaren ezarpenak /etc/nginx/nginx.conf-era:

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

Gehi ditzagun zerbitzari lehenetsiaren ezarpenak: PHP prozesatzea php-fpm socket-aren bidez, desgaitu fitxategi estatikoen erregistroa, iraungitze-denbora handitu, desgaitu favicon.ico eta robots.txt-entzako sarbidea eta erroreen erregistroa eta ukatu .ht-rako sarbidea. guztientzako fitxategiak:

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

Instalatu wget beharrezkoa den certbot instalatzeko:

sudo dnf install wget -y

Deskargatu certbot fitxategi exekutagarria gunetik kanpo:

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

Eraman certbot /usr/local/bin/era:

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

Eta esleitu ditzagun jabe gisa root egiteko eskubideak:

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

Instalatu ditzagun certbot mendekotasunak eta une honetan eten ditzagun bere lana (Erantzunak: Y, c):

certbot-auto

Deskargatu dezagun Drupal 9-ren azken bertsioa duen artxiboa kanpoko gunetik:

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

Instalatu tar artxiboa deskonprimitzeko:

sudo dnf install tar -y

Ezabatu ditzagun /usr/share/nginx/html/ direktorioko fitxategi lehenetsiak:

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

Deskonprimi ditzagun fitxategiak web zerbitzariaren direktorioan:

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

Muga ditzagun fitxategiak azpidirektoriotik web zerbitzariaren erroko direktoriora:

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

Ezabatu dezagun azpidirektorioa:

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

Ezabatu dezagun artxiboa instalazio fitxategiekin:

rm -f ./tar.gz

Esleitu dezagun nginx fitxategien jabea:

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

Etapa honetan zerbitzaria itzali eta argazki bat aterako dugu:

shutdown -h now

Snapshot-etik VDS abiarazi ondoren, MySQL zerbitzariaren hasierako konfigurazioa egingo dugu scripta exekutatuz:

mysql_secure_installation

Gaitu dezagun pasahitzaren baliozkotzailea:

Would you like to setup VALIDATE PASSWORD component? : y

Ezar dezagun MySQL root erabiltzailearentzat pasahitza:

New password:
Re-enter new password:

Kendu ditzagun erabiltzaile anonimoak:

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

Eragotzi dezagun root urrunetik konektatzea:

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

Ezabatu dezagun probaren datu-basea:

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

Kargatu ditzagun pribilegioen taulak:

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

Honen ondoren, instalazioa amaitzeko, hona joan gaitezke vps_ip_helbidea
Helbide honetan Drupal instalazio orria ikusiko dugu.

Aukeratu dezagun erabili beharreko hizkuntza. Adibidez: errusiera. Egin klik "Gorde eta Jarraitu"

Hautatu dezagun instalazio-profil bat (demoa sistemarekin ezagutzeko bakarrik erabiltzen da). Gure kasuan, "estandarra" izan dadila.

Hurrengo orrialdean datu-baseari izen bat emango diogu, adibidez β€œdrupal”. Adierazi dezagun datu-basearen erabiltzaile-izena root eta mysql_secure_installation exekutatzean emandako pasahitza. Egin klik "Gorde eta Jarraitu".

Itxaron dezagun itzulpenen instalazioa eta eguneraketa amaitu arte (prozesuak minutu batzuk iraun ditzake).

Gunearen izena adieraziko dugu, guneko posta elektronikoa ezarriko dugu (gunearen jakinarazpenak zeinen izenean bidaliko diren), Drupal administratzailearen kontuaren saioa, pasahitza eta posta elektronikoa. Herrialdea eta ordu-zona ere ezarriko ditugu eskualdeko ezarpenetan. Eta osatu instalazioa "Gorde eta Jarraitu" sakatuz.

Horren ondoren, kontrol panelera joan zaitezke sortutako Drupal administratzailearen saio-hasiera eta pasahitzarekin.

HTTPS konfiguratzea (aukerakoa)

HTTPS konfiguratzeko, VDSak baliozko DNS izen bat izan behar du, zehaztu hemen

/etc/nginx/nginx.conf

zerbitzariaren atalean zerbitzariaren izena (adibidez):

server_name  domainname.ru;

Berrabia dezagun nginx:

service nginx restart

Abiarazi dezagun certbot:

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

Sartu zure e-maila, onartu zerbitzu-baldintzak (A), Harpidetu buletinera (aukerakoa) (N), hautatu ziurtagiria igorri nahi duzun domeinu-izenak (Sartu guztiontzat).

Dena akatsik gabe joan bada, mezu bat ikusiko dugu ziurtagiriak arrakastaz igortzeari eta zerbitzariaren konfigurazioari buruz:

Congratulations! You have successfully enabled ...

Horren ondoren, 80 atakarako konexioak 443ra (https) birbideratuko dira.

Gehitu /etc/crontab ziurtagiriak automatikoki eguneratzeko:

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

Ostalari fidagarriaren segurtasuna konfiguratzea (gomendatua)

Ezarpen hau base_url dinamikoaren zehaztapenarekin lotutako arazoari irtenbide bat eman nahi zaio, eta HTTP HOST goiburuko erasoak saihesteko diseinatuta dago (zure webguneak beste norbait dela uste duenean).

Horretarako, gunerako domeinu-izen fidagarriak zehaztu behar dituzu ezarpenen fitxategian.

Fitxategian

/usr/share/nginx/html/sites/default/settings.php Utzi iruzkinik edo gehitu ezarpen bat benetako gune-izenen ereduekin, adibidez:

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

PHP APCu instalatzea (GOMENDATUA)

Drupal-ek APCu - Alternative PHP User Cache onartzen du, 8 eta 9 bertsioek APCu-a epe laburreko tokiko cache gisa erabiltzen dute aurreko bertsioek baino. Cache-tamaina lehenetsia (32 MB) egokia da gune gehienetarako, eta ezin du 512 MB gainditu.

Aktibatzeko, instalatu PHP APCu modulua:

dnf -y install php-pecl-apcu

Berrabiarazi nginx eta php-fpm:

service nginx restart
service php-fpm restart

Errusiako hizkuntza eta APCu erabiltzen badituzu cacherako gomendatutako memoria-tamainarekin, baliteke kontrol-panelean abisu bat agertzea, cacherako esleitutako memoriaren tamaina gomendatutakoaren desberdina dela, baina, egia esan, dena ondo funtzionatzen du. eta abisu okerra hurrengo eguneraketetan zuzenduko da ziurrenik.

Edo abisuak begiei min ematen badie, erabil dezakezu tokiz kanpoko dagokion adabakia.

Gogoratu nahi dizuegu irudi bat ere egin dezakezuela guretzat

Hiru aukera daude parte hartzeko.

Prestatu irudia zuk zeuk eta lortu 3000 errublo saldoan

Berehala borrokan sartu eta falta zaizun irudia sortzeko prest bazaude, 3000 errublo sartuko dizkizugu zure barneko saldoari, zerbitzarietan gastatu ditzakezunak.

Nola sortu zure irudia:

  1. Sortu kontu bat gurekin Online
  2. Jakinarazi laguntzari irudiak sortu eta probatuko dituzula
  3. 3000 errublo kreditatuko dizkizugu eta argazkiak sortzeko gaitasuna gaitu
  4. Ordena sistema eragile garbia duen zerbitzari birtual bat
  5. Instalatu softwarea VPS honetan eta konfiguratu
  6. Idatzi argibideak edo script-a softwarea zabaltzeko
  7. Sortu argazki bat konfiguratutako zerbitzariarentzat
  8. Eskatu zerbitzari birtual berri bat "Zerbitzari txantiloia" goitibeherako zerrendan aldez aurretik sortutako argazkia hautatuta
  9. Zerbitzaria behar bezala sortzen bada, transferitu 6. fasean jasotako materialak laguntza teknikora
  10. Errore bat badago, laguntzarekin egiaztatu dezakezu arrazoia eta konfigurazioa errepikatu

Enpresa jabeentzat: eskaini zure softwarea

VPS-n zabaldu eta erabiltzen den software garatzailea bazara, merkatuan sar gaitezke. Horrela bezero berriak, trafikoa eta kontzientzia ekartzen lagunduko dizugu. Idatz iezaguzu

Esaiguzu iruzkinetan zein irudi falta zaizun?

Eta guk geuk prestatuko dugu

VPS txantiloi bat sortzea Drupal 9-rekin Centos 8-n

VPS txantiloi bat sortzea Drupal 9-rekin Centos 8-n

Iturria: www.habr.com