Ukwenza iTemplate yeVPS ngeDrupal 9 kwiCentos 8

Siyaqhubeka nokwandisa indawo yethu yentengiso. Kutshanje sikuxelele ukuba njani wenze umfanekiso weGitlab, kwaye kule veki iDrupal ivele kwindawo yethu yentengiso.

Siyakuxelela isizathu sokuba simkhethe kunye nendlela owadalwa ngayo umfanekiso.

Ukwenza iTemplate yeVPS ngeDrupal 9 kwiCentos 8

Drupal - iqonga elilungileyo nelinamandla lokudala naluphi na uhlobo lwewebhusayithi: ukusuka kwi-microsites kunye neeblogi ukuya kwiiprojekthi ezinkulu zentlalo, nazo zisetyenziswe njengesiseko sezicelo zewebhu, ezibhalwe kwi-PHP kunye nokusetyenziswa kwedatha yobudlelwane njengokugcinwa kwedatha.

I-Drupal 9 ibandakanya zonke iimpawu eziveliswe kwinguqulo 8.9. Umahluko ophambili phakathi kwenguqulo ye-9 kunye nenguqulo yesi-8 kukuba iqonga liya kuqhubeka ukufumana uhlaziyo kunye nokulungiswa kokhuseleko emva kukaNovemba ka-2021. Inguqulelo yesi-9 ikwayenza lula inkqubo yohlaziyo, yenza inkqubo yophuculo ukusuka kwinguqulo yesi-8 ibe lula ngakumbi.

Iimfuno zeseva

Ukusebenzisa i-Drupal, kucetyiswa ukuba usebenzise i-RAM ye-2 GB kunye ne-2 CPU cores.

Iifayile eziphambili zeDrupal zithatha malunga ne-100 MB, ngaphezu koko uya kufuna indawo yokugcina imifanekiso, i-database, imixholo, iimodyuli ezongezelelweyo kunye ne-backups, eziza kuxhomekeka kubukhulu besayithi lakho.

