VPS-mallin luominen Drupal 9:llä Centos 8:ssa

Jatkamme markkinapaikkamme laajentamista. Kerroimme sinulle äskettäin kuinka teki Gitlab-kuvan, ja tällä viikolla Drupal ilmestyi markkinoillemme.

Kerromme, miksi valitsimme hänet ja miten kuva syntyi.

VPS-mallin luominen Drupal 9:llä Centos 8:ssa

Drupal — kätevä ja tehokas alusta minkä tahansa tyyppisten verkkosivustojen luomiseen: mikrosivustoista ja blogeista suuriin sosiaalisiin projekteihin, jota käytetään myös web-sovellusten perustana, kirjoitettu PHP:llä ja käyttämällä relaatiotietokantoja tietojen tallennusvälineenä.

Drupal 9 sisältää kaikki versiossa 8.9 esitellyt ominaisuudet. Tärkein ero version 9 ja version 8 välillä on, että alusta saa jatkossakin päivityksiä ja tietoturvakorjauksia marraskuun 2021 jälkeen. Versio 9 yksinkertaistaa myös päivitysprosessia, mikä tekee versiosta 8 päivittämisestä entistä helpompaa.

Palvelimen vaatimukset

Drupalin käyttöä varten on suositeltavaa käyttää 2 Gt RAM-muistia ja 2 CPU-ydintä.

Tärkeimmät Drupal-tiedostot vievät noin 100 Mt, lisäksi tarvitset tilaa kuvien, tietokantojen, teemojen, lisämoduulien ja varmuuskopioiden tallentamiseen, jotka riippuvat sivustosi koosta.

Drupal 9 vaatii PHP 7.4:n tai uudemman vähimmäisrajoituksella (memory_limit) 64 MB muistille; jos käytetään lisämoduuleja, on suositeltavaa asentaa 128 MB.

Drupal voi käyttää Apachea tai Nginxiä verkkopalvelimena ja MySQL-, PostgreSQL- tai SQLite-tietokantana.

Asennamme Drupalin Nginxillä ja MySQL:llä.

Asennus

Päivitetään asennetut paketit uusimpaan versioon:

sudo dnf update -y

Lisätään pysyvä lupa tulevalle liikenteelle http/80- ja https/443-portteihin:

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

Otetaan käyttöön uusia palomuurisääntöjä:

sudo systemctl reload firewalld

Asennetaan Nginx:

sudo dnf install nginx -y

Aloitetaan ja otetaan käyttöön Nginx-palvelin:

sudo systemctl start nginx
sudo systemctl enable nginx

Koska Centos-päävarasto käyttää tällä hetkellä PHP 7.2:ta, lisätään REMI-arkisto PHP 7.4:llä (minimiversio Drupal 9:lle).
Voit tehdä tämän lisäämällä EPEL-tietovaraston (REMI-arkisto vaatii):

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

Lisätään REMI-arkisto:

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

Otetaan php:remi-7.4-moduuli käyttöön php 7.4:n asentamiseksi:

sudo dnf module enable php:remi-7.4 -y

Asenna php-fpm ja php-cli:

sudo dnf install -y php-fpm php-cli

Asennamme Drupalin toiminnan edellyttämät PHP-moduulit:

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

Asennamme myös suositellut PHP mbstring opcache -moduulit:

sudo dnf install -y php-mbstring php-opcache

Asennataan MySQL-palvelin:

sudo dnf install mysql-server -y

Käynnistä ja käynnistä MySQL-palvelin:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Koska teemme mallia VDS:lle, ja ne voivat olla hitaita, lisäämme mysqld-käynnistysviiveen 30 sekuntia, muuten palvelimen käynnistymisessä voi olla ongelmia järjestelmän ensimmäisen käynnistyksen aikana:

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

Muutetaan ryhmä ja käyttäjä, jossa nginx toimii, tekemällä muutokset tiedostoon /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

Muutetaan PHP-istuntojen hakemiston omistaja nginxiksi vastaavasti:

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

Poistetaan kommentit sisältävät rivit asetustiedostosta /etc/nginx/nginx.conf (jotta sed:lle ei tule kaksoistriggereitä):

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

Lisää gzip-pakkausasetukset tiedostoon /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

