Nggawe template VPS karo Drupal 9 ing Centos 8

Kita terus ngembangake pasar kita. We bubar marang sampeyan carane nggawe gambar Gitlab, lan minggu iki Drupal muncul ing pasar kita.

Kita pitutur marang kowe kenapa kita milih dheweke lan carane gambar kasebut digawe.

Nggawe template VPS karo Drupal 9 ing Centos 8

Drupal - platform sing trep lan kuat kanggo nggawe situs web apa wae: saka microsites lan blog menyang proyek sosial gedhe, uga digunakake minangka basis kanggo aplikasi web, ditulis ing PHP lan nggunakake database relasional minangka panyimpenan data.

Drupal 9 kalebu kabeh fitur sing dikenalake ing versi 8.9. Bentenane utama ing antarane versi 9 lan versi 8 yaiku platform kasebut bakal terus nampa nganyari lan perbaikan keamanan sawise Nopember 2021. Versi 9 uga nyederhanakake proses nganyari, nggawe proses nganyarke saka versi 8 luwih gampang.

syarat server

Kanggo nggunakake Drupal, disaranake nggunakake 2 GB RAM lan 2 inti CPU.

File Drupal utama njupuk kira-kira 100 MB, saliyane sampeyan butuh papan kanggo nyimpen gambar, database, tema, modul tambahan lan serep, sing bakal gumantung saka ukuran situs sampeyan.

Drupal 9 mbutuhake PHP 7.4 utawa luwih dhuwur kanthi watesan minimal (memory_limit) kanggo memori 64 MB; yen modul tambahan digunakake, dianjurake kanggo nginstal 128 MB.

Drupal bisa nggunakake Apache utawa Nginx minangka server web, lan MySQL, PostgreSQL utawa SQLite minangka basis data.

Kita bakal nginstal Drupal nggunakake Nginx lan MySQL.

Instalasi

Ayo nganyari paket sing diinstal menyang versi paling anyar:

sudo dnf update -y

Ayo nambah ijin permanen kanggo lalu lintas mlebu menyang port http/80 lan https/443:

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

Ayo aplikasi aturan firewall anyar:

sudo systemctl reload firewalld

Ayo nginstal Nginx:

sudo dnf install nginx -y

Ayo miwiti lan ngaktifake server Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Wiwit repositori Centos utama saiki nggunakake PHP 7.2, ayo tambahake repositori REMI nganggo PHP 7.4 (versi minimal kanggo Drupal 9).
Kanggo nindakake iki, tambahake repositori EPEL (dibutuhake dening repositori REMI):

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

Ayo tambahake repositori REMI:

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

Ayo aktifake modul php:remi-7.4 kanggo nginstal php 7.4:

sudo dnf module enable php:remi-7.4 -y

Instal php-fpm lan php-cli:

sudo dnf install -y php-fpm php-cli

Ayo nginstal modul PHP sing dibutuhake kanggo Drupal bisa digunakake:

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

Kita uga bakal nginstal modul opcache mbstring PHP sing disaranake:

sudo dnf install -y php-mbstring php-opcache

Ayo nginstal server MySQL:

sudo dnf install mysql-server -y

Ayo nguripake lan miwiti server MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Awit kita nggawe cithakan kanggo VDS, lan padha bisa alon, kita bakal nambah wektu tundha wiwitan mysqld 30 detik, yen ora ana masalah karo server miwiti sak boot sistem dhisikan:

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

Ayo ngganti grup lan pangguna ing ngendi nginx bakal mbukak kanthi nggawe pangowahan menyang /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

Ayo ngganti pemilik direktori sesi PHP dadi nginx:

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

Ayo mbusak garis kanthi komentar saka file konfigurasi /etc/nginx/nginx.conf (supaya ora ana pemicu ganda kanggo sed):

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

Tambah setelan kompresi gzip menyang /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

Ayo ditambahake setelan file indeks index.php menyang /etc/nginx/nginx.conf:

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

