Kuunda Kiolezo cha VPS kwa kutumia Drupal 9 kwenye Centos 8

Tunaendelea kupanua soko letu. Hivi majuzi tulikuambia jinsi alifanya picha ya Gitlab, na wiki hii Drupal alionekana kwenye soko letu.

Tunakuambia kwa nini tulimchagua na jinsi picha iliundwa.

Kuunda Kiolezo cha VPS kwa kutumia Drupal 9 kwenye Centos 8

Drupal - jukwaa linalofaa na lenye nguvu la kuunda aina yoyote ya tovuti: kutoka kwa tovuti ndogo na blogu hadi miradi mikubwa ya kijamii, inayotumika pia kama msingi wa programu za wavuti, iliyoandikwa katika PHP na kutumia hifadhidata za uhusiano kama hifadhi ya data.

Drupal 9 inajumuisha vipengele vyote vilivyoletwa katika toleo la 8.9. Tofauti kuu kati ya toleo la 9 na toleo la 8 ni kwamba mfumo utaendelea kupokea masasisho na marekebisho ya usalama baada ya Novemba 2021. Toleo la 9 pia hurahisisha mchakato wa kusasisha, na kufanya mchakato wa kusasisha kutoka toleo la 8 kuwa rahisi zaidi.

Mahitaji ya seva

Ili kutumia Drupal, inashauriwa kutumia 2 GB RAM na 2 CPU cores.

Faili kuu za Drupal huchukua takriban 100 MB, kwa kuongeza utahitaji nafasi ya kuhifadhi picha, hifadhidata, mandhari, moduli za ziada na chelezo, ambayo itategemea saizi ya tovuti yako.

Drupal 9 inahitaji PHP 7.4 au zaidi na kikomo cha chini (memory_limit) kwa kumbukumbu ya 64 MB; ikiwa moduli za ziada zinatumiwa, inashauriwa kusakinisha 128 MB.

Drupal inaweza kutumia Apache au Nginx kama seva ya wavuti, na MySQL, PostgreSQL au SQLite kama hifadhidata.

Tutakuwa tukisakinisha Drupal kwa kutumia Nginx na MySQL.

Ufungaji

Wacha tusasishe vifurushi vilivyosakinishwa hadi toleo jipya zaidi:

sudo dnf update -y

Wacha tuongeze ruhusa ya kudumu ya trafiki inayoingia kwenye bandari za http/80 na https/443:

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

Wacha tutumie sheria mpya za firewall:

sudo systemctl reload firewalld

Wacha tusakinishe Nginx:

sudo dnf install nginx -y

Wacha tuanze na kuwezesha seva ya Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Kwa kuwa hazina kuu ya Centos kwa sasa inatumia PHP 7.2, wacha tuongeze hazina ya REMI na PHP 7.4 (toleo la chini kabisa la Drupal 9).
Ili kufanya hivyo, ongeza hazina ya EPEL (inahitajika na hazina ya REMI):

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

Wacha tuongeze hazina ya REMI:

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

Wacha tuwashe moduli ya php:remi-7.4 kusakinisha php 7.4:

sudo dnf module enable php:remi-7.4 -y

Sakinisha php-fpm na php-cli:

sudo dnf install -y php-fpm php-cli

Wacha tusakinishe moduli za PHP zinazohitajika ili Drupal ifanye kazi:

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

Pia tutasakinisha moduli zinazopendekezwa za PHP mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Wacha tusakinishe seva ya MySQL:

sudo dnf install mysql-server -y

Wacha tuwashe na tuanze seva ya MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Kwa kuwa tunatengeneza kiolezo cha VDS, na zinaweza kuwa polepole, tutaongeza ucheleweshaji wa kuanza kwa mysqld wa sekunde 30, vinginevyo kunaweza kuwa na matatizo na seva kuanzia wakati wa kuwasha mfumo wa awali:

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

Wacha tubadilishe kikundi na mtumiaji ambaye nginx itaendesha kwa kufanya mabadiliko kwa /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

Wacha tubadilishe mmiliki wa saraka ya vikao vya PHP kuwa nginx ipasavyo:

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

Wacha tuondoe mistari iliyo na maoni kutoka kwa faili ya usanidi /etc/nginx/nginx.conf (ili hakuna vichocheo viwili vya sed):

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

Ongeza mipangilio ya mgandamizo wa gzip kwa /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

Wacha tuongeze mipangilio ya index.php ya faili kwa /etc/nginx/nginx.conf:

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

