Ħolqien ta 'Mudell VPS b'Drupal 9 fuq Centos 8

Aħna nkomplu nespandu s-suq tagħna. Dan l-aħħar tkellimna dwar kif għamel immaġni Gitlab, u din il-ġimgħa Drupal deher fis-suq tagħna.

Ngħidu għaliex għażilna u kif inħolqot l-immaġni.

Ħolqien ta 'Mudell VPS b'Drupal 9 fuq Centos 8

Drupal hija pjattaforma konvenjenti u b'saħħitha għall-ħolqien ta 'kwalunkwe tip ta' siti: minn mikrositi u blogs għal proġetti soċjali kbar, li tintuża wkoll bħala l-bażi għal applikazzjonijiet tal-web, miktuba f'PHP u li tuża databases relazzjonali bħala ħażna ta 'dejta.

Drupal 9 jinkludi l-karatteristiċi kollha introdotti fil-verżjoni 8.9. Id-differenza ewlenija bejn il-verżjoni 9 u l-verżjoni 8 hija li l-pjattaforma se tkompli tirċievi aġġornamenti u soluzzjoni tas-sigurtà wara Novembru 2021. Ukoll fil-verżjoni 9, il-proċess ta 'aġġornament ġie ssimplifikat, u jagħmel il-proċess ta' aġġornament mill-verżjoni 8 saħansitra aktar faċli.

Rekwiżiti tas-Server

Biex tuża Drupal, huwa rakkomandat li tuża 2 GB ta 'RAM u 2 CPU cores.

Il-fajls Drupal ewlenin huma madwar 100 MB, barra minn hekk ser ikollok bżonn spazju biex taħżen immaġini, database, temi, add-ons u backups, li se jiddependi fuq id-daqs tas-sit tiegħek.

Drupal 9 jeħtieġ PHP 7.4 jew ogħla b'limitu minimu (memory_limit) għal 64 MB memorja, fil-każ li tuża moduli addizzjonali, huwa rakkomandat li tinstalla 128 MB.

Drupal jista' juża Apache jew Nginx bħala web server, u MySQL, PostgreSQL jew SQLite bħala database.

Aħna se ninstallaw Drupal billi tuża Nginx u MySQL.

Installazzjoni

Aġġorna l-pakketti installati għall-aħħar verżjoni:

sudo dnf update -y

Ejja nżidu permess permanenti għat-traffiku li jkun dieħel għall-portijiet http/80 u https/443:

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

Applika r-regoli l-ġodda tal-firewall:

sudo systemctl reload firewalld

Installa Nginx:

sudo dnf install nginx -y

Ejja nibdew u nippermettu s-server Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Peress li PHP 7.2 bħalissa jintuża fir-repożitorju ewlieni ta 'Centos, ejja nżidu r-repożitorju REMI ma' PHP 7.4 (il-verżjoni minima għal Drupal 9).
Biex tagħmel dan, żid ir-repożitorju EPEL (meħtieġa mir-repożitorju REMI):

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

Ejja nżidu r-repożitorju REMI:

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

Ippermetti l-php:remi-7.4 modulu biex tinstalla php 7.4:

sudo dnf module enable php:remi-7.4 -y

Installa php-fpm u php-cli:

sudo dnf install -y php-fpm php-cli

Installa l-moduli PHP meħtieġa biex Drupal jaħdem:

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

Se ninstallaw ukoll il-moduli PHP rakkomandati mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Installa MySQL server:

sudo dnf install mysql-server -y

Ippermetti u ibda s-server MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Peress li qed nagħmlu mudell għal VDS, u jistgħu jkunu bil-mod, se nżidu dewmien tal-bidu tal-mysqld ta '30 sekonda, inkella jista' jkun hemm problemi biex tibda s-server waqt il-bidu tas-sistema:

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

Ejja nbiddlu l-grupp u l-utent li taħthom se jaħdem nginx billi nagħmlu bidliet għal /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

Ibdel is-sid tad-direttorju tas-sessjoni PHP għal nginx kif xieraq:

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

Ejja neħħi l-linji tal-kumment mill-fajl tal-konfigurazzjoni /etc/nginx/nginx.conf (sabiex ma jkunx hemm hits doppji għal sed):

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

Żid is-settings tal-kompressjoni gzip f'/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

Ejja nżidu s-settings tal-fajl tal-indiċi index.php għal /etc/nginx/nginx.conf:

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

