Ukudala Isifanekiso se-VPS nge-Drupal 9 ku-Centos 8

Siyaqhubeka nokwandisa indawo yethu yemakethe. Sisanda kukhuluma ngokuthi kanjani wenze isithombe se-Gitlab, futhi kuleli sonto i-Drupal ivele endaweni yethu yemakethe.

Sisho ukuthi kungani siyikhethile nokuthi isithombe sakhiwe kanjani.

Ukudala Isifanekiso se-VPS nge-Drupal 9 ku-Centos 8

Drupal iyinkundla elula nenamandla yokwakha noma yiluphi uhlobo lwamasayithi: kusukela kuma-microsites namabhulogi kuya kumaphrojekthi amakhulu omphakathi, nawo asetshenziswa njengesisekelo sezinhlelo zokusebenza zewebhu, ezibhalwe nge-PHP futhi zisebenzisa imininingwane yolwazi njengokugcinwa kwedatha.

I-Drupal 9 ihlanganisa zonke izici ezethulwe kunguqulo 8.9. Umehluko oyinhloko phakathi kwenguqulo 9 nenguqulo 8 ukuthi inkundla izoqhubeka nokuthola izibuyekezo nokulungiswa kokuvikela ngemva kukaNovemba 2021. Futhi enguqulweni yesi-9, inqubo yokuthuthukisa yenziwe lula, okwenza inqubo yokuthuthukisa isuka kunguqulo 8 ibe lula nakakhulu.

Izidingo Zeseva

Ukuze usebenzise i-Drupal, kuyanconywa ukuthi usebenzise u-2 GB we-RAM nama-cores angu-2 CPU.

Amafayela e-Drupal ayinhloko angaba ngu-100 MB, ngaphezu kwalokho uzodinga indawo yokugcina izithombe, i-database, izingqikithi, izengezo kanye nezipele, okuzoxhomeka kusayizi wesayithi lakho.

I-Drupal 9 idinga i-PHP 7.4 noma ngaphezulu enomkhawulo omncane (memory_limit) kumemori engu-64 MB, uma usebenzisa amamojula engeziwe, kunconywa ukuthi ufake i-128 MB.

I-Drupal ingasebenzisa i-Apache noma i-Nginx njengeseva yewebhu, kanye ne-MySQL, i-PostgreSQL noma i-SQLite njengesizindalwazi.

Sizofaka i-Drupal sisebenzisa i-Nginx ne-MySQL.

setting

Buyekeza amaphakheji afakiwe abe yinguqulo yakamuva:

sudo dnf update -y

Ake sengeze imvume engunaphakade yethrafikhi engenayo ku-http/80 kanye nezimbobo ze-https/443:

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

Sebenzisa imithetho emisha ye-firewall:

sudo systemctl reload firewalld

Faka i-Nginx:

sudo dnf install nginx -y

Ake siqale futhi sinike amandla iseva ye-Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Njengoba i-PHP 7.2 okwamanje isetshenziswa endaweni yokugcina ye-Centos, ake sengeze inqolobane ye-REMI nge-PHP 7.4 (inguqulo encane ye-Drupal 9).
Ukwenza lokhu, engeza inqolobane ye-EPEL (edingwa inqolobane ye-REMI):

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

Masingeze inqolobane ye-REMI:

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

Nika amandla imojula ye-php:remi-7.4 ukuze ufake i-php 7.4:

sudo dnf module enable php:remi-7.4 -y

Faka i-php-fpm ne-php-cli:

sudo dnf install -y php-fpm php-cli

Faka amamojula we-PHP adingekayo ukuze i-Drupal 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

Sizofaka futhi amamojula we-PHP anconyiwe we-mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Faka iseva ye-MySQL:

sudo dnf install mysql-server -y

Nika amandla futhi uqale iseva ye-MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Njengoba senza isifanekiso se-VDS, futhi zingahamba kancane, sizongeza ukulibaziseka kokuqala kwe-mysqld kwamasekhondi angu-30, ngaphandle kwalokho kungase kube nezinkinga ukuqalisa iseva ngesikhathi sokuqala kwesistimu:

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

Ake siguqule iqembu nomsebenzisi lapho i-nginx izosebenza khona ngokwenza izinguquko ku-/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

Shintsha umnikazi wenkomba yeseshini ye-PHP ukuze nginx ngokufanele:

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

Masisuse imigqa yokubeka amazwana kufayela lokumisa elithi /etc/nginx/nginx.conf (ukuze kungabikho ukushaya okuphindwe kabili kwe-sed):

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

Engeza izilungiselelo zokucindezelwa kwe-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