Hebu tuongeze mipangilio ya seva chaguo-msingi: kuchakata PHP kupitia tundu la php-fpm, zima logi kwa faili tuli, ongeza muda wa kuisha, zima logi ya ufikiaji na hitilafu ya favicon.ico na robots.txt, na kunyima ufikiaji wa .ht. faili kwa kila mtu:

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

Sakinisha wget inayohitajika kwa kusanikisha certbot:

sudo dnf install wget -y

Pakua faili inayoweza kutekelezwa ya certbot kutoka nje ya tovuti:

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

Hamisha certbot kwa /usr/local/bin/:

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

Na wacha tuwape haki kama mmiliki wa mizizi:

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

Wacha tusakinishe utegemezi wa certbot na kwa hatua hii tukatiza kazi yake (Majibu: Y, c):

certbot-auto

Wacha tupakue kumbukumbu na toleo la hivi karibuni la Drupal 9 kutoka nje ya tovuti:

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

Sakinisha tar ili kufungua kumbukumbu:

sudo dnf install tar -y

Wacha tufute faili chaguo-msingi kwenye saraka /usr/share/nginx/html/:

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

Wacha tufungue faili kwenye saraka ya seva ya wavuti:

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

Wacha tuhamishe faili kutoka kwa saraka ndogo hadi saraka ya mizizi ya seva ya wavuti:

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

Wacha tufute saraka ndogo:

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

Wacha tufute kumbukumbu na faili za usakinishaji:

rm -f ./tar.gz

Wacha tuwape mmiliki wa faili za nginx:

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

Katika hatua hii tutazima seva na kuchukua picha:

shutdown -h now

Baada ya kuzindua VDS kutoka kwa muhtasari, tutafanya usanidi wa awali wa seva ya MySQL kwa kuendesha hati:

mysql_secure_installation

Wacha tuwashe kithibitishaji cha nenosiri:

Would you like to setup VALIDATE PASSWORD component? : y

Wacha tuweke nenosiri la mtumiaji wa mizizi ya MySQL:

New password:
Re-enter new password:

Wacha tuondoe watumiaji wasiojulikana:

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

Wacha tuzuie mzizi kuunganishwa kwa mbali:

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

Wacha tufute hifadhidata ya majaribio:

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

Wacha tupakie tena meza za upendeleo:

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

Baada ya hayo, ili kukamilisha ufungaji, tunaweza kwenda vps_ip_anwani
Katika anwani hii tutaona ukurasa wa usakinishaji wa Drupal.

Hebu tuchague lugha ya kutumia. Kwa mfano: Kirusi. Bonyeza "Hifadhi na Endelea"

Wacha tuchague wasifu wa usakinishaji (onyesho hutumiwa tu kujitambulisha na mfumo). Kwa upande wetu, basi iwe "kiwango".

Kwenye ukurasa unaofuata tutatoa jina kwa hifadhidata, kwa mfano "drupal". Wacha tuonyeshe mzizi wa jina la mtumiaji wa hifadhidata na nenosiri alilopewa wakati wa kuendesha mysql_secure_installation. Bonyeza "Hifadhi na Endelea."

Hebu tusubiri usakinishaji na usasishaji wa tafsiri ukamilike (mchakato unaweza kuchukua dakika kadhaa).

Tutaonyesha jina la tovuti, kuweka barua pepe ya tovuti (kwa niaba ya ambayo arifa za tovuti zitatumwa), kuingia, nenosiri na barua pepe ya akaunti ya msimamizi wa Drupal. Pia tutaweka nchi na eneo la saa katika mipangilio ya kikanda. Na ukamilishe usakinishaji kwa kubofya "Hifadhi na Endelea".

Baada ya hayo, unaweza kwenda kwenye jopo la kudhibiti na kuingia kwa msimamizi wa Drupal na nenosiri.

Kuweka HTTPS (si lazima)

Ili kusanidi HTTPS, VDS lazima iwe na jina halali la DNS, bainisha

/etc/nginx/nginx.conf

katika sehemu ya seva jina la seva (kwa mfano):

server_name  domainname.ru;

Wacha tuanze tena nginx:

service nginx restart

Wacha tuzindue certbot:

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

Ingiza barua pepe yako, ukubali masharti ya huduma (A), Jiandikishe kwa jarida (hiari) (N), chagua majina ya kikoa ambayo unataka kutoa cheti (Ingiza kwa kila mtu).

Ikiwa kila kitu kilikwenda bila makosa, tutaona ujumbe kuhusu utoaji uliofanikiwa wa vyeti na usanidi wa seva:

Congratulations! You have successfully enabled ...

Baada ya hayo, viunganisho kwenye bandari 80 vitaelekezwa kwa 443 (https).

Ongeza kwa /etc/crontab kusasisha cheti kiotomatiki:

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

Kuweka Usalama wa Mwenyeji Anayeaminika (inapendekezwa)

Mpangilio huu unakusudiwa kuwa suluhu la tatizo linalohusishwa na ubainishaji thabiti wa base_url, na umeundwa ili kuzuia mashambulizi ya Vichwa vya HTTP HOST (wakati tovuti yako inapofikiri kuwa ni mtu mwingine).

Ili kufanya hivyo, unahitaji kutaja majina ya kikoa yanayoaminika kwa tovuti kwenye faili ya mipangilio.

Katika faili

/usr/share/nginx/html/sites/default/settings.php Hebu tuondoe maoni au tuongeze mpangilio wenye ruwaza za majina halisi ya tovuti, kwa mfano:

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

Inasakinisha PHP APCu (INApendekezwa)

Drupal inaauni APCu - Akiba Mbadala ya Mtumiaji wa PHP, matoleo ya 8 na 9 hutumia zaidi APCu kama akiba ya ndani ya muda mfupi kuliko matoleo ya awali. Ukubwa chaguo-msingi wa akiba (MB 32) unafaa kwa tovuti nyingi, na hauwezi kuzidi MB 512.

Ili kuwezesha, sakinisha moduli ya PHP APCu:

dnf -y install php-pecl-apcu

Anzisha tena nginx na php-fpm:

service nginx restart
service php-fpm restart

Ikiwa unatumia lugha ya Kirusi na APCu na ukubwa wa kumbukumbu uliopendekezwa kwa cache, unaweza kuona onyo kwenye jopo la kudhibiti kwamba ukubwa wa kumbukumbu iliyotengwa kwa cache ni tofauti na iliyopendekezwa, lakini kwa kweli kila kitu kinafanya kazi kwa usahihi, na kwa kweli kila kitu kinafanya kazi kwa usahihi. na onyo lisilo sahihi litasahihishwa katika masasisho yanayofuata.

Au ikiwa onyo linaumiza macho yako, unaweza kutumia kiraka sambamba kutoka nje ya tovuti.

Tungependa kukukumbusha kuwa unaweza pia kututengenezea picha

Kuna chaguzi tatu za jinsi ya kushiriki.

Jitayarisha picha mwenyewe na upate rubles 3000 kwa usawa wako

Ikiwa uko tayari kukimbilia mara moja kwenye vita na kuunda picha ambayo unakosa, tutakupa mikopo kwa rubles 3000 kwa usawa wako wa ndani, ambayo unaweza kutumia kwenye seva.

Jinsi ya kuunda picha yako mwenyewe:

  1. Fungua akaunti nasi Online
  2. Wajulishe usaidizi kuwa utaunda na kujaribu picha
  3. Tutakulipa rubles 3000 na kuwezesha uwezo wa kuunda snapshots
  4. Agiza seva pepe na mfumo safi wa kufanya kazi
  5. Sakinisha programu kwenye VPS hii na uisanidi
  6. Andika maagizo au hati ya kusambaza programu
  7. Unda muhtasari wa seva iliyosanidiwa
  8. Agiza seva mpya pepe kwa kuchagua muhtasari ulioundwa hapo awali katika orodha kunjuzi ya "Kiolezo cha Seva".
  9. Ikiwa seva imeundwa kwa ufanisi, uhamishe vifaa vilivyopokelewa katika hatua ya 6 kwa usaidizi wa kiufundi
  10. Ikiwa kuna hitilafu, unaweza kuangalia kwa usaidizi kwa sababu na kurudia usanidi

Kwa wamiliki wa biashara: toa programu yako

Ikiwa wewe ni msanidi programu ambayo imetumwa na kutumika kwenye VPS, basi tunaweza kukujumuisha sokoni. Hivi ndivyo tunavyoweza kukusaidia kuleta wateja wapya, trafiki na ufahamu. Tuandikie

Tuambie kwenye maoni ni picha gani unakosa?

Na tutaitayarisha wenyewe

Kuunda Kiolezo cha VPS kwa kutumia Drupal 9 kwenye Centos 8

Kuunda Kiolezo cha VPS kwa kutumia Drupal 9 kwenye Centos 8

Chanzo: mapenzi.com