Ƙirƙirar Samfurin VPS tare da Drupal 9 akan Centos 8

Muna ci gaba da fadada kasuwanninmu. Kwanan nan mun gaya muku yadda ya yi hoton Gitlab, kuma wannan makon Drupal ya bayyana a kasuwanninmu.

Mun gaya muku dalilin da ya sa muka zaɓe shi da kuma yadda aka halicci hoton.

Ƙirƙirar Samfurin VPS tare da Drupal 9 akan Centos 8

Drupal - dandamali mai dacewa kuma mai ƙarfi don ƙirƙirar kowane nau'in gidan yanar gizo: daga microsites da blogs zuwa manyan ayyukan zamantakewa, kuma ana amfani da su azaman tushen aikace-aikacen yanar gizo, an rubuta su cikin PHP da kuma amfani da bayanan bayanan alaƙa azaman ajiyar bayanai.

Drupal 9 ya haɗa da duk abubuwan da aka gabatar a cikin sigar 8.9. Babban bambanci tsakanin sigar 9 da sigar 8 shine cewa dandamali zai ci gaba da karɓar sabuntawa da gyare-gyaren tsaro bayan Nuwamba 2021. Shafin 9 kuma yana sauƙaƙa tsarin sabuntawa, yana sa tsarin haɓakawa daga sigar 8 ya fi sauƙi.

Bukatun uwar garken

Don amfani da Drupal, ana ba da shawarar amfani da 2 GB RAM da 2 CPU cores.

Babban fayilolin Drupal suna ɗaukar kusan 100 MB, ƙari kuma za ku buƙaci sarari don adana hotuna, bayanai, jigogi, ƙarin kayayyaki da madogara, wanda zai dogara da girman rukunin yanar gizon ku.

Drupal 9 yana buƙatar PHP 7.4 ko mafi girma tare da ƙaramin iyakance (memory_limit) don ƙwaƙwalwar ajiyar 64 MB, idan an yi amfani da ƙarin kayayyaki, ana ba da shawarar shigar da 128 MB.

Drupal na iya amfani da Apache ko Nginx azaman sabar yanar gizo, da MySQL, PostgreSQL ko SQLite azaman bayanai.

Za mu shigar da Drupal ta amfani da Nginx da MySQL.

saitin

Bari mu sabunta fakitin da aka shigar zuwa sabon sigar:

sudo dnf update -y

Bari mu ƙara izini na dindindin don zirga-zirga masu shigowa zuwa tashar jiragen ruwa na http/80 da https/443:

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

Bari mu yi amfani da sabbin dokokin Tacewar zaɓi:

sudo systemctl reload firewalld

Bari mu shigar Nginx:

sudo dnf install nginx -y

Bari mu fara kuma mu kunna uwar garken Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Tunda babban ma'ajiyar Centos a halin yanzu yana amfani da PHP 7.2, bari mu ƙara ma'ajiyar REMI tare da PHP 7.4 (mafi ƙarancin sigar Drupal 9).
Don yin wannan, ƙara ma'ajiyar EPEL (wanda ake buƙata ta wurin ajiyar REMI):

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

Bari mu ƙara ma'ajiyar REMI:

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

Bari mu kunna php: remi-7.4 module don shigar da php 7.4:

sudo dnf module enable php:remi-7.4 -y

Shigar php-fpm da php-cli:

sudo dnf install -y php-fpm php-cli

Bari mu shigar da samfuran PHP da ake buƙata don Drupal yayi aiki:

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

Za mu kuma shigar da shawarar PHP mbstring opcache modules:

sudo dnf install -y php-mbstring php-opcache

Bari mu shigar da uwar garken MySQL:

sudo dnf install mysql-server -y

Bari mu kunna kuma fara uwar garken MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Tun da muna yin samfuri don VDS, kuma suna iya zama a hankali, za mu ƙara jinkirin farawa mysqld na 30 seconds, in ba haka ba za a iya samun matsaloli tare da uwar garken farawa a lokacin farkon tsarin boot:

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

Bari mu canza rukuni da mai amfani wanda nginx zai gudana ta hanyar yin canje-canje zuwa /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

Bari mu canza ma'abucin littafin jagorar zaman PHP zuwa nginx daidai da haka:

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

Bari mu cire layin tare da sharhi daga fayil ɗin sanyi /etc/nginx/nginx.conf (domin kada a sami abubuwa biyu don sed):

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

Ƙara saitunan matsawa gzip zuwa /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

