Paglikha ng VPS Template sa Drupal 9 sa Centos 8

Patuloy naming pinapalawak ang aming marketplace. Sinabi namin sa iyo kamakailan kung paano gumawa ng imahe ng Gitlab, at sa linggong ito ay lumitaw si Drupal sa aming marketplace.

Sinasabi namin sa iyo kung bakit namin siya pinili at kung paano nilikha ang imahe.

Paglikha ng VPS Template sa Drupal 9 sa Centos 8

Drupal ay isang maginhawa at makapangyarihang plataporma para sa paglikha ng anumang uri ng website: mula sa mga microsite at blog hanggang sa malalaking proyektong panlipunan, ginagamit din bilang batayan para sa mga web application, nakasulat sa PHP at paggamit ng mga relational database bilang isang imbakan ng data.

Kasama sa Drupal 9 ang lahat ng mga tampok na ipinakilala sa bersyon 8.9. Ang pangunahing pagkakaiba sa pagitan ng bersyon 9 at bersyon 8 ay ang platform ay patuloy na makakatanggap ng mga update at pag-aayos sa seguridad pagkatapos ng Nobyembre 2021. Pinapasimple din ng Bersyon 9 ang proseso ng pag-update, na ginagawang mas madali ang proseso ng pag-upgrade mula sa bersyon 8.

Mga kinakailangan sa server

Para gamitin ang Drupal, inirerekomendang gumamit ng 2 GB RAM at 2 CPU core.

Ang mga pangunahing Drupal file ay tumatagal ng humigit-kumulang 100 MB, bilang karagdagan kakailanganin mo ng espasyo upang mag-imbak ng mga imahe, database, tema, karagdagang mga module at backup, na depende sa laki ng iyong site.

Ang Drupal 9 ay nangangailangan ng PHP 7.4 o mas mataas na may pinakamababang limitasyon (memory_limit) para sa 64 MB memory; kung ang mga karagdagang module ay ginagamit, inirerekumenda na mag-install ng 128 MB.

Maaaring gamitin ng Drupal ang Apache o Nginx bilang isang web server, at ang MySQL, PostgreSQL o SQLite bilang isang database.

I-install namin ang Drupal gamit ang Nginx at MySQL.

Instalasyon

I-update natin ang mga naka-install na package sa pinakabagong bersyon:

sudo dnf update -y

Magdagdag tayo ng permanenteng pahintulot para sa papasok na trapiko sa http/80 at https/443 port:

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

Ilapat natin ang mga bagong panuntunan sa firewall:

sudo systemctl reload firewalld

I-install natin ang Nginx:

sudo dnf install nginx -y

Simulan natin at paganahin ang Nginx server:

sudo systemctl start nginx
sudo systemctl enable nginx

Dahil ang pangunahing Centos repository ay kasalukuyang gumagamit ng PHP 7.2, magdagdag tayo ng REMI repository na may PHP 7.4 (minimum na bersyon para sa Drupal 9).
Upang gawin ito, idagdag ang EPEL repository (kinakailangan ng REMI repository):

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

Idagdag natin ang REMI repository:

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

Paganahin natin ang php:remi-7.4 module upang mai-install ang php 7.4:

sudo dnf module enable php:remi-7.4 -y

I-install ang php-fpm at php-cli:

sudo dnf install -y php-fpm php-cli

I-install natin ang mga PHP module na kinakailangan para gumana ang Drupal:

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

Ii-install din namin ang inirerekomendang PHP mbstring opcache modules:

sudo dnf install -y php-mbstring php-opcache

I-install natin ang MySQL server:

sudo dnf install mysql-server -y

I-on at simulan natin ang MySQL server:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Dahil gumagawa kami ng template para sa VDS, at maaaring mabagal ang mga ito, magdaragdag kami ng mysqld start delay na 30 segundo, kung hindi, maaaring may mga problema sa pagsisimula ng server sa paunang pag-boot ng system:

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

Baguhin natin ang grupo at user kung saan tatakbo ang nginx sa pamamagitan ng paggawa ng mga pagbabago sa /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

Baguhin natin ang may-ari ng direktoryo ng mga session ng PHP sa nginx nang naaayon:

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

Alisin natin ang mga linyang may mga komento mula sa configuration file /etc/nginx/nginx.conf (upang walang double trigger para sa sed):

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

Magdagdag ng mga setting ng compression ng gzip sa /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

