Ke hana ʻana i kahi template VPS me Drupal 9 ma Centos 8

Hoʻomau mākou i ka hoʻonui ʻana i kā mākou mākeke. Ua haʻi aku nei mākou iā ʻoe pehea hana i kahi kiʻi Gitlab, a i kēia pule ua ʻike ʻia ʻo Drupal ma kā mākou mākeke.

Haʻi mākou iā ʻoe i ke kumu i koho ai mākou iā ia a pehea i hana ʻia ai ke kiʻi.

Ke hana ʻana i kahi template VPS me Drupal 9 ma Centos 8

Drupal - he kahua maʻalahi a ikaika no ka hana ʻana i kekahi ʻano o ka pūnaewele: mai nā microsites a me nā blogs a i nā papahana kaiapili nui, hoʻohana pū ʻia ma ke ʻano he kumu no nā noi pūnaewele, kākau ʻia ma PHP a me ka hoʻohana ʻana i nā ʻikepili pili e like me kahi mālama ʻikepili.

Hoʻokomo ʻo Drupal 9 i nā hiʻohiʻona āpau i hoʻokomo ʻia i ka mana 8.9. ʻO ka ʻokoʻa koʻikoʻi ma waena o ka mana 9 a me ka mana 8 ʻo ia ka hoʻomau ʻana o ka paepae e loaʻa i nā mea hou a me nā hoʻoponopono palekana ma hope o Nowemapa 2021. Hoʻomaʻamaʻa ʻo 9 i ke kaʻina hana hou, e maʻalahi ke kaʻina hana o ka hoʻonui ʻana mai ka mana 8.

Nā koi kikowaena

No ka hoʻohana ʻana iā Drupal, ʻōlelo ʻia e hoʻohana i ka 2 GB RAM a me 2 cores CPU.

Lawe ʻia nā faila Drupal nui ma kahi o 100 MB, ʻoi aku ka mea e pono ai ʻoe i kahi e mālama ai i nā kiʻi, waihona, nā kumumanaʻo, nā modula hou a me nā backup, e hilinaʻi ʻia i ka nui o kāu pūnaewele.

Pono ʻo Drupal 9 i ka PHP 7.4 a i ʻole ke kiʻekiʻe me ka palena liʻiliʻi (memory_limit) no ka hoʻomanaʻo 64 MB; inā hoʻohana ʻia nā modula ʻē aʻe, pono e hoʻokomo i ka 128 MB.

Hiki iā Drupal ke hoʻohana iā Apache a i ʻole Nginx ma ke ʻano he kikowaena pūnaewele, a me MySQL, PostgreSQL a i ʻole SQLite ma ke ʻano he waihona.

E hoʻokomo mākou iā Drupal me ka hoʻohana ʻana iā Nginx a me MySQL.

Kāu Mau Koho Paʻamau

E hōʻano hou i nā pūʻolo i hoʻokomo ʻia i ka mana hou loa:

sudo dnf update -y

E hoʻohui i ka ʻae paʻa no ka hele ʻana mai i nā awa http/80 a me https/443:

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

E hoʻohana kākou i nā lula pā ahi hou:

sudo systemctl reload firewalld

E hoʻokomo iā Nginx:

sudo dnf install nginx -y

E hoʻomaka a hiki i ka server Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

No ka mea ke hoʻohana nei ka waihona Centos nui i ka PHP 7.2, e hoʻohui i kahi waihona REMI me PHP 7.4 (ka palena liʻiliʻi no Drupal 9).
No ka hana ʻana i kēia, hoʻohui i ka waihona EPEL (koi ʻia e ka waihona REMI):

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

E hoʻohui i ka waihona REMI:

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

E ʻae kākou i ka module php:remi-7.4 e hoʻokomo i ka php 7.4:

sudo dnf module enable php:remi-7.4 -y

E hoʻouka i ka php-fpm a me php-cli:

sudo dnf install -y php-fpm php-cli

E hoʻokomo i nā modula PHP e pono ai no Drupal e hana:

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

E hoʻokomo pū mākou i nā modula PHP mbstring opcache i manaʻo ʻia:

