VPS-sablon létrehozása Drupal 9-el a Centos 8-on

Tovább bővítjük piacunkat. Nemrég elmondtuk, hogyan készített egy Gitlab képet, és ezen a héten megjelent a Drupal a piacterünkön.

Elmondjuk, miért őt választottuk, és hogyan készült a kép.

VPS-sablon létrehozása Drupal 9-el a Centos 8-on

Drupal — kényelmes és hatékony platform bármilyen típusú weboldal létrehozásához: a mikrooldalaktól és blogoktól a nagy közösségi projektekig, webalkalmazások alapjául is szolgál, PHP nyelven írva és relációs adatbázisokat használva adattárolásként.

A Drupal 9 a 8.9-es verzióban bevezetett összes szolgáltatást tartalmazza. A legfontosabb különbség a 9-es és a 8-as verzió között az, hogy a platform 2021 novembere után is kap frissítéseket és biztonsági javításokat. A 9-es verzió a frissítési folyamatot is leegyszerűsíti, így még könnyebbé válik a 8-as verzióról való frissítés folyamata.

Szerver követelmények

A Drupal használatához 2 GB RAM és 2 CPU mag használata javasolt.

A fő Drupal fájlok körülbelül 100 MB-ot foglalnak el, ezen kívül szükség lesz a képek, adatbázisok, témák, további modulok és biztonsági másolatok tárolására, ami a webhely méretétől függ.

A Drupal 9-hez PHP 7.4 vagy újabb verzió szükséges, minimális korlátozással (memory_limit) 64 MB memória esetén; további modulok használata esetén 128 MB telepítése javasolt.

A Drupal webszerverként használhatja az Apache-t vagy az Nginxet, adatbázisként pedig a MySQL-t, a PostgreSQL-t vagy az SQLite-t.

A Drupalt Nginx és MySQL használatával fogjuk telepíteni.

Telepítés

Frissítsük a telepített csomagokat a legújabb verzióra:

sudo dnf update -y

Adjunk állandó engedélyt a bejövő forgalomhoz a http/80 és https/443 portokhoz:

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

Alkalmazzuk az új tűzfalszabályokat:

sudo systemctl reload firewalld

Telepítsük az Nginx-et:

sudo dnf install nginx -y

Indítsuk el és engedélyezzük az Nginx szervert:

sudo systemctl start nginx
sudo systemctl enable nginx

Mivel a fő Centos tároló jelenleg PHP 7.2-t használ, adjunk hozzá egy REMI-tárat PHP 7.4-gyel (a Drupal 9-es minimális verziója).
Ehhez adja hozzá az EPEL-tárat (amely a REMI-tárhoz szükséges):

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

Adjuk hozzá a REMI-tárat:

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

Engedélyezzük a php:remi-7.4 modult a php 7.4 telepítéséhez:

sudo dnf module enable php:remi-7.4 -y

A php-fpm és a php-cli telepítése:

sudo dnf install -y php-fpm php-cli

Telepítsük a Drupal működéséhez szükséges PHP modulokat:

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

Telepítjük az ajánlott PHP mbstring opcache modulokat is:

sudo dnf install -y php-mbstring php-opcache

Telepítsük a MySQL szervert:

sudo dnf install mysql-server -y

Kapcsoljuk be és indítsuk el a MySQL szervert:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Mivel VDS-hez készítünk sablont, és ezek lassúak lehetnek, 30 másodperces mysqld indítási késleltetést adunk hozzá, különben problémák adódhatnak a szerver indulásával a kezdeti rendszerindítás során:

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

Módosítsuk azt a csoportot és felhasználót, amely alatt az nginx futni fog az /etc/php-fpm.d/www.conf fájl módosításával:

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

Változtassuk meg a PHP sessions könyvtár tulajdonosát ennek megfelelően nginx-re:

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

Távolítsuk el a megjegyzéseket tartalmazó sorokat az /etc/nginx/nginx.conf konfigurációs fájlból (hogy ne legyen kettős trigger a sed számára):

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

Adja hozzá a gzip tömörítési beállításokat az /etc/nginx/nginx.conf fájlhoz

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