Idagdag natin ang mga setting ng index file na index.php sa /etc/nginx/nginx.conf:

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

Magdagdag tayo ng mga setting para sa default na server: Pagproseso ng PHP sa pamamagitan ng php-fpm socket, huwag paganahin ang log para sa mga static na file, taasan ang oras ng pag-expire, huwag paganahin ang access at error log para sa favicon.ico at robots.txt, at tanggihan ang access sa .ht mga file para sa lahat:

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

Kinakailangan ang pag-install ng wget para sa pag-install ng certbot:

sudo dnf install wget -y

I-download ang certbot executable file mula sa offsite:

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

Ilipat ang certbot sa /usr/local/bin/:

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

At italaga natin ang mga karapatan bilang may-ari sa pag-root:

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

I-install natin ang mga dependency ng certbot at sa yugtong ito ay matakpan ang trabaho nito (Mga Sagot: Y, c):

certbot-auto

I-download natin ang archive gamit ang pinakabagong bersyon ng Drupal 9 mula sa offsite:

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

I-install ang tar upang i-unpack ang archive:

sudo dnf install tar -y

Tanggalin natin ang mga default na file sa /usr/share/nginx/html/ directory:

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

I-unpack natin ang mga file sa direktoryo ng web server:

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

Ilipat natin ang mga file mula sa subdirectory patungo sa root directory ng web server:

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

Tanggalin natin ang subdirectory:

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

Tanggalin natin ang archive na may mga file sa pag-install:

rm -f ./tar.gz

Italaga natin ang may-ari ng nginx file:

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

Sa yugtong ito, isasara namin ang server at kukuha ng snapshot:

shutdown -h now

Pagkatapos ilunsad ang VDS mula sa snapshot, isasagawa namin ang paunang pag-setup ng MySQL server sa pamamagitan ng pagpapatakbo ng script:

mysql_secure_installation

Paganahin natin ang validator ng password:

Would you like to setup VALIDATE PASSWORD component? : y

Itakda natin ang password para sa MySQL root user:

New password:
Re-enter new password:

Alisin natin ang mga hindi kilalang user:

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

Pigilan natin ang root mula sa malayuang pagkonekta:

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

Tanggalin natin ang database ng pagsubok:

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

I-reload natin ang mga talahanayan ng pribilehiyo:

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

Pagkatapos nito, upang makumpleto ang pag-install, maaari kaming pumunta sa vps_ip_address
Sa address na ito makikita natin ang pahina ng pag-install ng Drupal.

Piliin natin ang wikang gagamitin. Halimbawa: Ruso. I-click ang "I-save at Magpatuloy"

Pumili tayo ng isang profile sa pag-install (ang demo ay ginagamit lamang upang maging pamilyar sa system). Sa aming kaso, hayaan itong maging "standard".

Sa susunod na pahina ay magbibigay kami ng pangalan sa database, halimbawa "drupal". Ipahiwatig natin ang database user name root at ang password na ibinigay sa kanya kapag nagpapatakbo ng mysql_secure_installation. I-click ang "I-save at Magpatuloy."

Hintayin nating makumpleto ang pag-install at pag-update ng mga pagsasalin (maaaring tumagal ng ilang minuto ang proseso).

Ipapahiwatig namin ang pangalan ng site, itakda ang email ng site (sa ngalan kung aling mga abiso sa site ang ipapadala), pag-login, password at email ng Drupal administrator account. Itatakda din namin ang bansa at time zone sa mga setting ng rehiyon. At kumpletuhin ang pag-install sa pamamagitan ng pag-click sa "I-save at Magpatuloy".

Pagkatapos nito, maaari kang pumunta sa control panel gamit ang nilikhang Drupal administrator login at password.

Pagse-set up ng HTTPS (opsyonal)

Upang i-configure ang HTTPS, ang VDS ay dapat may wastong pangalan ng DNS, tukuyin sa

/etc/nginx/nginx.conf

sa seksyon ng server ang pangalan ng server (halimbawa):

server_name  domainname.ru;

I-restart natin ang nginx:

service nginx restart

Ilunsad natin ang certbot:

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

Ipasok ang iyong e-mail, sumang-ayon sa mga tuntunin ng serbisyo (A), Mag-subscribe sa newsletter (opsyonal) (N), piliin ang mga domain name kung saan nais mong magbigay ng sertipiko (Ipasok para sa lahat).

