VPS veidne ar Drupal 9 uz Centos 8 izveide

Mēs turpinām paplašināt mūsu tirgus vietu. Nesen mēs stāstījām, kā izveidojām Gitlab attēlu, bet šonedēļ mūsu tirgus vietā parādījās Drupal.

Pastāstīsim, kādēļ izvēlējāmies tieši to un kā tika izveidots attēls.

VPS veidne ar Drupal 9 uz Centos 8 izveide

Drupal — ērta un jaudīga platforma, lai izveidotu jebkura veida vietnes: no mikro vietnēm un emuāriem līdz lielām sociālajām projektiem, ko izmanto arī kā pamatu tīmekļa lietotnēm, uzrakstīta PHP valodā un izmantojo relāciju datu bāzes kā datu krātuvi.

Drupal 9 ietver visas funkcijas, kas tika ieviestas versijā 8.9. Galvenā atšķirība starp 9. un 8. versiju ir tā, ka platformai tiks izlaisti atjauninājumi un drošības labojumi arī pēc 2021. gada novembra. Tāpat 9. versijā tiek vienkāršots atjaunināšanas process, padarot atjaunināšanu no 8. versijas vēl vienkāršāku.

Servera prasības

Lai izmantotu Drupal, ieteicams izmantot 2 GB RAM un 2 CPU kodolus.

Pamata Drupal faili aizņem apmēram 100 MB, papildus būs nepieciešama vieta attēliem, datu bāzēm, dizainiem, papildmoduļiem un dublējumiem, kas būs atkarīgs no jūsu vietnes lieluma.

Drupal 9 prasa PHP 7.4 vai jaunāku ar minimālo ierobežojumu (memory_limit) uz atmiņu 64 MB; ja izmantojat papildmoduļus, ieteicams iestatīt 128 MB.

Kā tīmekļa serveri Drupal var izmantot Apache vai Nginx, bet kā datu bāzi — MySQL, PostgreSQL vai SQLite.

Mēs instalēsim Drupal, izmantojot Nginx un MySQL.

Uzstādīšana

Atjaunināsim instalētās paketes uz jaunāko versiju:

sudo dnf update -y

Pievienosim pastāvīgu atļauju ieejas trafikam uz http/80 un https/443 portiem:

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

Izmantosim jaunās ugunsmūra noteikumu:

sudo systemctl reload firewalld

Instalēsim Nginx:

sudo dnf install nginx -y

Palaižam un aktivizējam Nginx serveri:

sudo systemctl start nginx
sudo systemctl enable nginx

Tā kā šobrīd galvenajā CentOS rejistrā tiek izmantota PHP 7.2 versija, pievienosim REMI rejistru ar PHP 7.4 (minimālā versija Drupal 9).
Tādēļ pievienosim EPEL rejistru (kas nepieciešams REMI rejistram):

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

Pievienosim REMI rejistru:

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

Aktivizēsim php:remi-7.4 moduli, lai instalētu php 7.4:

sudo dnf module enable php:remi-7.4 -y

Instalēsim php-fpm un php-cli:

sudo dnf install -y php-fpm php-cli

Instalēsim PHP moduļus, kas nepieciešami Drupal darbībai:

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

Tāpat instalēsim ieteicamos PHP moduļus mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Instalēsim MySQL serveri:

sudo dnf install mysql-server -y

Ieslēgsim un uzsāksim MySQL serveri:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Tā kā mēs veidojam veidni VDS, kas var būt lēni, pievienosim 30 sekunžu aizkavu mysqld startam, citādi var rasties problēmas ar servera palaišanu sākotnējā sistēmas ielādē:

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

Mainīsim grupu un lietotāju, ar kuru darbosies nginx, veicot izmaiņas /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

Mainīsim PHP sesiju katalogu īpašnieku arī atbilstoši uz nginx:

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

Izdzēsīsim komentāru rindas no konfigurācijas faila /etc/nginx/nginx.conf (lai nerastos dubulti izsistieni sed):

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

Pievienosim /etc/nginx/nginx.conf gzip kompresijas iestatījumus

sudo sed -i '/types_hash_max_size 2048;/a \n    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

Pievienosim /etc/nginx/nginx.conf indeksfaila index.php iestatījumus:

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