Ake sengeze izilungiselelo zefayela lenkomba elithi index.php ku-/etc/nginx/nginx.conf:

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

Ake sengeze izilungiselelo zeseva ezenzakalelayo yokucubungula i-php ngokusebenzisa isokhethi ye-php-fpm, vimbela ilogi kumafayela amile, sandise isikhathi sokuphelelwa yisikhathi, vimbela ukungena nephutha lokungena kwe-favicon.ico kanye ne-robots.txt futhi sinqabe ukufinyelela kumafayela we-.ht wonke umuntu:

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 edingekayo ukuze ufake i-certbot:

sudo dnf install wget -y

Landa ifayela elisebenzisekayo le-certbot kusuka ngaphandle kwesizinda:

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

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

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

Futhi unikeze amalungelo nobunikazi ukuze baqedele:

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

Faka ukuncika kwe-certbot bese uyimisa kulesi sigaba (Izimpendulo: Y, c):

certbot-auto

Landa ingobo yomlando ngenguqulo yakamuva ye-Drupal 9 kusuka ngaphandle kwesizinda:

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

Faka i-tar ukuze ukhiphe ingobo yomlando:

sudo dnf install tar -y

Susa amafayela azenzakalelayo kusiqondisi /usr/share/nginx/html/:

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

Vula unzip amafayela kusiqondisi seseva yewebhu:

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

Hambisa amafayela kusuka ohlwini lwemibhalo oluncane uwayise kumkhombandlela wesiphakeli sewebhu:

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

Susa uhla lwemibhalo olungaphansi:

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

Susa ingobo yomlando ngamafayela okufaka:

rm -f ./tar.gz

Setha umnikazi wamafayela e-nginx:

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

Kulesi sigaba, sizovala iseva futhi sithathe isifinyezo:

shutdown -h now

Ngemuva kokuqala i-VDS kusuka kusifinyezo, sizokwenza ukusetha kokuqala kweseva ye-MySQL ngokusebenzisa iskripthi:

mysql_secure_installation

Nika amandla isiqinisekisi sephasiwedi:

Would you like to setup VALIDATE PASSWORD component? : y

Setha iphasiwedi yomsebenzisi wempande ye-MySQL:

New password:
Re-enter new password:

Susa abasebenzisi abangaziwa:

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

Masivimbele impande ekuxhumekeni ukude:

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

Masisuse isizindalwazi sokuhlola:

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

Layisha kabusha amathebula elungelo:

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

Ngemva kwalokho, ukuqedela ukufakwa, singaya ku vps_ip_address
Kuleli kheli sizobona ikhasi elinokufakwa kwe-Drupal.

Khetha ulimi oluzosetshenziswa. Isibonelo: isiRashiya. Chofoza okuthi "Londoloza futhi Uqhubeke"

Masikhethe iphrofayili yokufaka (idemo isetshenziselwa ukujwayelana nohlelo kuphela). Esimweni sethu, makube "okujwayelekile".

Ekhasini elilandelayo, nikeza isizindalwazi igama, njengokuthi "drupal". Cacisa impande yegama lomsebenzisi lesizindalwazi kanye nephasiwedi ayinikwe lapho eqala i-mysql_secure_installation. Chofoza okuthi "Londoloza futhi Uqhubeke".

Ake silinde ukufakwa nokubuyekezwa kokuhumusha ukuthi kuqedwe (inqubo ingase ithathe imizuzu embalwa).

Cacisa igama lesayithi, setha i-imeyili yesayithi (egameni lazo kuzofika izaziso zesayithi), ukungena ngemvume, iphasiwedi kanye ne-imeyili ye-akhawunti yomqondisi we-Drupal. Futhi sizosetha izwe nendawo yesikhathi kuzilungiselelo zesifunda. Bese uqedela ukufaka ngokuchofoza "Londoloza futhi Qhubeka".

Ngemuva kwalokho, ungaya kuphaneli yokulawula ngokungena ngemvume komlawuli we-Drupal nephasiwedi.

Ukulungiselelwa kwe-HTTPS (kuyakhetheka)

Ukuze ulungiselele i-HTTPS, i-VDS kufanele ibe negama le-DNS elivumelekile, licacise

/etc/nginx/nginx.conf

esigabeni seseva igama leseva (isibonelo):

server_name  domainname.ru;

Qala kabusha i-nginx:

service nginx restart

Ake siqale i-certbot:

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

Faka i-imeyili yakho, vumelana nemigomo yesevisi (A), Bhalisela i-newsletter (uyazikhethela) (N), khetha amagama wesizinda ofuna ukukhipha isitifiketi (Faka kubo bonke).