Bari mu ƙara saitunan fayil ɗin index.php zuwa /etc/nginx/nginx.conf:

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

Bari mu ƙara saituna don uwar garken tsoho: sarrafa PHP ta hanyar soket na php-fpm, musaki log ɗin fayilolin tsaye, ƙara lokacin ƙarewa, musaki hanyar shiga da kuskuren favicon.ico da robots.txt, da hana samun dama ga .ht. fayiloli ga kowa da kowa:

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

Shigar wget da ake buƙata don shigar da certbot:

sudo dnf install wget -y

Zazzage fayil ɗin certbot mai aiwatarwa daga waje:

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

Matsar da certbot zuwa /usr/local/bin/:

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

Kuma bari mu sanya haƙƙoƙin a matsayin mai shi don tushen:

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

Bari mu shigar da abin dogaro na certbot kuma a wannan matakin ya katse aikinsa (Amsoshi: Y, c):

certbot-auto

Bari mu zazzage ma'ajin tare da sabon sigar Drupal 9 daga waje:

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

Sanya tar don cire kayan tarihin:

sudo dnf install tar -y

Bari mu share tsoffin fayiloli a cikin /usr/share/nginx/html/ directory:

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

Bari mu kwashe fayilolin cikin kundin adireshin sabar yanar gizo:

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

Bari mu matsar da fayilolin daga babban kundin adireshi zuwa tushen adireshin sabar gidan yanar gizo:

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

Mu share babban kundin adireshi:

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

Bari mu share rumbun adana bayanai tare da fayilolin shigarwa:

rm -f ./tar.gz

Bari mu sanya mai shi fayilolin nginx:

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

A wannan mataki za mu kashe uwar garken kuma mu ɗauki hoto:

shutdown -h now

Bayan ƙaddamar da VDS daga hoto, za mu yi saitin farko na uwar garken MySQL ta hanyar gudanar da rubutun:

mysql_secure_installation

Bari mu kunna mai inganci kalmar sirri:

Would you like to setup VALIDATE PASSWORD component? : y

Bari mu saita kalmar sirri don mai amfani da MySQL:

New password:
Re-enter new password:

Mu cire masu amfani da ba a san su ba:

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

Mu hana tushen haɗin kai nesa:

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

Mu share bayanan gwajin:

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

Mu sake loda teburin gata:

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

Bayan wannan, don kammala shigarwa, za mu iya zuwa vps_ip_adireshi
A wannan adireshin za mu ga shafin shigarwa na Drupal.

Bari mu zaɓi yaren da za mu yi amfani da shi. Misali: Rashanci. Danna "Ajiye kuma Ci gaba"

Bari mu zaɓi bayanin martaba na shigarwa (ana amfani da demo don sanin kanku da tsarin kawai). A cikin yanayinmu, bari ya zama "misali".

A shafi na gaba za mu ba da suna ga ma'ajiyar bayanai, misali "drupal". Bari mu nuna tushen sunan mai amfani da bayanai da kuma kalmar sirri da aka ba shi lokacin gudanar da mysql_secure_installation. Danna "Ajiye kuma Ci gaba."

Bari mu jira shigarwa da sabunta fassarori don kammala (tsarin na iya ɗaukar mintuna da yawa).

Za mu nuna sunan rukunin yanar gizon, saita imel ɗin rukunin yanar gizon (a madadin waɗanne sanarwar rukunin za a aika), shiga, kalmar sirri da imel na asusun gudanarwa na Drupal. Za mu kuma saita ƙasar da yankin lokaci a cikin saitunan yanki. Kuma kammala shigarwa ta danna "Ajiye kuma Ci gaba".

Bayan haka, zaku iya zuwa sashin sarrafawa tare da shigar da mai gudanarwa Drupal da kalmar wucewa.

Saita HTTPS (na zaɓi)

Don saita HTTPS, VDS dole ne ya sami ingantaccen sunan DNS, saka a ciki

/etc/nginx/nginx.conf

a cikin sashin uwar garken sunan uwar garken (misali):

server_name  domainname.ru;

Bari mu sake kunna nginx:

service nginx restart

Bari mu ƙaddamar da certbot:

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

Shigar da imel ɗin ku, yarda da sharuɗɗan sabis (A), Ku yi rajista ga wasiƙar labarai (na zaɓi) (N), zaɓi sunayen yankin da kuke son bayar da takaddun shaida (Shigar da kowa da kowa).