Kung ang lahat ay napunta nang walang mga error, makakakita kami ng isang mensahe tungkol sa matagumpay na pagpapalabas ng mga sertipiko at pagsasaayos ng server:

Congratulations! You have successfully enabled ...

Pagkatapos nito, ang mga koneksyon sa port 80 ay ire-redirect sa 443 (https).

Idagdag sa /etc/crontab para awtomatikong i-update ang mga certificate:

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

Pagse-set up ng Trusted Host Security (inirerekomenda)

Ang setting na ito ay inilaan bilang isang solusyon sa problemang nauugnay sa dynamic na base_url na pagpapasiya, at idinisenyo upang maiwasan ang mga pag-atake ng HTTP HOST Header (kapag sa tingin ng iyong site na ito ay ibang tao).

Upang gawin ito, kailangan mong tukuyin ang mga pinagkakatiwalaang pangalan ng domain para sa site sa file ng mga setting.

Nasa file

/usr/share/nginx/html/sites/default/settings.php Alisin natin ang komento o magdagdag ng setting na may mga pattern ng aktwal na mga pangalan ng site, halimbawa:

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

Pag-install ng PHP APCu (INIREREKOMENDASYON)

Sinusuportahan ng Drupal ang APCu - Alternatibong PHP User Cache, ang mga bersyon 8 at 9 ay higit na gumagamit ng APCu bilang isang panandaliang lokal na cache kaysa sa mga nakaraang bersyon. Ang default na laki ng cache (32 MB) ay angkop para sa karamihan ng mga site, at hindi maaaring lumampas sa 512 MB.

Upang i-activate, i-install ang PHP APCu module:

dnf -y install php-pecl-apcu

I-restart ang nginx at php-fpm:

service nginx restart
service php-fpm restart

Kung gumagamit ka ng wikang Ruso at APCu na may inirerekumendang laki ng memorya para sa cache, maaari kang makakita ng babala sa control panel na ang laki ng inilalaang memorya para sa cache ay iba sa inirerekumendang isa, ngunit sa katunayan ang lahat ay gumagana nang tama, at ang maling babala ay malamang na maitama sa mga susunod na update.

O kung ang babala ay masakit sa iyong mga mata, maaari mong gamitin kaukulang patch mula sa offsite.

Nais naming ipaalala sa iyo na maaari ka ring gumawa ng isang imahe para sa amin

May tatlong opsyon kung paano lumahok.

Ihanda ang larawan at kumuha ng 3000 rubles sa iyong balanse

Kung handa ka nang sumugod kaagad sa labanan at lumikha ng larawang nawawala sa iyo, bibigyan ka namin ng 3000 rubles sa iyong panloob na balanse, na maaari mong gastusin sa mga server.

Paano lumikha ng iyong sariling larawan:

  1. Gumawa ng account sa amin sa Online
  2. Ipaalam sa suporta na ikaw ay gagawa at susubok ng mga larawan
  3. Bibigyan ka namin ng 3000 rubles at paganahin ang kakayahang lumikha ng mga snapshot
  4. Mag-order ng virtual server na may malinis na operating system
  5. I-install ang software sa VPS na ito at i-configure ito
  6. Sumulat ng mga tagubilin o script para sa pag-deploy ng software
  7. Gumawa ng snapshot para sa na-configure na server
  8. Mag-order ng bagong virtual server sa pamamagitan ng pagpili sa naunang ginawang snapshot sa drop-down na listahan ng β€œServer template.”
  9. Kung matagumpay na nalikha ang server, ilipat ang mga materyales na natanggap sa yugto 6 sa teknikal na suporta
  10. Kung may error, maaari mong suriin sa suporta ang dahilan at ulitin ang pag-setup

Para sa mga may-ari ng negosyo: ialok ang iyong software

Kung ikaw ay isang software developer na na-deploy at ginagamit sa VPS, maaari ka naming isama sa marketplace. Ito ay kung paano namin matutulungan kang magdala ng mga bagong customer, trapiko at kamalayan. Sumulat sa amin

Sabihin sa amin sa mga komento kung anong larawan ang nawawala mo?

At kami mismo ang maghahanda nito

Paglikha ng VPS Template sa Drupal 9 sa Centos 8

Paglikha ng VPS Template sa Drupal 9 sa Centos 8

Pinagmulan: www.habr.com