Adjuk hozzá az index.php indexfájl beállításait az /etc/nginx/nginx.conf fájlhoz:

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

Adjunk hozzá beállításokat az alapértelmezett szerverhez: PHP feldolgozás a php-fpm socketen keresztül, statikus fájlok naplójának letiltása, lejárati idő növelése, favicon.ico és robots.txt hozzáférési és hibanaplójának letiltása, valamint a .ht hozzáférés megtagadása fájlok mindenkinek:

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

A certbot telepítéséhez szükséges wget telepítése:

sudo dnf install wget -y

Töltse le a certbot futtatható fájlt a külső webhelyről:

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

A certbot áthelyezése a /usr/local/bin/ mappába:

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

És rendeljük hozzá a root jogokat tulajdonosként:

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

Telepítsük a certbot függőségeket, és ebben a szakaszban szakítsuk meg a munkáját (Válaszok: Y, c):

certbot-auto

Töltsük le az archívumot a Drupal 9 legújabb verziójával a külső oldalról:

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

Telepítse a tar-t az archívum kicsomagolásához:

sudo dnf install tar -y

Töröljük az alapértelmezett fájlokat a /usr/share/nginx/html/ könyvtárból:

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

Csomagoljuk ki a fájlokat a webszerver könyvtárába:

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

Helyezzük át a fájlokat az alkönyvtárból a webszerver gyökérkönyvtárába:

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

Töröljük az alkönyvtárat:

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

Töröljük az archívumot a telepítő fájlokkal:

rm -f ./tar.gz

Rendeljük ki az nginx fájlok tulajdonosát:

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

Ebben a szakaszban kikapcsoljuk a szervert, és pillanatképet készítünk:

shutdown -h now

Miután elindítottuk a VDS-t a pillanatképből, a szkript futtatásával végrehajtjuk a MySQL szerver kezdeti beállítását:

mysql_secure_installation

Engedélyezzük a jelszóellenőrzőt:

Would you like to setup VALIDATE PASSWORD component? : y

Állítsuk be a MySQL root felhasználó jelszavát:

New password:
Re-enter new password:

Távolítsuk el a névtelen felhasználókat:

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

Megakadályozzuk a root távoli csatlakozását:

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

Töröljük a tesztadatbázist:

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

Töltsük újra a jogosultsági táblákat:

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

Ezt követően a telepítés befejezéséhez mehetünk a vps_ip_address
Ezen a címen a Drupal telepítési oldalát fogjuk látni.

Válasszuk ki a használni kívánt nyelvet. Például: orosz. Kattintson a „Mentés és folytatás” gombra

Válasszunk ki egy telepítési profilt (a demó kizárólag a rendszer megismerésére szolgál). Esetünkben legyen „standard”.

A következő oldalon egy nevet adunk az adatbázisnak, például „drupal”. Jelöljük meg a root adatbázis felhasználónevet és a mysql_secure_installation futtatásakor neki adott jelszót. Kattintson a „Mentés és folytatás” gombra.

Várjuk meg, amíg a fordítások telepítése és frissítése befejeződik (a folyamat több percig is eltarthat).

Megjelöljük az oldal nevét, beállítjuk a webhely e-mail címét (amelynek nevében küldjük az értesítéseket), a bejelentkezést, a jelszót és a Drupal rendszergazdai fiók e-mail címét. Az országot és az időzónát is beállítjuk a regionális beállításokban. És fejezze be a telepítést a „Mentés és folytatás” gombra kattintva.

Ezt követően a létrehozott Drupal rendszergazda bejelentkezési névvel és jelszóval léphet a vezérlőpultra.

HTTPS beállítása (opcionális)

A HTTPS konfigurálásához a VDS-nek érvényes DNS-névvel kell rendelkeznie, adja meg

/etc/nginx/nginx.conf

a szerver részben a szerver nevét (például):

server_name  domainname.ru;

Indítsuk újra az nginx-et:

service nginx restart

Indítsuk el a certbotot:

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

Adja meg e-mail címét, fogadja el a szolgáltatási feltételeket (A), iratkozzon fel a hírlevélre (nem kötelező) (N), válassza ki azokat a domain neveket, amelyekre tanúsítványt szeretne kiállítani (Enter mindenkinek).