Pievienosim iestatījumus noklusējuma serverim PHP apstrādē caur php-fpm soketu, atslēgsim žurnālu statiskiem failiem, palielināsim expire laiku, atslēgsim piekļuves un kļūdu žurnālu favicon.ico un robots.txt failiem un aizliegsim piekļuvi .ht failiem visiem:

sudo sed -i '/        location / {/a \t	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

Instalēsim wget, kas nepieciešams certbot instalēšanai:

sudo dnf install wget -y

Lejupielādēsim certbot izpildāmo failu no oficiālās vietnes:

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

Pārvietosim certbot uz /usr/local/bin/:

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

Un piešķirsim tiesības un noteiksim īpašnieku kā root:

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

Instalēsim certbot atkarības un šajā posmā pārtrauksim tā darbību (Atbildes: Y, c):

certbot-auto

Lejupielādēsim no oficiālās vietnes arhīvu ar jaunāko Drupal 9 versiju:

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

Instalēsim tar, lai izpakotu arhīvu:

sudo dnf install tar -y

Izdzēšam noklusējuma failus katalogā /usr/share/nginx/html/:

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

Izpakosim failus uz tīmekļa servera katalogu:

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

Pārvietosim failus no apakškatalogiem uz tīmekļa servera sakni:

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

Izdzēsīsim apakškatalogu:

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

Izdzēsīsim arhīvu ar uzstādīšanas failiem:

rm -f ./tar.gz

Norādīsim failu īpašnieku kā nginx:

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

Šajā posmā izslēgsim serveri un izveidosim snapshot:

shutdown -h now

Pēc VDS palaišanas no snapshot veiksim sākotnējo MySQL servera iestatīšanu, palaidīsim skriptu:

mysql_secure_installation

Ieslēgsim paroli validējošo komponenti:

Would you like to setup VALIDATE PASSWORD component? : y

Uzstādīsim root lietotāja MySQL paroli:

New password:
Re-enter new password:

Izdzēsīsim anonīmos lietotājus:

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

Aizliegsim root piekļuvi attālināti:

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

Izdzēsīsim testēšanas datubāzi:

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

Pārlādēsim privilēģiju tabulas:

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

Pēc tam, lai pabeigtu uzstādīšanu, mēs varam doties uz adresi vps_ip_address
Pa šo adresi mēs redzēsim Drupal instalācijas lapu.

Izvēlēsimies lietoto valodu. Piemēram: latviešu. Nospiedīsim "Saglabāt un turpināt"

Izvēlēsimies uzstādīšanas profilu (demo tiek izmantots tikai iepazīšanai ar sistēmu). Mūsu gadījumā tas būs "standarts".

Nākamajā lapā norādīsim datubāzes nosaukumu, piemēram, "drupal". Norādīsim datubāzes lietotāja vārdu root un paroli, ko esam iestatījuši, palaižot mysql_secure_installation. Nospiedīsim "Saglabāt un turpināt".

Gaidīsim, līdz pabeigsies uzstādīšana un tiks atjaunoti tulkojumi (process var aizņemt dažas minūtes).

Norādiet mājaslapas nosaukumu, iestatiet mājaslapas e-pastu (no kura tiks sūtīti paziņojumi), lietotājvārdu, paroli un Drupal administratora konta e-pastu. Tāpat norādiet valsti un laika joslu reģionālajos iestatījumos. Un pabeidziet instalāciju, nospiežot "Saglabāt un turpināt".

Pēc tam varat pāriet uz vadības paneli ar izveidoto administratora lietotājvārdu un paroli.

HTTPS iestatīšana (pēc vēlēšanās)

Lai iestatītu HTTPS, VDS jābūt aktīvam DNS nosaukumam, norādiet

/etc/nginx/nginx.conf

servera sadaļā servera nosaukumu (piemēram):

server_name  domainname.ru;

Pārstartēsim nginx:

service nginx restart

Palaidīsim certbot:

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

Ievadām savu e-pastu, piekrītam pakalpojuma nosacījumiem (A), abonements uz jaunumiem (pēc izvēles) (N), izvēlamies domēnu nosaukumus, par kuriem jāizdod sertifikāts (Enter visiem).