Lisätään hakemistotiedoston index.php asetukset tiedostoon /etc/nginx/nginx.conf:

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

Lisätään oletuspalvelimen asetukset: PHP-käsittely php-fpm-liittimen kautta, staattisten tiedostojen loki poistetaan käytöstä, vanhenemisaika pidennetään, favicon.ico- ja robots.txt-tiedostojen käyttö- ja virheloki poistetaan käytöstä ja .ht:n käyttö estetään. tiedostot kaikille:

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

Asenna wget, jota tarvitaan certbotin asentamiseen:

sudo dnf install wget -y

Lataa suoritettava certbot-tiedosto ulkopuolelta:

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

Siirrä certbot hakemistoon /usr/local/bin/:

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

Ja annetaan oikeudet omistajana rootille:

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

Asennetaan certbot-riippuvuudet ja keskeytetään tässä vaiheessa sen työ (Vastaukset: Y, c):

certbot-auto

Ladataan arkisto Drupal 9:n uusimmalla versiolla ulkopuolelta:

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

Asenna tar arkiston purkamiseksi:

sudo dnf install tar -y

Poistetaan oletustiedostot /usr/share/nginx/html/-hakemistosta:

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

Puretaan tiedostot verkkopalvelimen hakemistoon:

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

Siirretään tiedostot alihakemistosta verkkopalvelimen juurihakemistoon:

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

Poistetaan alihakemisto:

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

Poistetaan arkisto asennustiedostoineen:

rm -f ./tar.gz

Määritetään nginx-tiedostojen omistaja:

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

Tässä vaiheessa sammutamme palvelimen ja otamme tilannekuvan:

shutdown -h now

Kun VDS on käynnistetty tilannekuvasta, suoritamme MySQL-palvelimen alkuasetukset suorittamalla komentosarjan:

mysql_secure_installation

Otetaan salasanan vahvistus käyttöön:

Would you like to setup VALIDATE PASSWORD component? : y

Asetetaan MySQL-pääkäyttäjän salasana:

New password:
Re-enter new password:

Poistetaan nimettömät käyttäjät:

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

Estämme rootia muodostamasta etäyhteyttä:

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

Poistetaan testitietokanta:

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

Lataamme etuoikeustaulukot uudelleen:

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

Tämän jälkeen voimme viedä asennuksen loppuun vps_ip_address
Tässä osoitteessa näemme Drupalin asennussivun.

Valitsemme käytettävän kielen. Esimerkiksi: venäjä. Napsauta "Tallenna ja jatka"

Valitaan asennusprofiili (demoa käytetään vain järjestelmään tutustumiseen). Meidän tapauksessamme olkoon se "standardi".

Seuraavalla sivulla annamme tietokannalle nimen, esimerkiksi "drupal". Ilmoitetaan tietokannan käyttäjätunnus root ja hänelle annettu salasana mysql_secure_installationin ajettaessa. Napsauta "Tallenna ja jatka".

Odotetaan käännösten asennuksen ja päivityksen valmistumista (prosessi voi kestää useita minuutteja).

Ilmoitamme sivuston nimen, asetamme sivuston sähköpostiosoitteen (jonka puolesta sivuston ilmoitukset lähetetään), käyttäjätunnuksen, salasanan ja Drupal-järjestelmänvalvojan tilin sähköpostiosoitteen. Asetamme myös maan ja aikavyöhykkeen alueellisissa asetuksissa. Ja viimeistele asennus napsauttamalla "Tallenna ja jatka".

Tämän jälkeen voit siirtyä ohjauspaneeliin luodulla Drupal-järjestelmänvalvojan käyttäjätunnuksella ja salasanalla.

HTTPS:n määrittäminen (valinnainen)

HTTPS:n määrittäminen edellyttää, että VDS:llä on kelvollinen DNS-nimi

/etc/nginx/nginx.conf

palvelinosiossa palvelimen nimi (esimerkiksi):

server_name  domainname.ru;

Aloitetaan nginx uudelleen:

service nginx restart

Käynnistetään certbot:

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

Syötä sähköpostiosoitteesi, hyväksy käyttöehdot (A), tilaa uutiskirje (valinnainen) (N), valitse verkkotunnukset, joille haluat myöntää varmenteen (Syötä kaikille).