Ha minden hiba nélkül ment, üzenetet fogunk látni a tanúsítványok sikeres kiadásáról és a szerverkonfigurációról:

Congratulations! You have successfully enabled ...

Ezt követően a 80-as portra mutató kapcsolatok át lesznek irányítva a 443-ra (https).

Adja hozzá az /etc/crontab fájlhoz a tanúsítványok automatikus frissítéséhez:

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

A Trusted Host Security beállítása (ajánlott)

Ez a beállítás a dinamikus base_url meghatározásával kapcsolatos probléma megoldására szolgál, és a HTTP HOST-fejléc támadásainak megakadályozására szolgál (amikor a webhely úgy gondolja, hogy valaki más).

Ehhez meg kell adnia a webhely megbízható tartományneveit a beállítási fájlban.

Fájlban

/usr/share/nginx/html/sites/default/settings.php Töröljük a megjegyzéseket, vagy adjunk hozzá egy beállítást tényleges webhelynevek mintájával, például:

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

PHP APCu telepítése (AJÁNLOTT)

A Drupal támogatja az APCu – Alternatív PHP felhasználói gyorsítótárat, a 8-as és 9-es verziók jobban használják az APCu-t rövid távú helyi gyorsítótárként, mint a korábbi verziók. Az alapértelmezett gyorsítótár mérete (32 MB) a legtöbb webhely számára megfelelő, és nem haladhatja meg az 512 MB-ot.

Az aktiváláshoz telepítse a PHP APCu modult:

dnf -y install php-pecl-apcu

Indítsa újra az nginxet és a php-fpm-et:

service nginx restart
service php-fpm restart

Ha az orosz nyelvet és az APCu-t az ajánlott memóriamérettel használja a gyorsítótárhoz, akkor a vezérlőpulton figyelmeztetés jelenhet meg, amely szerint a gyorsítótár számára lefoglalt memória mérete eltér az ajánlotttól, de valójában minden megfelelően működik, és a hibás figyelmeztetést nagy valószínűséggel kijavítják a következő frissítésekben.

Vagy ha a figyelmeztetés bántja a szemét, használhatja megfelelő folt az oldalról.

Szeretnénk emlékeztetni, hogy képet is készíthet nekünk

Három lehetőség van a részvételre.

Készítse elő a képet saját maga, és kapjon 3000 rubelt az egyenlegéhez

Ha készen áll arra, hogy azonnal harcba rohanjon, és megalkotja a hiányzó képet, 3000 rubelt írunk jóvá belső egyenlegében, amelyet szerverekre költhet.

Hogyan készítsünk saját képet:

  1. Hozzon létre fiókot nálunk Online
  2. Tájékoztassa az ügyfélszolgálatot, hogy képeket készít és tesztel
  3. Jóváírunk Önnek 3000 rubelt, és lehetővé tesszük a pillanatképek készítését
  4. Rendeljen virtuális szervert tiszta operációs rendszerrel
  5. Telepítse a szoftvert erre a VPS-re, és konfigurálja azt
  6. Írjon utasításokat vagy szkriptet a szoftvertelepítéshez
  7. Hozzon létre egy pillanatképet a konfigurált szerverhez
  8. Rendeljen új virtuális szervert a korábban létrehozott pillanatkép kiválasztásával a „Szerver sablon” legördülő listában
  9. Ha a szerver létrehozása sikeres volt, a 6. szakaszban kapott anyagokat továbbítsa a technikai támogatáshoz
  10. Ha hiba lép fel, ellenőrizheti a támogatás okát, és megismételheti a beállítást

Cégtulajdonosok számára: ajánlja fel szoftverét

Ha Ön VPS-en telepített és használt szoftverfejlesztő, akkor bevonhatjuk a piacra. Így tudunk új ügyfeleket, forgalmat és ismertséget szerezni. Írj nekünk

Írd meg nekünk kommentben, melyik kép hiányzik?

És mi magunk készítjük el

VPS-sablon létrehozása Drupal 9-el a Centos 8-on

VPS-sablon létrehozása Drupal 9-el a Centos 8-on

Forrás: will.com