sudo dnf install -y php-mbstring php-opcache

E hoʻokomo i ka server MySQL:

sudo dnf install mysql-server -y

E hoʻā a hoʻomaka i ka server MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

No ka mea, ke hana nei mākou i kahi hoʻohālike no VDS, a hiki ke lohi, e hoʻohui mākou i ka hoʻomaka ʻana o ka mysqld lohi o 30 kekona, inā ʻaʻole hiki ke pilikia me ka hoʻomaka ʻana o ka server i ka wā o ka boot system mua:

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

E hoʻololi i ka hui a me ka mea hoʻohana ma lalo o ka nginx e holo ai ma ka hana ʻana i nā loli i /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

E hoʻololi kākou i ka mea nona ka papa kuhikuhi papa kuhikuhi PHP i ka nginx e like me:

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

E wehe mākou i nā laina me nā manaʻo mai ka faila hoʻonohonoho /etc/nginx/nginx.conf (i ʻole nā ​​mea hoʻoiho pālua no ka sed):

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

Hoʻohui i nā hoʻonohonoho kōmike gzip i /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

E hoʻohui i nā hoʻonohonoho o ka faila index.php i /etc/nginx/nginx.conf:

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

E hoʻohui i nā hoʻonohonoho no ke kikowaena paʻamau: ka hoʻoponopono PHP ma o ka php-fpm socket, hoʻopau i ka log no nā faila static, hoʻonui i ka manawa pau, hoʻopau i ke komo a me ka log error no favicon.ico a me robots.txt, a hōʻole i ke komo ʻana i .ht nā faila no nā mea a pau:

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

Pono e hoʻouka i ka wget no ka hoʻokomo ʻana i ka certbot:

sudo dnf install wget -y

Hoʻoiho i ka faila hoʻokō certbot mai ka pūnaewele waho:

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

E neʻe i ka certbot i /usr/local/bin/:

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

A e hāʻawi mākou i nā kuleana ma ke ʻano he mea nona ke aʻa:

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

E hoʻokomo i nā hilinaʻi certbot a i kēia manawa e hoʻopau i kāna hana (Nā pane: Y, c):

certbot-auto

E hoʻoiho i ka waihona me ka mana hou o Drupal 9 mai waho o ka pūnaewele:

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

E hoʻouka i ka tar e wehe i ka waihona:

sudo dnf install tar -y

E holoi mākou i nā faila paʻamau i ka /usr/share/nginx/html/ directory:

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

E wehe mākou i nā faila i loko o ka papa kuhikuhi kikowaena pūnaewele:

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

E hoʻoneʻe i nā faila mai ka subdirectory a i ka papa kuhikuhi kumu o ke kikowaena pūnaewele:

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

E holoi mākou i ka papa kuhikuhi:

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

E holoi mākou i ka waihona me nā faila hoʻonohonoho:

rm -f ./tar.gz

E hāʻawi i ka mea nona nā faila nginx:

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

I kēia manawa e hoʻopau mākou i ke kikowaena a lawe i kahi kiʻi:

shutdown -h now

Ma hope o ka hoʻokuʻu ʻana i ka VDS mai ka snapshot, e hana mākou i ka hoʻonohonoho mua o ka server MySQL ma ka holo ʻana i ka palapala:

mysql_secure_installation

E ho'ā kākou i ka mea hōʻoia ʻōlelo huna:

Would you like to setup VALIDATE PASSWORD component? : y

E hoʻonoho i ka ʻōlelo huna no ka mea hoʻohana kumu MySQL:

New password:
Re-enter new password:

E wehe mākou i nā mea hoʻohana inoa ʻole:

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

E ʻae kākou i ke aʻa mai ka hoʻopili mamao ʻana:

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

E holoi mākou i ka ʻikepili hoʻāʻo:

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

E hoʻouka hou i nā papa pono:

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

Ma hope o kēia, e hoʻopau i ke kau ʻana, hiki iā mākou ke hele i vps_ip_address
Ma kēia helu wahi e ʻike mākou i ka ʻaoʻao hoʻonohonoho Drupal.