Idan komai ya tafi ba tare da kurakurai ba, za mu ga saƙo game da nasarar samar da takaddun shaida da daidaitawar uwar garken:

Congratulations! You have successfully enabled ...

Bayan haka, za a juya haɗin kai zuwa tashar jiragen ruwa 80 zuwa 443 (https).

Ƙara zuwa / sauransu/crontab don sabunta takaddun shaida ta atomatik:

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

Kafa Amintaccen Mai watsa shiri Tsaro (an bada shawarar)

An yi niyya wannan saitin azaman mafita ga matsalar da ke da alaƙa da ƙayyadaddun ƙayyadaddun tushe_url, kuma an ƙirƙira shi ne don hana kai hari HTTP HOST (lokacin da rukunin yanar gizon ku ke tunanin cewa wani ne).

Don yin wannan, kuna buƙatar saka amintattun sunayen yanki don rukunin yanar gizon a cikin fayil ɗin saiti.

A cikin fayil

/usr/share/nginx/html/sites/default/settings.php Bari mu ba da amsa ko ƙara saiti tare da ƙirar ainihin sunayen rukunin yanar gizo, misali:

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

Shigar da PHP APCu (SHAWARA)

Drupal yana goyan bayan APCu - madadin Mai amfani da PHP, nau'ikan 8 da 9 suna yin amfani da APCu a matsayin ma'ajiyar ɗan gajeren lokaci fiye da nau'ikan da suka gabata. Girman cache tsoho (32 MB) ya dace da yawancin shafuka, kuma ba zai iya wuce 512 MB ba.

Don kunnawa, shigar da tsarin PHP APCu:

dnf -y install php-pecl-apcu

Sake kunna nginx da php-fpm:

service nginx restart
service php-fpm restart

Idan kun yi amfani da yaren Rashanci da APCu tare da ƙimar ƙwaƙwalwar ajiyar da aka ba da shawarar don cache, zaku iya ganin gargadi a cikin kwamiti mai kulawa cewa girman ƙwaƙwalwar da aka keɓe don cache ya bambanta da wanda aka ba da shawarar, amma a zahiri komai yana aiki daidai. kuma gargadin da ba daidai ba za a iya gyara shi a cikin sabuntawa na gaba.

Ko kuma idan gargadin ya cutar da idanunku, kuna iya amfani da su daidai faci daga offsite.

Muna so mu tunatar da ku cewa kuna iya yin mana hoto

Akwai zaɓuɓɓuka uku don yadda ake shiga.

Shirya hoton da kanka kuma samun 3000 rubles zuwa ma'auni

Idan kun kasance a shirye ku gaggauta shiga cikin yaƙi da ƙirƙirar hoton da kuka ɓace, za mu ba ku da 3000 rubles zuwa ma'aunin ku na ciki, wanda zaku iya kashewa akan sabobin.

Yadda ake ƙirƙirar hoton ku:

  1. Ƙirƙiri asusu tare da mu akan shafin
  2. Bari tallafi ya san cewa za ku ƙirƙira da gwada hotuna
  3. Za mu bashi 3000 rubles kuma za mu ba da damar ikon ƙirƙirar hotuna
  4. Yi oda uwar garken kama-da-wane tare da tsaftataccen tsarin aiki
  5. Shigar da software akan wannan VPS kuma saita shi
  6. Rubuta umarni ko rubutun don tura software
  7. Ƙirƙiri hoto don saita uwar garken
  8. Yi oda sabon uwar garken kama-da-wane ta hanyar zabar hoton da aka ƙirƙira a baya a cikin jerin zaɓuka na “Server template
  9. Idan an yi nasarar ƙirƙirar uwar garke, canja wurin kayan da aka karɓa a mataki na 6 zuwa goyan bayan fasaha
  10. Idan akwai kuskure, zaku iya bincika tare da goyan bayan dalili kuma ku maimaita saitin

Don masu kasuwanci: ba da software na ku

Idan kun kasance mai haɓaka software wanda aka tura kuma ana amfani dashi akan VPS, to zamu iya haɗa ku cikin kasuwa. Wannan shine yadda zamu iya taimaka muku kawo sabbin abokan ciniki, zirga-zirga da wayar da kan jama'a. Rubuta mana

Faɗa mana a cikin sharhin wane hoto kuke ɓace?

Kuma za mu shirya shi da kanmu

Ƙirƙirar Samfurin VPS tare da Drupal 9 akan Centos 8

Ƙirƙirar Samfurin VPS tare da Drupal 9 akan Centos 8

source: www.habr.com