Ayo nambah setelan kanggo server standar: pangolahan PHP liwat soket php-fpm, mateni log kanggo file statis, nambah wektu kadaluwarsa, mateni akses lan log kesalahan kanggo favicon.ico lan robots.txt, lan nolak akses menyang .ht file kanggo kabeh wong:

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

Instal wget dibutuhake kanggo nginstal certbot:

sudo dnf install wget -y

Download file eksekusi certbot saka situs web:

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

Pindhah certbot menyang /usr/local/bin/:

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

Lan ayo menehi hak minangka pemilik kanggo root:

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

Ayo nginstal dependensi certbot lan ing tahap iki ngganggu karyane (Jawaban: Y, c):

certbot-auto

Ayo download arsip nganggo versi paling anyar saka Drupal 9 saka offsite:

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

Instal tar kanggo mbongkar arsip:

sudo dnf install tar -y

Ayo mbusak file standar ing direktori /usr/share/nginx/html/:

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

Ayo mbukak file menyang direktori server web:

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

Ayo mindhah file saka subdirektori menyang direktori root server web:

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

Ayo mbusak subdirektori:

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

Ayo mbusak arsip kanthi file instalasi:

rm -f ./tar.gz

Ayo nemtokake pemilik file nginx:

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

Ing tataran iki kita bakal mateni server lan njupuk gambar asli:

shutdown -h now

Sawise mbukak VDS saka snapshot, kita bakal nindakake persiyapan awal server MySQL kanthi mbukak skrip:

mysql_secure_installation

Ayo aktifake validator sandhi:

Would you like to setup VALIDATE PASSWORD component? : y

Ayo nyetel sandhi kanggo pangguna root MySQL:

New password:
Re-enter new password:

Ayo mbusak pangguna anonim:

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

Ayo nyegah root saka nyambungake jarak jauh:

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

Ayo mbusak database test:

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

Ayo ngisi maneh tabel hak istimewa:

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

Sawise iki, kanggo ngrampungake instalasi, kita bisa pindhah menyang vps_ip_alamat
Ing alamat iki kita bakal weruh kaca instalasi Drupal.

Ayo milih basa sing arep digunakake. Contone: Rusian. Klik "Simpen lan Terusake"

Ayo dadi milih profil instalasi (demo digunakake mung kanggo familiarize dhewe karo sistem). Ing kasus kita, supaya dadi "standar".

Ing kaca sabanjure kita bakal menehi jeneng kanggo database, contone "drupal". Ayo nunjukake root jeneng pangguna database lan sandhi sing diwenehake nalika mbukak mysql_secure_installation. Klik "Simpen lan Terusake."

Ayo ngenteni instalasi lan nganyari terjemahan rampung (proses bisa njupuk sawetara menit).

Kita bakal nunjukake jeneng situs kasebut, nyetel email situs (atas jenenge kabar situs bakal dikirim), login, sandhi lan email akun administrator Drupal. Kita uga bakal nyetel negara lan zona wektu ing setelan regional. Lan ngrampungake instalasi kanthi ngeklik "Simpen lan Terusake".

Sawise iki, sampeyan bisa pindhah menyang panel kontrol kanthi login lan sandhi administrator Drupal sing digawe.

Nyetel HTTPS (opsional)

Kanggo ngatur HTTPS, VDS kudu duwe jeneng DNS sing bener, nemtokake ing

/etc/nginx/nginx.conf

ing bagean server jeneng server (contone):

server_name  domainname.ru;

Ayo miwiti maneh nginx:

service nginx restart

Ayo miwiti certbot:

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

Ketik e-mail sampeyan, setuju karo syarat layanan (A), Langganan newsletter (opsional) (N), pilih jeneng domain sing sampeyan pengin ngetokake sertifikat (Ketik kanggo kabeh wong).

Yen kabeh ora ana kesalahan, kita bakal weruh pesen babagan penerbitan sertifikat lan konfigurasi server sing sukses:

Congratulations! You have successfully enabled ...