E koho kākou i ka ʻōlelo e hoʻohana ai. Eia kekahi laʻana: Lūkini. Kaomi "Save and Continue"

E koho mākou i kahi ʻaoʻao hoʻonohonoho (hoʻohana wale ʻia ka demo e hoʻomaʻamaʻa iā ʻoe iho me ka ʻōnaehana). I kā mākou hihia, e "maʻamau".

Ma ka ʻaoʻao aʻe e hāʻawi mākou i kahi inoa i ka waihona, no ka laʻana "drupal". E hōʻike i ke kumu inoa mea hoʻohana waihona a me ka ʻōlelo huna i hāʻawi ʻia iā ia i ka wā e holo ana i ka mysql_secure_installation. Kaomi "Save and Continue."

E kali kākou a pau ka hoʻokomo ʻana a me ka hoʻopou hou ʻana o nā unuhi (e lōʻihi paha ke kaʻina hana).

E hōʻike mākou i ka inoa o ka pūnaewele, hoʻonohonoho i ka leka uila o ka pūnaewele (no ka mea e hoʻouna ʻia ai nā leka hoʻomaopopo pūnaewele), ka inoa inoa, ka ʻōlelo huna a me ka leka uila o ka moʻokāki Drupal. E hoʻonohonoho pū mākou i ka ʻāina a me ka palena manawa i nā hoʻonohonoho kūloko. A hoʻopau i ka hoʻonohonoho ʻana ma ke kaomi ʻana "Save and Continue".

Ma hope o kēia, hiki iā ʻoe ke hele i ka papa hoʻokele me ka hoʻokumu ʻana o ka luna hoʻomalu Drupal a me ka ʻōlelo huna.

Hoʻonohonoho ʻana i ka HTTPS (koho)

No ka hoʻonohonoho ʻana i ka HTTPS, pono e loaʻa i ka VDS kahi inoa DNS kūpono, e kuhikuhi i loko

/etc/nginx/nginx.conf

ma ka ʻāpana kikowaena ka inoa kikowaena (no ka laʻana):

server_name  domainname.ru;

E hoʻomaka hou i ka nginx:

service nginx restart

E hoʻomaka kākou i ka certbot:

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

E hoʻokomo i kāu leka uila, e ʻae i nā ʻōlelo o ka lawelawe (A), E kau inoa i ka nūhou (koho) (N), koho i nā inoa inoa āu e makemake ai e hoʻopuka i kahi palapala (E komo no nā mea āpau).

Inā hele hewa nā mea a pau, e ʻike mākou i kahi leka e pili ana i ka hoʻopuka kūleʻa o nā palapala hōʻoia a me ka hoʻonohonoho kikowaena:

Congratulations! You have successfully enabled ...

Ma hope o kēia, e hoʻihoʻi ʻia nā pilina i ke awa 80 i 443 (https).

Hoʻohui i /etc/crontab e hoʻohou i nā palapala hōʻoia:

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

Hoʻonohonoho ʻana i ka palekana Host Trusted (manaʻo ʻia)

Ua manaʻo ʻia kēia hoʻonohonoho i mea e hoʻonā ai i ka pilikia pili i ka hoʻoholo base_url ikaika, a ua hoʻolālā ʻia e pale aku i ka hoʻouka ʻana o HTTP HOST Header (ke manaʻo kāu pūnaewele he mea ʻē aʻe ia).

No ka hana ʻana i kēia, pono ʻoe e kuhikuhi i nā inoa inoa hilinaʻi no ka pūnaewele ma ka faila hoʻonohonoho.

Ma ka waihona

/usr/share/nginx/html/sites/default/settings.php E wehe a hoʻohui i kahi hoʻonohonoho me nā hiʻohiʻona o nā inoa pūnaewele maoli, no ka laʻana:

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

Hoʻokomo ʻia ʻo PHP APCu (HOʻOʻI)