Jos kaikki meni ilman virheitä, näemme viestin onnistuneesta varmenteiden myöntämisestä ja palvelimen määrityksestä:

Congratulations! You have successfully enabled ...

Tämän jälkeen yhteydet porttiin 80 ohjataan 443:een (https).

Lisää tiedostoon /etc/crontab päivittääksesi varmenteet automaattisesti:

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

Luotetun isännän suojauksen määrittäminen (suositus)

Tämä asetus on tarkoitettu ratkaisuksi dynaamiseen base_url-määritykseen liittyvään ongelmaan, ja se on suunniteltu estämään HTTP HOST Header -hyökkäykset (kun sivustosi luulee sen olevan joku muu).

Tätä varten sinun on määritettävä sivustolle luotetut verkkotunnukset asetustiedostossa.

Tiedostossa

/usr/share/nginx/html/sites/default/settings.php Poistetaan kommentit tai lisätään asetus, jossa on todellisia sivustonimiä, esimerkiksi:

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

PHP APCu:n asentaminen (SUOSITTELU)

Drupal tukee APCu:ta - Alternative PHP User Cache, versiot 8 ja 9 hyödyntävät APCu:ta enemmän lyhytaikaisena paikallisena välimuistina kuin aikaisemmat versiot. Välimuistin oletuskoko (32 Mt) sopii useimmille sivustoille, eikä se saa ylittää 512 Mt.

Aktivoi asenna PHP APCu -moduuli:

dnf -y install php-pecl-apcu

Käynnistä nginx ja php-fpm uudelleen:

service nginx restart
service php-fpm restart

Jos käytät venäjän kieltä ja APCu:ta suositellun muistikoon kanssa välimuistille, saatat nähdä ohjauspaneelissa varoituksen, että välimuistille varatun muistin koko on eri kuin suositeltu, mutta itse asiassa kaikki toimii oikein, ja virheellinen varoitus todennäköisesti korjataan seuraavissa päivityksissä.

Tai jos varoitus satuttaa silmiäsi, voit käyttää vastaava korjaustiedosto ulkopuolelta.

Haluamme muistuttaa, että voit myös tehdä kuvan meille

Osallistumisvaihtoehtoja on kolme.

Valmistele kuva itse ja saat 3000 ruplaa saldoosi

Jos olet valmis heti syöksymään taisteluun ja luomaan puuttuvan kuvan, hyvitämme sinulle 3000 XNUMX ruplaa sisäiseen saldoosi, jonka voit käyttää palvelimiin.

Näin luot oman kuvan:

  1. Luo tili kanssamme Online
  2. Kerro tuelle, että aiot luoda ja testata kuvia
  3. Hyvitämme sinulle 3000 XNUMX ruplaa ja annamme mahdollisuuden luoda tilannekuvia
  4. Tilaa virtuaalipalvelin puhtaalla käyttöjärjestelmällä
  5. Asenna ohjelmisto tähän VPS:ään ja määritä se
  6. Kirjoita ohjeet tai skripti ohjelmiston käyttöönottoa varten
  7. Luo tilannekuva määritetystä palvelimesta
  8. Tilaa uusi virtuaalipalvelin valitsemalla aiemmin luotu tilannekuva avattavasta "Palvelinmalli"-luettelosta
  9. Jos palvelin on luotu onnistuneesti, siirrä vaiheessa 6 vastaanotetut materiaalit tekniseen tukeen
  10. Jos tapahtuu virhe, voit tarkistaa tuen syyn ja toistaa asennuksen

Yritysten omistajille: tarjoa ohjelmistosi

Jos olet ohjelmistokehittäjä, joka on otettu käyttöön ja jota käytetään VPS:ssä, voimme sisällyttää sinut markkinoille. Näin voimme auttaa sinua tuomaan uusia asiakkaita, liikennettä ja tietoisuutta. Kirjoittakaa meille

Kerro meille kommenteissa, mikä kuva sinulta puuttuu?

Ja valmistamme sen itse

VPS-mallin luominen Drupal 9:llä Centos 8:ssa

VPS-mallin luominen Drupal 9:llä Centos 8:ssa

Lähde: will.com