Sawise iki, sambungan menyang port 80 bakal dialihake menyang 443 (https).

Tambah menyang / etc / crontab kanggo nganyari sertifikat kanthi otomatis:

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

Nyiyapake Keamanan Host Dipercaya (disaranake)

Setelan iki dimaksudake minangka solusi kanggo masalah sing digandhengake karo tekad base_url dinamis, lan dirancang kanggo nyegah serangan HTTP HOST Header (nalika situs sampeyan mikir yen iku wong liya).

Kanggo nindakake iki, sampeyan kudu nemtokake jeneng domain sing dipercaya kanggo situs kasebut ing file setelan.

Ing file

/usr/share/nginx/html/sites/default/settings.php Ayo mbusak komentar utawa nambah setelan kanthi pola jeneng situs sing nyata, contone:

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

Nginstal PHP APCu (RECOMMENDED)

Drupal ndhukung APCu - Cache Pangguna PHP Alternatif, versi 8 lan 9 luwih akeh nggunakake APCu minangka cache lokal jangka pendek tinimbang versi sadurunge. Ukuran cache standar (32 MB) cocok kanggo umume situs, lan ora bisa ngluwihi 512 MB.

Kanggo ngaktifake, instal modul PHP APCu:

dnf -y install php-pecl-apcu

Wiwiti maneh nginx lan php-fpm:

service nginx restart
service php-fpm restart

Yen sampeyan nggunakake basa Rusia lan APCu kanthi ukuran memori sing disaranake kanggo cache, sampeyan bisa ndeleng bebaya ing panel kontrol manawa ukuran memori sing diparengake kanggo cache beda karo sing disaranake, nanging nyatane kabeh bisa digunakake kanthi bener. lan bebaya sing ora bener bakal didandani ing nganyari sabanjure.

Utawa yen bebaya nyengsarakke mripat, sampeyan bisa nggunakake tembelan sing cocog saka offsite.

Kita pengin ngelingake yen sampeyan uga bisa nggawe gambar kanggo kita

Ana telung opsi carane melu.

Siapke gambar dhewe lan entuk 3000 rubel kanggo imbangan sampeyan

Yen sampeyan siyap langsung cepet-cepet perang lan nggawe gambar sing sampeyan kekurangan dhewe, kita bakal menehi kredit sampeyan 3000 rubel kanggo imbangan internal - sampeyan bisa nggunakake ing server.

Cara nggawe gambar sampeyan:

  1. Nggawe akun karo kita situs
  2. Marang dhukungan sing arep nggawe lan nyoba gambar
  3. Kita bakal menehi kredit sampeyan 3000 rubel lan ngaktifake kemampuan kanggo nggawe jepretan
  4. Supaya server virtual kanthi sistem operasi sing resik
  5. Instal piranti lunak ing VPS iki lan atur
  6. Tulis instruksi utawa skrip kanggo panyebaran piranti lunak
  7. Nggawe snapshot kanggo server sing dikonfigurasi
  8. Supaya server virtual anyar kanthi milih gambar sing wis digawe sadurunge ing dhaptar gulung mudhun "Cithakan server".
  9. Yen sukses nggawe server, transfer bahan sing ditampa ing langkah 6 menyang dhukungan teknis
  10. Yen ana kesalahan, sampeyan bisa mriksa kanthi dhukungan kanggo alesan kasebut lan mbaleni persiyapan kasebut

Kanggo pamilik bisnis: nawarake piranti lunak sampeyan

Yen sampeyan minangka pangembang piranti lunak sing dipasang lan digunakake ing VPS, mula kita bisa kalebu sampeyan ing pasar. Iki carane kita bisa mbantu nggawa pelanggan anyar, lalu lintas lan visibilitas. Tulis kita

Marang kita ing komentar gambar apa sampeyan ilang?

Lan kita bakal nyiapake dhewe

Nggawe template VPS karo Drupal 9 ing Centos 8

Nggawe template VPS karo Drupal 9 ing Centos 8

Source: www.habr.com