Kākoʻo ʻo Drupal iā APCu - ʻO ka mea hoʻohana ʻē aʻe PHP Cache, nā mana 8 a me 9 e hoʻohana ʻoi aku ka hoʻohana ʻana iā APCu ma ke ʻano he hūnā kūloko pōkole ma mua o nā mana o mua. He kūpono ka nui huna huna (32 MB) no ka hapa nui o nā pūnaewele, a ʻaʻole hiki ke ʻoi aku ma mua o 512 MB.

No ka ho'ā ʻana, e hoʻokomo i ka module PHP APCu:

dnf -y install php-pecl-apcu

E hoʻomaka hou i ka nginx a me php-fpm:

service nginx restart
service php-fpm restart

Inā ʻoe e hoʻohana i ka ʻōlelo Lūkini a me ka APCu me ka nui o ka hoʻomanaʻo ʻana no ka cache, ʻike paha ʻoe i kahi ʻōlelo aʻo ma ka panel control e ʻokoʻa ka nui o ka hoʻomanaʻo i hoʻokaʻawale ʻia no ka cache, akā ʻoiaʻiʻo, hana pololei nā mea a pau. a e hoʻoponopono ʻia ka ʻōlelo aʻo hewa i nā mea hou e hiki mai ana.

A i ʻole inā ʻeha ka ʻōlelo aʻo i kou mau maka, hiki iā ʻoe ke hoʻohana pili pili mai waho o ka pūnaewele.

Makemake mākou e hoʻomanaʻo iā ʻoe hiki iā ʻoe ke hana i kiʻi no mākou

ʻEkolu mau koho no ke komo ʻana.

E hoʻomākaukau i ke kiʻi iā ʻoe iho a loaʻa iā 3000 rubles i kāu kaulike

Inā mākaukau ʻoe e wikiwiki koke i ke kaua a hana i ke kiʻi āu e nalowale nei, e hōʻaiʻē mākou iā ʻoe me 3000 rubles i kāu kaulike kūloko, hiki iā ʻoe ke hoʻolilo ma nā kikowaena.

Pehea e hana ai i kāu kiʻi ponoʻī:

  1. E hana i moʻokāki me mākou ma kahua pūnaewele
  2. E hōʻike i ke kākoʻo e hana ana ʻoe a hoʻāʻo i nā kiʻi
  3. E hōʻaiʻē mākou iā ʻoe i 3000 rubles a hiki i ka hiki ke hana i nā snapshot
  4. E kauoha i kahi kikowaena virtual me kahi ʻōnaehana hana maʻemaʻe
  5. E hoʻouka i ka polokalamu ma kēia VPS a hoʻonohonoho iā ia
  6. Kākau i nā ʻōlelo aʻo a i ʻole ka palapala no ka hoʻolaha ʻana i nā polokalamu
  7. E hana i kahi paʻi kiʻi no ke kikowaena i hoʻonohonoho ʻia
  8. E kauoha i kahi kikowaena virtual hou ma ke koho ʻana i ka paʻi kiʻi i hana mua ʻia ma ka papa inoa hāʻule iho "Server template".
  9. Inā hana maikaʻi ʻia ke kikowaena, e hoʻololi i nā mea i loaʻa ma ka ʻanuʻu 6 i ke kākoʻo ʻenehana
  10. Inā he hewa, hiki iā ʻoe ke nānā me ke kākoʻo no ke kumu a hana hou i ka hoʻonohonoho

No nā mea ʻoihana: hāʻawi i kāu polokalamu

Inā he polokalamu polokalamu ʻoe i kau ʻia a hoʻohana ʻia ma VPS, a laila hiki iā mākou ke hoʻokomo iā ʻoe i ka mākeke. ʻO kēia ke ala e hiki ai iā mākou ke kōkua iā ʻoe e lawe mai i nā mea kūʻai aku hou, kaʻa a me ka ʻike. Kākau iā mākou

E haʻi mai iā mākou ma nā manaʻo he aha ke kiʻi āu e nalo nei?

A na makou no e hoomakaukau

Ke hana ʻana i kahi template VPS me Drupal 9 ma Centos 8

Ke hana ʻana i kahi template VPS me Drupal 9 ma Centos 8

Source: www.habr.com