Ejja nżidu s-settings għas-server default li jipproċessa php permezz tas-socket php-fpm, tiddiżattiva l-ġurnal għal fajls statiċi, inżidu l-ħin tal-iskadenza, tiddiżattiva l-aċċess u l-log tal-iżbalji għal favicon.ico u robots.txt u tiċħad l-aċċess għal fajls .ht għal kulħadd:

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

Installa wget meħtieġ biex tinstalla certbot:

sudo dnf install wget -y

Niżżel il-fajl eżekutibbli certbot minn barra mis-sit:

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

Mexxi certbot għal /usr/local/bin/:

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

U jassenja drittijiet u sjieda lill-għeruq:

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

Installa d-dipendenzi ta' certbot u waqqafha f'dan l-istadju (Tweġibiet: Y, c):

certbot-auto

Niżżel l-arkivju bl-aħħar verżjoni ta’ Drupal 9 minn barra mis-sit:

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

Installa qatran biex tħoll l-arkivju:

sudo dnf install tar -y

Ħassar il-fajls default fid-direttorju /usr/share/nginx/html/:

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

Unzip il-fajls fid-direttorju tal-web server:

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

Mexxi l-fajls mis-subdirettorju għad-direttorju tal-għeruq tas-server tal-web:

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

Ħassar is-sottodirettorju:

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

Ħassar l-arkivju bil-fajls tal-installazzjoni:

rm -f ./tar.gz

Issettja s-sid tal-fajls nginx:

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

F'dan l-istadju, aħna se itfi s-server u nieħdu stampa:

shutdown -h now

Wara li nibdew il-VDS mill-istampa, aħna se nwettqu s-setup inizjali tas-server MySQL billi nħaddmu l-iskrittura:

mysql_secure_installation

Ippermetti l-validatur tal-password:

Would you like to setup VALIDATE PASSWORD component? : y

Issettja l-password tal-utent għerq MySQL:

New password:
Re-enter new password:

Neħħi utenti anonimi:

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

Ejja nevitaw l-għeruq milli jgħaqqdu mill-bogħod:

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

Ejja neħħi d-database tat-test:

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

Erġa' tagħbija t-tabelli tal-privileġġi:

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

Wara dan, biex tlesti l-installazzjoni, nistgħu mmorru indirizz_ip_vps
F'dan l-indirizz se naraw paġna bl-installazzjoni ta' Drupal.

Agħżel il-lingwa li għandha tintuża. Per eżempju: Russu. Ikklikkja "Issejvja u Kompli"

Ejja nagħżlu profil ta 'installazzjoni (demo tintuża biss għall-familjarizzazzjoni mas-sistema). Fil-każ tagħna, ħalliha tkun "standard".

Fil-paġna li jmiss, agħti isem lid-database, bħal "drupal". Speċifika l-għeruq tal-username tad-database u l-password mogħtija lilu meta tibda mysql_secure_installation. Ikklikkja "Issejvja u Kompli".