I-Drupal 9 ifuna i-PHP 7.4 okanye ngaphezulu kunye nomda omncinci (memory_limitKwimemori ye-64 MB, ukuba iimodyuli ezongezelelweyo ziyasetyenziswa, kuyacetyiswa ukuba ufake i-128 MB.

I-Drupal inokusebenzisa i-Apache okanye i-Nginx njengomncedisi wewebhu, kunye ne-MySQL, i-PostgreSQL okanye i-SQLite njengendawo yogcino-lwazi.

Siza kufaka iDrupal sisebenzisa iNginx kunye neMySQL.

isicwangciso

Masihlaziye iipakethe ezifakiweyo kuhlobo lwamva nje:

sudo dnf update -y

Makhe songeze imvume esisigxina yetrafikhi engenayo kwi-http/80 kunye ne-https/443 kumazibuko:

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

Masisebenzise imithetho emitsha yomlilo:

sudo systemctl reload firewalld

Masifake iNginx:

sudo dnf install nginx -y

Masiqale kwaye sivule iseva yeNginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Ekubeni uvimba we-Centos ongundoqo okwangoku usebenzisa i-PHP 7.2, masidibanise indawo yokugcina ye-REMI kunye ne-PHP 7.4 (ubuncinane benguqulo ye-Drupal 9).
Ukwenza oku, yongeza indawo yokugcina ye-EPEL (efunwa yi-REMI):

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

Masidibanise indawo yokugcina ye-REMI:

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

Masivule imodyuli yephp:remi-7.4 ukufaka iphp 7.4:

sudo dnf module enable php:remi-7.4 -y

Faka iphp-fpm kunye nephp-cli:

sudo dnf install -y php-fpm php-cli

Masifake iimodyuli zePHP ezifunekayo ukuze iDrupal isebenze:

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

Siza kufaka iimodyuli ezicetyiswayo ze-PHP mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Masifake iseva ye-MySQL:

sudo dnf install mysql-server -y

Masivule kwaye siqale iseva ye-MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Ekubeni senza i-template ye-VDS, kwaye banokucotha, siya kongeza i-mysqld yokuqala ukulibaziseka kwemizuzwana engama-30, kungenjalo kunokubakho iingxaki ngomncedisi oqala ngexesha lokuqala kwenkqubo:

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

Masitshintshe iqela kunye nomsebenzisi apho nginx iya kuqhuba ngokwenza utshintsho kwi /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

Masitshintshe umnini woluhlu lweeseshini ze-PHP kwi-nginx ngokufanelekileyo:

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

Masisuse imigca enamagqabantshintshi avela kwifayile yoqwalaselo /etc/nginx/nginx.conf (ukuze kungabikho ziphembeleli kabini ze sed):

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

Yongeza useto locinezelo lwe-gzip ku/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

Masiyongeze useto lwefayile yesalathisi index.php ukuya /etc/nginx/nginx.conf:

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

Masiyongeze izicwangciso zeseva engagqibekanga: Ukulungiswa kwe-PHP nge-php-fpm socket, khubaza ilogi yeefayile ezimileyo, ukwandisa ixesha lokuphelelwa yisikhathi, khubaza ukufikelela kunye nephutha lokungena kwi-favicon.ico kunye ne-robots.txt, kwaye ukhanyele ukufikelela kwi-.ht iifayile zomntu wonke:

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

Faka i-wget efunekayo yokufaka i-certbot:

sudo dnf install wget -y

Khuphela ifayile ephunyeziweyo yecertbot kwindawo engaphandle:

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

Hambisa i-certbot ukuya /usr/local/bin/:

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

Kwaye masabele amalungelo njengomnini ukuba neengcambu:

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

Masifakele ukuxhomekeka kwecertbot kwaye kweli nqanaba siphazamise umsebenzi wayo (Iimpendulo: Y, c):

certbot-auto

Masikhuphele uvimba ngoguqulelo lwamva nje lweDrupal 9 kwindawo engaphandle:

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

Faka itar ukukhupha indawo yokugcina:

sudo dnf install tar -y

Masicime iifayile ezingagqibekanga kwi /usr/share/nginx/html/ directory:

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

Masikhuphe iifayile kulawulo lweseva yewebhu:

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

Masisuse iifayile ukusuka kulawulo olungaphantsi ukuya kulawulo lweengcambu zomncedisi wewebhu:

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

Masicime uvimba weefayili:

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

Masicime indawo yokugcina ngeefayile zokuhlohla:

rm -f ./tar.gz

Makhe sinikeze umnini wefayile ye nginx:

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

Kweli nqanaba siyakucima iseva kwaye sithathe umfanekiso omfutshane:

shutdown -h now

Emva kokusungula i-VDS kwi-snapshot, siya kwenza ukuseta kokuqala kweseva ye-MySQL ngokuqhuba iskripthi:

mysql_secure_installation

Masivule igama lokuqinisekisa igama eligqithisiweyo:

Would you like to setup VALIDATE PASSWORD component? : y

Masisete igama eligqithisiweyo lengcambu yomsebenzisi weMySQL:

New password:
Re-enter new password:

Masisuse abasebenzisi abangaziwayo:

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

Masithintele ingcambu ekudibaniseni ukude:

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

Masicime uvimba wovavanyo:

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

Masilayishe kwakhona iitafile zamalungelo:

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

Emva koku, ukugqiba ukufakela, sinokuya ku vps_ip_idilesi
Kule dilesi siza kubona iphepha lokufakela iDrupal.

Masikhethe ulwimi esiza kulusebenzisa. Umzekelo: isiRashiya. Cofa "Gcina kwaye uqhubeke"

Masikhethe iprofayile yokufakela (idemo isetyenziselwa ukuziqhelanisa nesixokelelwano). Kwimeko yethu, makube "umgangatho".

Kwiphepha elilandelayo siya kunika igama kwisiseko sedatha, umzekelo "drupal". Masibonise ingcambu yegama lomsebenzisi wesiseko kunye negama lokugqitha elinikwe yena xa eqhuba mysql_secure_installation. Cofa u-"Gcina kwaye uqhubeke."

Masilinde ukufakwa kunye nohlaziyo lweenguqulelo kugqitywe (inkqubo inokuthatha imizuzu emininzi).

Siza kubonisa igama lesayithi, setha i-imeyile yesayithi (egameni lazo izaziso zesayithi ziya kuthunyelwa), ukungena ngemvume, igama eliyimfihlo kunye ne-imeyile ye-akhawunti yomlawuli weDrupal. Kwakhona siya kuseka ilizwe kunye nommandla wexesha kwiisethingi zommandla. Kwaye ugqibezele ukufakela ngokucofa "Gcina kwaye Qhubeka".

Emva koku, ungaya kwiphaneli yolawulo kunye negama lokungena kunye negama lokugqitha leDrupal.

Ukumisela i-HTTPS (ukhetho)

Ukuqwalasela i-HTTPS, i-VDS kufuneka ibe negama elisebenzayo le-DNS, licacise

/etc/nginx/nginx.conf

kwicandelo leseva igama leseva (umzekelo):

server_name  domainname.ru;

Masiqale kwakhona nginx:

service nginx restart

Masiqalise i-certbot:

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

Faka i-imeyile yakho, uvumelane nemigaqo yenkonzo (A), Bhalisa kwi-newsletter (ukhetho) (N), khetha amagama wesizinda ofuna ukukhupha isatifikethi (Faka kuwo wonke umntu).

Ukuba yonke into ihambe ngaphandle kweempazamo, siya kubona umyalezo malunga nokukhutshwa ngempumelelo kwezatifikethi kunye noqwalaselo lweseva:

Congratulations! You have successfully enabled ...

Emva koku, ukudibanisa kwi-port 80 kuya kuhanjiswa kwi-443 (https).

Yongeza kwi/etc/crontab ukuhlaziya izatifikethi ngokuzenzekelayo:

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

Ukumisela ukhuseleko lomamkeli othembekileyo (kuyacetyiswa)

Esi sicwangciso senzelwe njengesisombululo kwingxaki ehambelana nokuzimisela kwe-base_url eguquguqukayo, kwaye yenzelwe ukuthintela ukuhlaselwa kweNtloko ye-HTTP HOST (xa indawo yakho icinga ukuba ngomnye umntu).

Ukwenza oku, kufuneka ucacise amagama e-domain athembekileyo kwisiza kwifayile yesethingi.

Kwifayile

/usr/share/nginx/html/sites/default/settings.php Masikhuphe inkcazo okanye songeze useto ngeepateni zamagama esayithi, umzekelo:

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

Kufakelwa i-PHP APCu (IYANCEBISWA)

I-Drupal ixhasa i-APCu - I-Alternative PHP User Cache, iinguqulelo ze-8 kunye ne-9 zisebenzisa kakhulu i-APCu njenge-cache yexesha elifutshane lendawo kuneenguqulelo zangaphambili. Ubungakanani be-cache engagqibekanga (32 MB) ifanelekile kwiindawo ezininzi, kwaye ayinakudlula i-512 MB.

Ukuvula, faka imodyuli ye-PHP APCu:

dnf -y install php-pecl-apcu

Qala kwakhona nginx kunye nephp-fpm:

service nginx restart
service php-fpm restart

Ukuba usebenzisa ulwimi lwesiRashiya kunye ne-APCu kunye nobungakanani bememori obucetyiswayo kwi-cache, unokubona isilumkiso kwiphaneli yokulawula ukuba ubungakanani bememori eyabelwe i-cache iyahluka kuleyo ecetyiswayo, kodwa eneneni yonke into isebenza ngokuchanekileyo. kwaye isilumkiso esingalunganga siya kulungiswa kuhlaziyo olulandelayo.

Okanye ukuba isilumkiso silimaza amehlo akho, ungasebenzisa isiqwenga esihambelanayo esivela ngaphandle kwendawo.

Sithanda ukukukhumbuza ukuba ungasenzela umfanekiso

Zintathu iindlela zokuthatha inxaxheba.

Lungisa umfanekiso ngokwakho kwaye ufumane i-ruble ye-3000 kwibhalansi yakho

Ukuba ulungele ukukhawuleza ngokukhawuleza edabini kwaye wenze umfanekiso olahlekileyo, siya kukutyala nge-ruble ye-3000 kwibhalansi yakho yangaphakathi, ongayichitha kwiiseva.

Uwenza njani owakho umfanekiso:

  1. Yenza iakhawunti kunye nathi indawo
  2. Yazisa inkxaso ukuba uya kudala kwaye uvavanye imifanekiso
  3. Siya kukutyala i-ruble ye-3000 kwaye sikwazi ukwenza i-snapshots
  4. Oda iseva yenyani enenkqubo yokusebenza ecocekileyo
  5. Faka isoftware kule VPS kwaye uyiqwalasele
  6. Bhala imiyalelo okanye iskripthi sokusasazwa kwesoftware
  7. Yenza umfanekiso okhawulezayo womncedisi oqwalaselweyo
  8. Odola iseva entsha enenyani ngokukhetha umfanekiso owenziwe ngaphambili kuluhlu oluhlayo lwe "Server template"
  9. Ukuba umncedisi wenziwa ngempumelelo, dlulisela izinto ezifunyenwe kwinqanaba lesi-6 kwinkxaso yobugcisa
  10. Ukuba kukho impazamo, unokujonga ngenkxaso yesizathu kwaye uphinde ukuseta

Kubanini bamashishini: nikezela ngesoftware yakho

Ukuba ungumphuhlisi wesoftware esetyenziswayo kwaye isetyenziswa kwiVPS, ke sinokukubandakanya kwindawo yentengiso. Le yindlela esinokukunceda ngayo ukuzisa abathengi abatsha, i-traffic kunye nokwazisa. Sibhalele

Sixelele kwi-comments ngowuphi umfanekiso owulahlekileyo?

Kwaye siya kuzilungiselela ngokwethu

Ukwenza iTemplate yeVPS ngeDrupal 9 kwiCentos 8

Ukwenza iTemplate yeVPS ngeDrupal 9 kwiCentos 8

umthombo: www.habr.com