Uma konke kuhambe ngaphandle kwamaphutha, sizobona umlayezo mayelana nokukhishwa okuyimpumelelo kwezitifiketi nokusetha iseva:

Congratulations! You have successfully enabled ...

Ngemuva kwalokho, ukuxhumana ku-port 80 kuzoqondiswa kabusha ku-443 (https).

Engeza ku-/etc/crontab ukuze uvuselele ngokuzenzakalelayo izitifiketi:

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

Ukusetha Ukuphepha Kosokhaya Othenjwayo (kunconyiwe)

Lesi silungiselelo sihloselwe njengesixazululo senkinga yokutholwa kwe-base_url eguquguqukayo, futhi kuhloswe ngaso ukuvimbela ukuhlaselwa kweHeader ye-HTTP HOST (uma isayithi lakho licabanga ukuthi ngomunye umuntu).

Ukuze wenze lokhu, udinga ukucacisa amagama wesizinda othembekile wesayithi kufayela lezilungiselelo.

Kufayela

/usr/share/nginx/html/sites/default/settings.php khulula noma wengeze ukulungiselelwa okunamaphethini wamagama esayithi angempela, isibonelo:

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

Ukufaka i-PHP APCu (KUNCONYWA)

I-Drupal isekela i-APCu - Enye Inqolobane Yomsebenzisi we-PHP, izinguqulo 8 no-9 zisebenzisa i-APCu ngokujulile njengenqolobane yendawo yesikhashana kunezinguqulo zangaphambilini. Usayizi wenqolobane ozenzakalelayo (32 MB) uzofanela amasayithi amaningi, futhi awukwazi ukweqa u-512 MB.

Ukuze wenze kusebenze, faka imojuli ye-PHP APCu:

dnf -y install php-pecl-apcu

Qala kabusha i-nginx futhi php-fpm:

service nginx restart
service php-fpm restart

Endabeni yokusebenzisa ulimi lwesiRashiya kanye ne-APCu enosayizi wenkumbulo yenqolobane enconyiwe, ungabona isexwayiso kuphaneli yokulawula ukuthi usayizi wememori yenqolobane eyabiwe ihlukile kuleyo enconyiwe, kodwa empeleni yonke into isebenza kahle, futhi okungalungile. isexwayiso cishe sizolungiswa ezibuyekezweni ezilandelayo.

Noma uma isixwayiso silimaza iso, ungasebenzisa isiqeshana esihambelanayo esivela ngaphandle.

Sifuna ukukukhumbuza ukuthi ungakwazi futhi ukusenzela isithombe

Kunezinketho ezintathu zendlela yokubamba iqhaza.

Lungiselela isithombe ngokwakho futhi uthole ruble 3000 kubhalansi yakho

Uma usulungele ukugijimela empini ngokushesha futhi udale isithombe sokuthi awunakho, sizokukweleta ngama-ruble angu-3000 kubhalansi yakho yangaphakathi - ungayisebenzisa kumaseva.

Usenza kanjani isithombe sakho:

  1. Dala i-akhawunti nathi isayithi
  2. Tshela abasekeli ukuthi uzodala futhi uhlole izithombe
  3. Sizokweleta ama-ruble angu-3000 futhi sinikeze amandla okudala izifinyezo
  4. Oda iseva ebonakalayo enesistimu yokusebenza ehlanzekile
  5. Faka isofthiwe kule VPS bese uyimisa
  6. Bhala imiyalelo noma iskripthi sokuphakelwa kwesofthiwe
  7. Dala isifinyezo seseva emisiwe
  8. Oda iseva entsha ye-virtual ngokukhetha isifinyezo esidalwe ngaphambilini ohlwini oluya phansi "lwesifanekiso seseva".
  9. Esimeni sokudalwa ngempumelelo kweseva, dlulisela izinto ezitholwe esinyathelweni sesi-6 ekusekelweni kobuchwepheshe
  10. Esimeni sephutha, ungabheka ngokusekela isizathu bese uphinda ukusetha

Kubanikazi bamabhizinisi: nikeza isofthiwe yakho

Uma ungunjiniyela wesoftware esetshenziswayo futhi esetshenziswa ku-VPS, singakufaka esimakethe. Lena yindlela esingakusiza ngayo ukuthi ulethe amakhasimende amasha, ithrafikhi nokubonakala. Sibhalele

Sazise kuma comments ukuthi yisiphi isithombe osikhumbulayo?

Futhi sizozilungiselela ngokwethu

Ukudala Isifanekiso se-VPS nge-Drupal 9 ku-Centos 8

Ukudala Isifanekiso se-VPS nge-Drupal 9 ku-Centos 8

Source: www.habr.com