Paghimo usa ka Template sa VPS nga adunay Drupal 9 sa Centos 8

Nagpadayon kami sa pagpalapad sa among merkado. Bag-ohay lang kami nagsulti kanimo kung giunsa naghimo og imahe sa Gitlab, ug niining semanaha si Drupal mitungha sa among tiyanggihan.

Gisultihan ka namo kung nganong gipili namo siya ug giunsa paghimo ang imahe.

Paghimo usa ka Template sa VPS nga adunay Drupal 9 sa Centos 8

Drupal β€” usa ka kombenyente ug gamhanan nga plataporma alang sa paghimo sa bisan unsang matang sa website: gikan sa microsites ug blogs ngadto sa dagkong sosyal nga mga proyekto, gigamit usab isip basehan sa mga aplikasyon sa web, gisulat sa PHP ug paggamit sa relational databases isip pagtipig sa datos.

Ang Drupal 9 naglakip sa tanan nga mga bahin nga gipaila sa bersyon 8.9. Ang yawe nga kalainan tali sa bersyon 9 ug bersyon 8 mao nga ang plataporma magpadayon nga makadawat mga update ug pag-ayo sa seguridad pagkahuman sa Nobyembre 2021. Ang Bersyon 9 nagpasimple usab sa proseso sa pag-update, nga naghimo sa proseso sa pag-upgrade gikan sa bersyon 8 nga labi ka dali.

Mga kinahanglanon sa server

Sa paggamit sa Drupal, kini girekomendar sa paggamit sa 2 GB RAM ug 2 CPU cores.

Ang mga nag-unang Drupal nga mga file adunay mga 100 MB, dugang pa magkinahanglan ka og luna sa pagtipig sa mga hulagway, database, mga tema, dugang nga mga module ug mga backup, nga magdepende sa gidak-on sa imong site.

Ang Drupal 9 nanginahanglan PHP 7.4 o mas taas nga adunay minimum nga limitasyon (memory_limit) alang sa 64 MB nga panumduman; kung dugang nga mga module ang gigamit, girekomenda nga i-install ang 128 MB.

Ang Drupal makagamit sa Apache o Nginx isip web server, ug MySQL, PostgreSQL o SQLite isip database.

I-install namon ang Drupal gamit ang Nginx ug MySQL.

Pag-instalar

Atong i-update ang na-install nga mga pakete sa pinakabag-o nga bersyon:

sudo dnf update -y

Atong idugang ang permanente nga pagtugot alang sa umaabot nga trapiko sa http/80 ug https/443 nga mga pantalan:

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

Atong gamiton ang bag-ong mga lagda sa firewall:

sudo systemctl reload firewalld

Atong i-install ang Nginx:

sudo dnf install nginx -y

Magsugod kita ug mahimo ang Nginx server:

sudo systemctl start nginx
sudo systemctl enable nginx

Tungod kay ang nag-unang Centos repository karon naggamit sa PHP 7.2, magdugang ta ug REMI repository nga adunay PHP 7.4 (minimum nga bersyon para sa Drupal 9).
Aron mahimo kini, idugang ang EPEL repository (gikinahanglan sa REMI repository):

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

Atong idugang ang REMI repository:

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

Atong palihokon ang php:remi-7.4 module aron ma-install ang php 7.4:

sudo dnf module enable php:remi-7.4 -y

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

sudo dnf install -y php-fpm php-cli

Atong i-install ang PHP modules nga gikinahanglan alang sa Drupal nga magtrabaho:

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

I-install usab namo ang girekomendar nga PHP mbstring opcache modules:

sudo dnf install -y php-mbstring php-opcache

Atong i-install ang MySQL server:

sudo dnf install mysql-server -y

Atong i-on ug sugdan ang MySQL server:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Tungod kay naghimo kami usa ka template alang sa VDS, ug mahimo silang hinay, magdugang kami usa ka paglangan sa pagsugod sa mysqld nga 30 segundos, kung dili mahimo nga adunay mga problema sa server nga nagsugod sa panahon sa inisyal nga boot sa sistema:

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

Atong usbon ang grupo ug user diin ang nginx modagan pinaagi sa paghimo og mga kausaban 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

Atong usbon ang tag-iya sa PHP sessions directory sa nginx sumala niana:

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

Atong tangtangon ang mga linya nga adunay mga komento gikan sa configuration file /etc/nginx/nginx.conf (aron walay double trigger para sa sed):

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