Ja viss notika bez kļūdām, mēs redzēsim ziņu par veiksmīgu sertifikātu izsniegšanu un servera iestatīšanu:

Congratulations! You have successfully enabled ...

Pēc tam savienojumi uz 80. portu tiks pārsūtīti uz 443 (https).

Pievienosim /etc/crontab automātiskai sertifikātu atjaunināšanai:

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

Trusted Host Security iestatīšana (ieteicams)

Šis iestatījums ir paredzēts, lai risinātu problēmas, kas saistītas ar dinamiski noteikto base_url, un mērķis ir novērst HTTP HOST Header uzbrukumus (kad jūsu mājaslapa domā, ka tā ir kāds cits).

Lai to izdarītu, nepieciešams norādīt uzticamos mājaslapas domēnu nosaukumus iestatījumu failā.

Failā

/usr/share/nginx/html/sites/default/settings.php atslēdzam vai pievienojam iestatījumu ar aktuālo domēnu nosaukumu paraugiem, piemēram:

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

PHP APCu instalēšana (ieteicama)

Drupal atbalsta APCu — Alternative PHP User Cache, 8. un 9. versija intensīvāk izmanto APCu kā īstermiņa vietējo kešatmiņu nekā iepriekšējās versijas. Noklusējuma kešatmiņas izmērs (32 MB) derēs lielākajai daļai mājaslapu un nedrīkst pārsniegt 512 MB.

Lai aktivizētu, uzstādām PHP APCu moduli:

dnf -y install php-pecl-apcu

Pārstartēsim nginx un php-fpm:

service nginx restart
service php-fpm restart

Ja tiek lietota krievu valoda un APCu ar ieteicamo atmiņas izmēru kešatmiņai, vadības panelī varat redzēt brīdinājumu, ka piešķirtā kešatmiņas atmiņa atšķiras no ieteiktā, bet patiesībā viss darbojas pareizi, un nepareiza brīdinājuma problēmu, iespējams, novērsīs tuvākajos atjauninājumos.

Vai arī, ja brīdinājums krīt acīs, varat izmantot atbilstoša izmaiņa no oficiālās vietnes.

Vēlamies atgādināt, ka arī jūs varat mums izveidot attēlu

Ir trīs veidi, kā piedalīties.

Sagatavojiet attēlu paši un saņemiet 3000 rubļu uz bilanci

Ja esat gatavi uzreiz doties cīņā un izveidot trūkstošo attēlu, mēs piešķirsim jums 3000 rubļu uz iekšējo bilanci — to varēsiet iztērēt serveriem.

Kā izveidot savu attēlu:

  1. Izveidojiet kontu pie mums vietnē
  2. Paziņojiet atbalstam, ka plānojat izveidot un testēt attēlus
  3. Mēs piešķirsim jums 3000 rubļu un aktivizēsim iespēju veidot attēlus
  4. Pasūtiet virtuālo serveri ar tīru operētājsistēmu
  5. Instalējiet šo VPS programmatūru un konfigurējiet to
  6. Izveidojiet instrukciju vai skriptu programmatūras izvietošanai
  7. Izveidojiet attēlu konfigurētajam serverim
  8. Pasūtiet jaunu virtuālo serveri, izvēloties izkrītošajā sarakstā ‘Servera veidne’ iepriekš izveidoto attēlu
  9. Ja servera izveide ir veiksmīga, nododiet materiālus, kas iegūti 6. posmā, tehniskajam atbalstam
  10. Ja rodas kļūda, jūs varat noskaidrot pie atbalsta iemeslu un atkārtot konfigurāciju

Biznesa īpašniekiem: piedāvājiet savu programmatūru

Ja jūs esat programmatūras izstrādātājs, kuru izvieto un izmanto VPS, mēs varam iekļaut jūs tirgus vietā. Tas palīdzēs jums piesaistīt jaunus klientus, apmeklējumu un atpazīstamību. Rakstiet mums

Pastāstiet komentāros, kāda attēla jums pietrūkst?

Un mēs to izveidosim paši

VPS veidne ar Drupal 9 uz Centos 8 izveide

VPS veidne ar Drupal 9 uz Centos 8 izveide

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster