Centos 9-də Drupal 8 ilə VPS Şablonunun yaradılması

Biz bazarımızı genişləndirməyə davam edirik. Bu yaxınlarda necə olduğunu danışdıq Gitlab şəklini yaratdı, və bu həftə Drupal bazarımızda göründü.

Onu niyə seçdiyimizi və obrazın necə yaradıldığını deyirik.

Centos 9-də Drupal 8 ilə VPS Şablonunun yaradılması

Drupal istənilən növ saytların yaradılması üçün əlverişli və güclü platformadır: mikrosaytlardan və bloqlardan tutmuş iri sosial layihələrə qədər, o, həmçinin veb proqramlar üçün əsas kimi istifadə olunur, PHP-də yazılmış və relyasiya verilənlər bazalarından məlumatların saxlanması kimi istifadə olunur.

Drupal 9 8.9 versiyasında təqdim edilən bütün funksiyaları özündə birləşdirir. 9-cu versiya ilə 8-ci versiya arasındakı əsas fərq platformanın 2021-ci ilin noyabrından sonra yeniləmələri və təhlükəsizlik düzəlişlərini almağa davam etməsidir. Həmçinin 9-cu versiyada təkmilləşdirmə prosesi sadələşdirilib, 8-ci versiyadan təkmilləşdirmə prosesi daha da asanlaşdırılıb.

Server Tələbləri

Drupal-dan istifadə etmək üçün 2 GB RAM və 2 CPU nüvəsindən istifadə etmək tövsiyə olunur.

Əsas Drupal faylları təxminən 100 MB-dır, əlavə olaraq saytınızın ölçüsündən asılı olaraq şəkillər, verilənlər bazası, mövzular, əlavələr və ehtiyat nüsxələri saxlamaq üçün yerə ehtiyacınız olacaq.

Drupal 9 minimum limitlə PHP 7.4 və ya daha yüksək tələb edir (memory_limit) 64 MB yaddaşa qədər, əlavə modullardan istifadə edildikdə, 128 MB quraşdırmaq tövsiyə olunur.

Drupal Apache və ya Nginx-dən veb server kimi, MySQL, PostgreSQL və ya SQLite isə verilənlər bazası kimi istifadə edə bilər.

Nginx və MySQL istifadə edərək Drupal quraşdıracağıq.

Quraşdırma

Quraşdırılmış paketləri ən son versiyaya yeniləyin:

sudo dnf update -y

Gəlin http/80 və https/443 portlarına daxil olan trafik üçün daimi icazə əlavə edək:

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

Yeni firewall qaydalarını tətbiq edin:

sudo systemctl reload firewalld

Nginx quraşdırın:

sudo dnf install nginx -y

Nginx serverini işə salaq və işə salaq:

sudo systemctl start nginx
sudo systemctl enable nginx

Hazırda PHP 7.2 əsas Centos repozitoriyasında istifadə olunduğu üçün PHP 7.4 (Drupal 9 üçün minimum versiya) ilə REMI repozitoriyasını əlavə edək.
Bunu etmək üçün EPEL repozitoriyasını əlavə edin (REMI deposu tərəfindən tələb olunur):

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

REMI repozitoriyasını əlavə edək:

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

php 7.4 quraşdırmaq üçün php:remi-7.4 modulunu aktiv edin:

sudo dnf module enable php:remi-7.4 -y

php-fpm və php-cli-ni quraşdırın:

sudo dnf install -y php-fpm php-cli

Drupal-ın işləməsi üçün tələb olunan PHP modullarını quraşdırın:

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

Biz həmçinin mbstring opcache tövsiyə olunan PHP modullarını quraşdıracağıq:

sudo dnf install -y php-mbstring php-opcache

MySQL serverini quraşdırın:

sudo dnf install mysql-server -y

MySQL serverini işə salın və işə salın:

sudo systemctl start mysqld
sudo systemctl enable mysqld

VDS üçün şablon hazırladığımızdan və onlar yavaş ola bildiyindən, 30 saniyəlik mysqld başlanğıc gecikməsi əlavə edəcəyik, əks halda sistemin ilkin yüklənməsi zamanı serverin işə salınmasında problemlər yarana bilər:

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

/etc/php-fpm.d/www.conf-a dəyişiklik etməklə nginx-in işləyəcəyi qrup və istifadəçini dəyişək:

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

PHP sessiya qovluğunun sahibini müvafiq olaraq nginx-ə dəyişin:

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

Şərh sətirlərini /etc/nginx/nginx.conf konfiqurasiya faylından çıxaraq (sed üçün ikiqat hit olmaması üçün):

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

/etc/nginx/nginx.conf-a gzip sıxılma parametrlərini əlavə edin

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

index.php indeks faylının parametrlərini /etc/nginx/nginx.conf-a əlavə edək:

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

Gəlin php-fpm yuvası vasitəsilə defolt server emal php üçün parametrlər əlavə edək, statik fayllar üçün jurnalı deaktiv edək, bitmə müddətini artıraq, favicon.ico və robots.txt üçün giriş və xəta jurnalını deaktiv edək və .ht fayllarına girişi rədd edək. hər kəs:

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

Certbot quraşdırmaq üçün lazım olan wget-i quraşdırın:

sudo dnf install wget -y

certbot icra edilə bilən faylını saytdan kənardan endirin:

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

Sertbot-u /usr/local/bin/ üzərinə köçürün:

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

Və kökə hüquq və mülkiyyət təyin edin:

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

Certbotun asılılıqlarını quraşdırın və bu mərhələdə onu dayandırın (Cavablar: Y, c):

certbot-auto

Drupal 9-un ən son versiyası ilə arxivi saytdan kənardan endirin:

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

Arxivi açmaq üçün tar quraşdırın:

sudo dnf install tar -y

/usr/share/nginx/html/ qovluğundakı standart faylları silin:

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

Faylları veb server qovluğuna açın:

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

Faylları alt kataloqdan veb serverin kök qovluğuna köçürün:

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

Alt kataloqu silin:

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

Quraşdırma faylları ilə arxivi silin:

rm -f ./tar.gz

Nginx fayllarının sahibini təyin edin:

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

Bu mərhələdə serveri söndürüb snapshot alacağıq:

shutdown -h now

VDS-i snapshot-dan işə saldıqdan sonra skripti işlətməklə MySQL serverinin ilkin quraşdırılmasını həyata keçirəcəyik:

mysql_secure_installation

Parol təsdiqləyicisini aktivləşdirin:

Would you like to setup VALIDATE PASSWORD component? : y

MySQL kök istifadəçi parolunu təyin edin:

New password:
Re-enter new password:

Anonim istifadəçiləri silin:

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

Kökün uzaqdan qoşulmasının qarşısını alaq:

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

Test verilənlər bazasını silək:

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

İmtiyaz cədvəllərini yenidən yükləyin:

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

Bundan sonra quraşdırmanı başa çatdırmaq üçün gedə bilərik vps_ip_ünvanı
Bu ünvanda Drupal-ın quraşdırılması ilə bir səhifə görəcəyik.

İstifadə olunacaq dili seçin. Məsələn: rus. "Saxla və Davam et" düyməsini basın

Quraşdırma profilini seçək (demo yalnız sistemlə tanış olmaq üçün istifadə olunur). Bizdə isə “standart” olsun.

Növbəti səhifədə verilənlər bazasına "drupal" kimi bir ad verin. mysql_secure_installation-a başladıqda verilənlər bazası istifadəçi adı kökünü və ona verilən parolu göstərin. "Saxla və Davam et" düyməsini basın.

Tərcümələrin quraşdırılması və yenilənməsinin tamamlanmasını gözləyək (proses bir neçə dəqiqə çəkə bilər).

Saytın adını göstərin, saytın e-poçt ünvanını (sayt bildirişləri hansı addan gələcək), Drupal administrator hesabının loqini, parolu və e-poçtunu təyin edin. Regional parametrlərdə ölkə və saat qurşağını da təyin edəcəyik. Və "Saxla və Davam et" düyməsini basaraq quraşdırmanı tamamlayın.

Bundan sonra yaradılmış Drupal administrator giriş və şifrə ilə idarəetmə panelinə keçə bilərsiniz.

HTTPS ayarı (isteğe bağlı)

HTTPS-i konfiqurasiya etmək üçün VDS etibarlı DNS adına malik olmalıdır, daxil edin

/etc/nginx/nginx.conf

server bölməsində server adı (məsələn):

server_name  domainname.ru;

Nginx-i yenidən başladın:

service nginx restart

Sertbot-a başlayaq:

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

E-poçtunuzu daxil edin, xidmət şərtləri ilə razılaşın (A), bülletenə abunə olun (isteğe bağlı) (N), sertifikat vermək istədiyiniz domen adlarını seçin (hamı üçün daxil edin).

Hər şey səhvsiz keçərsə, sertifikatların müvəffəqiyyətlə verilməsi və server quraşdırması haqqında bir mesaj görəcəyik:

Congratulations! You have successfully enabled ...

Bundan sonra 80-ci portdakı bağlantılar 443-ə (https) yönləndiriləcək.

Sertifikatları avtomatik yeniləmək üçün /etc/crontab-a əlavə edin:

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

Etibarlı Host Təhlükəsizliyinin qurulması (tövsiyə olunur)

Bu parametr dinamik base_url aşkarlanması probleminin həlli kimi nəzərdə tutulub və HTTP HOST Başlığı hücumlarının qarşısını almaq üçün nəzərdə tutulub (saytınız başqası olduğunu düşündüyü zaman).

Bunun üçün parametrlər faylında saytın etibarlı domen adlarını göstərməlisiniz.

Faylda

/usr/share/nginx/html/sites/default/settings.php şərhi ləğv edin və ya faktiki sayt adlarının nümunələri ilə parametr əlavə edin, məsələn:

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

PHP APCu quraşdırılması (TÖVSİYƏ EDİLİR)

Drupal APCu - Alternativ PHP İstifadəçi Keşini dəstəkləyir, 8 və 9-cu versiyalar APCu-dan əvvəlki versiyalara nisbətən qısamüddətli yerli keş kimi daha intensiv istifadə edir. Defolt keş ölçüsü (32 MB) əksər saytlara uyğun olacaq və 512 MB-dan çox ola bilməz.

Aktivləşdirmək üçün PHP APCu modulunu quraşdırın:

dnf -y install php-pecl-apcu

Nginx və php-fpm-i yenidən başladın:

service nginx restart
service php-fpm restart

Rus dilindən və tövsiyə olunan keş yaddaş ölçüsü ilə APCu istifadə edildiyi təqdirdə, idarəetmə panelində ayrılmış ön yaddaşın ölçüsünün tövsiyə olunandan fərqli olduğu barədə xəbərdarlıq görə bilərsiniz, lakin əslində hər şey düzgün işləyir və səhvdir. xəbərdarlıq böyük ehtimalla növbəti yeniləmələrdə düzəldiləcək.

Və ya xəbərdarlıq gözə zərər verirsə, istifadə edə bilərsiniz kənardan müvafiq yamaq.

Sizə xatırlatmaq istəyirik ki, siz də bizim üçün şəkil yarada bilərsiniz

İştirak etmək üçün üç seçim var.

Şəkli özünüz hazırlayın və balansınıza 3000 rubl qazanın

Dərhal döyüşə tələsməyə və özünüzdə çatışmayan görüntü yaratmağa hazırsınızsa, daxili balansınıza 3000 rubl ödəyəcəyik - onu serverlərə xərcləyə bilərsiniz.

Şəkilinizi necə yaratmaq olar:

  1. Bizimlə hesab yaradın Online
  2. Şəkillər yaratmaq və sınaqdan keçirmək niyyətində olduğunuzu dəstəyə bildirin
  3. Biz sizə 3000 rubl kredit verəcəyik və anlıq görüntülər yaratmaq imkanı verəcəyik
  4. Təmiz əməliyyat sistemi olan virtual server sifariş edin
  5. Proqramı bu VPS-də quraşdırın və qurun
  6. Proqram təminatının yerləşdirilməsi üçün təlimatlar və ya skript yazın
  7. Konfiqurasiya edilmiş server üçün snapshot yaradın
  8. "Server şablonu" açılan siyahıdan əvvəl yaradılmış snapshot seçərək yeni virtual server sifariş edin
  9. Serverin uğurlu yaradılması halında, 6-cı addımda alınan materialları texniki dəstəyə köçürün
  10. Səhv olarsa, dəstəyin səbəbini yoxlaya və quraşdırmanı təkrarlaya bilərsiniz

Biznes sahibləri üçün: proqram təminatınızı təklif edin

Əgər siz VPS-də yerləşdirilən və istifadə olunan proqram təminatı tərtibatçısısınızsa, biz sizi bazara daxil edə bilərik. Beləliklə, biz sizə yeni müştərilər, trafik və görünürlük gətirməyə kömək edə bilərik. Bizə yazın

Hansı görüntü üçün darıxdığınızı şərhlərdə bizə bildirin?

Və özümüz hazırlayacağıq

Centos 9-də Drupal 8 ilə VPS Şablonunun yaradılması

Centos 9-də Drupal 8 ilə VPS Şablonunun yaradılması

Mənbə: www.habr.com