Idugang ang gzip compression settings 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

Atong idugang ang mga setting sa index file 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

Atong idugang ang mga setting para sa default server: PHP processing pinaagi sa php-fpm socket, disable ang log para sa static files, dugangan ang expire time, disable ang access ug error log para sa favicon.ico ug robots.txt, ug i-deny ang access sa .ht mga file para sa tanan:

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

I-install ang wget nga gikinahanglan alang sa pag-instalar sa certbot:

sudo dnf install wget -y

I-download ang certbot executable file gikan sa offsite:

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

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

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

Ug itudlo nato ang mga katungod isip tag-iya sa pag-root:

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

Atong i-install ang mga dependency sa certbot ug niining yugtoa mabalda ang trabaho niini (Mga tubag: Y, c):

certbot-auto

Atong i-download ang archive nga adunay pinakabag-o nga bersyon sa Drupal 9 gikan sa offsite:

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

I-install ang tar aron ma-unpack ang archive:

sudo dnf install tar -y

Atong tangtangon ang mga default file sa /usr/share/nginx/html/ directory:

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

Atong ablihan ang mga file ngadto sa direktoryo sa web server:

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

Atong ibalhin ang mga file gikan sa subdirectory ngadto sa root directory sa web server:

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

Atong tangtangon ang subdirectory:

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

Atong tangtangon ang archive nga adunay mga file sa pag-install:

rm -f ./tar.gz

Atong i-assign ang tag-iya sa nginx files:

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

Niini nga yugto atong palongon ang server ug kuhaon ang usa ka snapshot:

shutdown -h now

Pagkahuman sa paglansad sa VDS gikan sa snapshot, himuon namon ang inisyal nga pag-setup sa MySQL server pinaagi sa pagpadagan sa script:

mysql_secure_installation

Atong palihokon ang validator sa password:

Would you like to setup VALIDATE PASSWORD component? : y

Atong ibutang ang password alang sa MySQL root user:

New password:
Re-enter new password:

Atong tangtangon ang anonymous nga tiggamit:

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

Atong pugngan ang gamut gikan sa pagkonektar sa layo:

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

Atong papason ang test database:

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

Atong i-reload ang mga privilege table:

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

Human niini, aron makompleto ang pag-instalar, makaadto kita sa vps_ip_address
Sa kini nga adres makita namon ang panid sa pag-install sa Drupal.

Atong pilion ang lengguwahe nga gamiton. Pananglitan: Russian. I-klik ang β€œSave and Continue”

Pagpili usa ka profile sa pag-install (ang demo gigamit lamang aron pamilyar ang imong kaugalingon sa sistema). Sa among kahimtang, himoa kini nga "standard".

Sa sunod nga panid maghatag kami usa ka ngalan sa database, pananglitan "drupal". Atong ipaila ang database user name root ug ang password nga gihatag kaniya sa dihang nagdagan sa mysql_secure_installation. I-klik ang "Save and Continue."

Atong hulaton ang pag-instalar ug pag-update sa mga hubad nga makompleto (ang proseso mahimong molungtad og pipila ka minuto).

Ipaila namo ang ngalan sa site, ibutang ang email sa site (sa ngalan nga ipadala ang mga abiso sa site), login, password ug email sa Drupal administrator account. Atong itakda usab ang nasud ug time zone sa mga setting sa rehiyon. Ug kompletoha ang pag-instalar pinaagi sa pag-klik sa "Save and Continue".

Human niini, makaadto ka sa control panel gamit ang gibuhat nga Drupal administrator login ug password.

Pag-set up sa HTTPS (opsyonal)

Aron ma-configure ang HTTPS, ang VDS kinahanglan adunay balido nga ngalan sa DNS, ipiho sa

/etc/nginx/nginx.conf

sa seksyon sa server ang ngalan sa server (pananglitan):

server_name  domainname.ru;

Atong i-restart ang nginx:

service nginx restart

Atong ilunsad ang certbot:

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

Pagsulod sa imong e-mail, pag-uyon sa mga termino sa serbisyo (A), Pag-subscribe sa newsletter (opsyonal) (N), pilia ang mga ngalan sa domain nga gusto nimong hatagan usa ka sertipiko (Pagsulod para sa tanan).

Kung wala’y mga sayup ang tanan, makakita kami usa ka mensahe bahin sa malampuson nga pag-isyu sa mga sertipiko ug pag-configure sa server:

Congratulations! You have successfully enabled ...

Pagkahuman niini, ang mga koneksyon sa port 80 i-redirect sa 443 (https).

Idugang sa /etc/crontab aron awtomatiko nga ma-update ang mga sertipiko:

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

Pag-set up sa Trusted Host Security (girekomenda)

Kini nga setting gituyo isip solusyon sa problema nga nalangkit sa dinamikong base_url determinasyon, ug gidesinyo aron mapugngan ang mga pag-atake sa HTTP HOST Header (kung ang imong site naghunahuna nga kini usa ka tawo).

Aron mahimo kini, kinahanglan nimo nga ipiho ang kasaligan nga mga ngalan sa domain alang sa site sa file sa mga setting.

Sa file

/usr/share/nginx/html/sites/default/settings.php Atong i-uncomment o idugang ang usa ka setting nga adunay mga pattern sa aktwal nga mga ngalan sa site, pananglitan:

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

Pag-instalar sa PHP APCu (GIREKOMENDASYON)

Gisuportahan sa Drupal ang APCu - Alternatibong PHP User Cache, ang mga bersyon 8 ug 9 labi nga gigamit ang APCu ingon usa ka hamubo nga lokal nga cache kaysa sa mga nauna nga bersyon. Ang default nga gidak-on sa cache (32 MB) angay alang sa kadaghanan sa mga site, ug dili molapas sa 512 MB.

Aron ma-activate, i-install ang PHP APCu module:

dnf -y install php-pecl-apcu

I-restart ang nginx ug php-fpm:

service nginx restart
service php-fpm restart

Kung mogamit ka sa pinulongang Ruso ug APCu nga adunay girekomenda nga gidak-on sa memorya alang sa cache, mahimo nimong makita ang usa ka pasidaan sa control panel nga ang gidak-on sa gigahin nga memorya alang sa cache lahi sa girekomenda, apan sa tinuud ang tanan nagtrabaho sa husto, ug ang sayop nga pasidaan lagmit matul-id sa sunod nga mga update.

O kung ang pasidaan makasakit sa imong mga mata, mahimo nimong gamiton katugbang nga patch gikan sa offsite.

Gusto namong ipahinumdom kanimo nga mahimo ka usab nga maghimo usa ka imahe alang kanamo

Adunay tulo ka mga kapilian kung unsaon pag-apil.

Pag-andam sa imahe sa imong kaugalingon ug pagkuha sa 3000 nga mga rubles sa imong balanse

Kung andam ka nga magdali dayon sa gubat ug maghimo sa imahe nga nawala kanimo, hatagan ka namon 3000 nga mga rubles sa imong internal nga balanse, nga mahimo nimong igasto sa mga server.

Giunsa paghimo ang imong kaugalingon nga imahe:

  1. Paghimo og account uban kanamo sa site
  2. Pahibalo sa suporta nga maghimo ka ug magsulay sa mga imahe
  3. Ihatag namon kanimo ang 3000 nga mga rubles ug hatagan ang abilidad sa paghimo og mga snapshot
  4. Pag-order sa usa ka virtual server nga adunay limpyo nga operating system
  5. I-install ang software niini nga VPS ug i-configure kini
  6. Pagsulat og mga instruksyon o script para sa software deployment
  7. Paghimo og snapshot alang sa gi-configure nga server
  8. Pag-order og bag-ong virtual server pinaagi sa pagpili sa nabuhat na nga snapshot sa drop-down list nga "Server template".
  9. Kung ang server malampuson nga nahimo, ibalhin ang mga materyales nga nadawat sa yugto 6 sa teknikal nga suporta
  10. Kung adunay sayup, mahimo nimong susihon ang suporta alang sa hinungdan ug balikon ang pag-setup

Para sa mga tag-iya og negosyo: itanyag ang imong software

Kung ikaw usa ka software developer nga gipakatap ug gigamit sa VPS, nan mahimo ka namon ilakip sa merkado. Kini ang paagi nga kami makatabang kanimo sa pagdala sa mga bag-ong kustomer, trapiko ug kahibalo. Isulat kami

Sultihi kami sa mga komento kung unsang imahe ang nawala nimo?

Ug kami mismo ang mag-andam niini

Paghimo usa ka Template sa VPS nga adunay Drupal 9 sa Centos 8

Paghimo usa ka Template sa VPS nga adunay Drupal 9 sa Centos 8

Source: www.habr.com