Ejja nistennew li l-installazzjoni u l-aġġornament tat-traduzzjonijiet jitlestew (il-proċess jista' jieħu diversi minuti).

Speċifika l-isem tas-sit, issettja l-email tas-sit (f'isimhom jiġu n-notifiki tas-sit), login, password u email tal-kont tal-amministratur Drupal. Se nissettjaw ukoll il-pajjiż u ż-żona tal-ħin fis-settings reġjonali. U tlesti l-installazzjoni billi tikklikkja "Save and Continue".

Wara dan, tista 'tmur fil-pannell tal-kontroll bil-login u l-password tal-amministratur Drupal maħluqa.

Issettjar HTTPS (mhux obbligatorju)

Biex jiġi kkonfigurat HTTPS, il-VDS għandu jkollu isem DNS validu, speċifika fi

/etc/nginx/nginx.conf

fit-taqsima tas-server l-isem tas-server (per eżempju):

server_name  domainname.ru;

Ibda mill-ġdid nginx:

service nginx restart

Ejja nibdew certbot:

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

Daħħal l-e-mail tiegħek, taqbel mat-termini tas-servizz (A), Abbona man-newsletter (mhux obbligatorju) (N), agħżel l-ismijiet tad-dominju li għalihom trid toħroġ ċertifikat (Daħħal għal kulħadd).

Jekk kollox mar mingħajr żbalji, naraw messaġġ dwar il-ħruġ b'suċċess taċ-ċertifikati u s-setup tas-server:

Congratulations! You have successfully enabled ...

Wara dan, il-konnessjonijiet fuq il-port 80 jiġu ridiretti lejn 443 (https).

Żid ma' /etc/crontab biex iġġedded awtomatikament iċ-ċertifikati:

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

Twaqqif ta' Trusted Host Security (rakkomandat)

Dan l-issettjar huwa maħsub bħala soluzzjoni għall-problema ta 'detezzjoni dinamika ta' base_url, u huwa maħsub biex jipprevjeni attakki HTTP HOST Header (meta s-sit tiegħek jaħseb li huwa xi ħadd ieħor).

Biex tagħmel dan, għandek bżonn tispeċifika l-ismijiet tad-dominju fdati tas-sit fil-fajl tas-settings.

Fil-fajl

/usr/share/nginx/html/sites/default/settings.php neħħi l-kumment jew żid setting b'mudelli ta' ismijiet ta' siti attwali, pereżempju:

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

Installazzjoni ta' PHP APCu (RAKKOMANDAT)

Drupal jappoġġja APCu - Alternative PHP User Cache, il-verżjonijiet 8 u 9 jużaw APCu b'mod aktar intensiv bħala cache lokali għal żmien qasir minn verżjonijiet preċedenti. Id-daqs default tal-cache (32 MB) se jkun adattat għall-biċċa l-kbira tas-siti, u ma jistax jaqbeż il-512 MB.

Biex tattiva, installa l-modulu PHP APCu:

dnf -y install php-pecl-apcu

Ibda mill-ġdid nginx u php-fpm:

service nginx restart
service php-fpm restart

Fil-każ li tuża l-lingwa Russa u l-APCu bid-daqs rakkomandat tal-memorja cache, tista 'tara twissija fil-pannell tal-kontroll li d-daqs tal-memorja cache allokata jvarja minn dak rakkomandat, iżda fil-fatt kollox jaħdem b'mod korrett, u l-inkorrett twissija x'aktarx se tiġi ffissata fl-aġġornamenti li jmiss.

Jew jekk it-twissija tweġġa 'l-għajn, tista' tuża garża korrispondenti minn barra mis-sit.

Irridu nfakkruk li tista' wkoll tagħmel immaġni għalina

Hemm tliet għażliet dwar kif tipparteċipa.

Ipprepara l-immaġni lilek innifsek u ksib 3000 rublu fuq il-bilanċ tiegħek

Jekk inti lest li immedjatament tgħaġġel fil-battalja u toħloq l-immaġni li inti jonqosek lilek innifsek, aħna ser nikkreditawk 3000 rublu għall-bilanċ intern tiegħek - tista 'tonfoqha fuq servers.

Kif toħloq l-immaġni tiegħek:

  1. Oħloq kont magħna Online
  2. Għid lill-appoġġ li se toħloq u tittestja immaġini
  3. Aħna ser nikkreditawk 3000 rublu u nippermettu l-abbiltà li toħloq snapshots
  4. Ordna server virtwali b'sistema operattiva nadifa
  5. Installa s-softwer fuq dan il-VPS u waqqafha
  6. Ikteb struzzjonijiet jew skript għall-iskjerament tas-softwer
  7. Oħloq snapshot għas-server konfigurat
  8. Ordna server virtwali ġdid billi tagħżel l-istampa maħluqa preċedentement fil-lista drop-down "Server template"
  9. F'każ ta 'ħolqien b'suċċess tas-server, ittrasferixxi l-materjali riċevuti fil-pass 6 għall-appoġġ tekniku
  10. F'każ ta 'żball, tista' tiċċekkja bl-appoġġ għar-raġuni u rrepeti s-setup

Għas-sidien tan-negozji: offri s-softwer tiegħek

Jekk inti żviluppatur ta' softwer li huwa skjerat u użat fuq VPS, allura nistgħu ninkluduk fis-suq. Dan huwa kif nistgħu ngħinuk iġġib klijenti ġodda, traffiku u viżibilità. Iktbilna

Għidilna fil-kummenti x'immaġini titlef?

U aħna se nħejjuha aħna stess

Ħolqien ta 'Mudell VPS b'Drupal 9 fuq Centos 8

Ħolqien ta 'Mudell VPS b'Drupal 9 fuq Centos 8

Sors: www.habr.com