Mepụta Template VPS na Drupal 9 na Centos 8

Anyị na-aga n'ihu na-agbasawanye ahịa anyị. Anyị gwara gị na nso nso a otú mere foto Gitlab, na n'izu a Drupal pụtara n'ahịa anyị.

Anyị na-agwa gị ihe mere anyị ji họrọ ya na otú e si kee ihe oyiyi ahụ.

Mepụta Template VPS na Drupal 9 na Centos 8

Drupal - ikpo okwu dị mma ma dị ike maka ịmepụta ụdị weebụsaịtị ọ bụla: site na microsites na blọọgụ na nnukwu ọrụ mmekọrịta ọha na eze, nke a na-ejikwa dị ka ihe ndabere maka ngwa weebụ, nke edere na PHP na iji ọdụ data mmekọrịta dị ka nchekwa data.

Drupal 9 gụnyere atụmatụ niile ewepụtara na ụdị 8.9. Isi ihe dị iche n'etiti ụdị 9 na ụdị 8 bụ na ikpo okwu ga-aga n'ihu na-enweta mmelite yana ndozi nchekwa ka ọnwa Nọvemba 2021 gachara. Ụdị 9 na-emekwa ka usoro mmelite dị mfe, na-eme ka usoro nkwalite site na ụdị 8 dị mfe karị.

Ihe nkesa chọrọ

Iji jiri Drupal, a na-atụ aro ka iji 2 GB Ram na cores 2 CPU.

Isi faịlụ Drupal na-ewe ihe dị ka 100 MB, na mgbakwunye na ị ga-achọ ohere iji chekwaa ihe oyiyi, nchekwa data, isiokwu, modul ndị ọzọ na nkwado ndabere, nke ga-adabere na saịtị gị.

Drupal 9 chọrọ PHP 7.4 ma ọ bụ karịa na njedebe kacha nta (memory_limit) maka ebe nchekwa 64 MB, ma ọ bụrụ na ejiri modulu ndị ọzọ, a na-atụ aro ka ịwụnye 128 MB.

Drupal nwere ike iji Apache ma ọ bụ Nginx dị ka sava weebụ, yana MySQL, PostgreSQL ma ọ bụ SQLite dị ka nchekwa data.

Anyị ga-etinye Drupal site na iji Nginx na MySQL.

ọnọdụ

Ka anyị kwalite ngwungwu arụnyere na ụdị kachasị ọhụrụ:

sudo dnf update -y

Ka anyị tinye ikike na-adịgide adịgide maka okporo ụzọ na-abata na ọdụ ụgbọ mmiri http/80 na https/443:

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

Ka anyị tinye iwu firewall ọhụrụ:

sudo systemctl reload firewalld

Ka anyị tinye Nginx:

sudo dnf install nginx -y

Ka anyị bido wee mee ka sava Nginx rụọ ọrụ:

sudo systemctl start nginx
sudo systemctl enable nginx

Ebe ebe nchekwa Centos bụ isi na-eji PHP 7.2 ugbu a, ka anyị tinye ebe nchekwa REMI na PHP 7.4 (ụdị kacha nta maka Drupal 9).
Iji mee nke a, tinye ebe nchekwa EPEL (nke ebe nchekwa REMI chọrọ):

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

Ka anyị tinye ebe nchekwa REMI:

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

Ka anyị mee ka php: remi-7.4 modul wụnye php 7.4:

sudo dnf module enable php:remi-7.4 -y

Wụnye php-fpm na php-cli:

sudo dnf install -y php-fpm php-cli

Ka anyị tinye modul PHP achọrọ ka Drupal rụọ ọrụ:

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

Anyị ga-etinyekwa modul opcache mbstring PHP akwadoro:

sudo dnf install -y php-mbstring php-opcache

Ka anyị tinye ihe nkesa MySQL:

sudo dnf install mysql-server -y

Ka anyị gbanye wee malite ihe nkesa MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Ebe ọ bụ na anyị na-eme template maka VDS, na ha nwere ike ịdị ngwa ngwa, anyị ga-agbakwunye mysqld mmalite oge nke 30 sekọnd, ma ọ bụghị ya, enwere ike inwe nsogbu na ihe nkesa na-amalite n'oge usoro buut mbụ:

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

Ka anyị gbanwee otu na onye ọrụ nke nginx ga-agba ọsọ site na ime mgbanwe na /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

Ka anyị gbanwee onye nwe akwụkwọ ndekọ oge PHP ka ọ bụrụ nginx otu a:

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

Ka anyị wepụ ahịrị ndị nwere nkọwa sitere na faịlụ nhazi /etc/nginx/nginx.conf (ka ọ ghara inwe ihe mkpali abụọ maka sed):

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

Tinye ntọala mkpakọ gzip na /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

Ka anyị tinye ntọala nke faịlụ index.php na /etc/nginx/nginx.conf:

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

Ka anyị tinye ntọala maka ihe nkesa ndabara: nhazi PHP site na oghere php-fpm, gbanyụọ ndekọ maka faịlụ static, mee ka oge nkwụsị, gbanyụọ ohere ịnweta na njehie favicon.ico na robots.txt, ma jụ ịnweta .ht. faịlụ maka onye ọ bụla:

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

Wụnye wget chọrọ maka ịwụnye certbot:

sudo dnf install wget -y

Budata faịlụ certbot executable site na saịtị:

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

Bugharịa certbot na /usr/local/bin/:

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

Ka anyị kenye ikike dịka onye nwe mgbọrọgwụ:

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

Ka anyị tinye ihe ndabere certbot ma n'oge a kwụsị ọrụ ya (Azịza: Y, c):

certbot-auto

Ka anyị jiri ụdị Drupal 9 kachasị ọhụrụ budata ebe nchekwa ahụ site na saịtị:

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

Wụnye tar ka ịtọpụ ebe nchekwa:

sudo dnf install tar -y

Ka anyị hichapụ faịlụ ndabara na /usr/share/nginx/html/ ndekọ:

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

Ka anyị bupụ faịlụ ndị ahụ na ndekọ ndekọ sava weebụ:

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

Ka anyị bugharịa faịlụ site na subdirectory gaa na ndekọ mgbọrọgwụ nke sava weebụ:

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

Ka anyị hichapụ akwụkwọ ndekọ aha:

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

Ka anyị jiri faịlụ nwụnye hichapụ ebe nchekwa ahụ:

rm -f ./tar.gz

Ka anyị kenye onye nwe faịlụ nginx:

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

N'oge a, anyị ga-agbanyụọ ihe nkesa wee were foto:

shutdown -h now

Mgbe ịmalitechara VDS site na foto, anyị ga-arụ ọrụ nhazi mbụ nke ihe nkesa MySQL site na iji edemede ahụ:

mysql_secure_installation

Ka anyị mee ihe nkwado paswọọdụ:

Would you like to setup VALIDATE PASSWORD component? : y

Ka anyị tọọ paswọọdụ maka onye ọrụ mgbọrọgwụ MySQL:

New password:
Re-enter new password:

Ka anyị wepụ ndị ọrụ na-amaghị aha:

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

Ka anyị gbochie mgbọrọgwụ ịbanye n'ime ime:

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

Ka anyị hichapụ nchekwa data nnwale:

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

Ka anyị bugharịa tebụl ihe ùgwù:

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

Mgbe nke a gasịrị, iji mezue nrụnye, anyị nwere ike ịga vps_ip_adreesị
N'adreesị a anyị ga-ahụ ibe nrụnye Drupal.

Ka anyị họrọ asụsụ anyị ga-eji. Dịka ọmụmaatụ: Russian. Pịa "Chekwa ma gaa n'ihu"

Ka anyị họrọ profaịlụ nwụnye (a na-eji ngosi ahụ naanị iji mara onwe gị na sistemụ ahụ). N'ọnọdụ anyị, ka ọ bụrụ "ọkọlọtọ".

Na ibe na-esote anyị ga-enye aha na nchekwa data, dịka ọmụmaatụ "drupal". Ka anyị gosi mgbọrọgwụ aha njirimara nchekwa data yana paswọọdụ enyere ya mgbe ọ na-agba mysql_secure_installation. Pịa "Chekwa wee gaa n'ihu."

Ka anyị chere ka echichi na nwelite ntụgharị asụsụ ga-agwụcha (usoro a nwere ike were ọtụtụ nkeji).

Anyị ga-egosi aha saịtị ahụ, tọọ email saịtị (n'aha nke a ga-eziga ọkwa saịtị), nbanye, paswọọdụ na email nke akaụntụ nchịkwa Drupal. Anyị ga-edozi obodo na mpaghara oge na ntọala mpaghara. Ma mezue echichi site na ịpị "Chekwa na Gaa n'ihu".

Mgbe nke a gasịrị, ị nwere ike ịga na njikwa njikwa na nbanye Drupal nchịkwa mebere na paswọọdụ.

Ịtọlite ​​​​ HTTPS (nhọrọ)

Iji hazie HTTPS, VDS ga-enwerịrị aha DNS ziri ezi, tinye ya

/etc/nginx/nginx.conf

na ngalaba nkesa aha nkesa (dịka ọmụmaatụ):

server_name  domainname.ru;

Ka anyị malitegharịa nginx:

service nginx restart

Ka anyị malite certbot:

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

Tinye e-mail gị, kwenye na usoro ọrụ (A), Debanye aha na akwụkwọ akụkọ (nhọrọ) (N), họrọ ngalaba aha nke ịchọrọ ịnye akwụkwọ (Tinye maka onye ọ bụla).

Ọ bụrụ na ihe niile na-aga n'enweghị njehie, anyị ga-ahụ ozi gbasara inye asambodo na nhazi nkesa nke ọma:

Congratulations! You have successfully enabled ...

Mgbe nke a gasịrị, a ga-atụgharị njikọ na ọdụ ụgbọ mmiri 80 gaa na 443 (https).

Tinye na /etc/crontab ka imelite asambodo na-akpaghị aka:

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

Ịtọlite ​​Nchekwa Ndị ọbịa tụkwasịrị obi (atụ aro)

Ezubere ntọala a ka ọ bụrụ azịza nye nsogbu metụtara mkpebi siri ike base_url, ma emebere ya iji gbochie mwakpo nkụnye eji isi mee HTTP HOST (mgbe saịtị gị chere na ọ bụ onye ọzọ).

Iji mee nke a, ịkwesịrị ịkọwa aha ngalaba ntụkwasị obi maka saịtị na faịlụ ntọala.

Na faịlụ

/usr/share/nginx/html/sites/default/settings.php Ka anyị ghara ikwu okwu ma ọ bụ tinye ntọala nwere ụkpụrụ nke aha saịtị n'ezie, dịka ọmụmaatụ:

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

Ịwụnye PHP APCu (atụ aro)

Drupal na-akwado APCu - Nhọrọ onye ọrụ PHP, ụdị 8 na 9 na-eji APCu eme ihe dị ka ebe nchekwa mpaghara dị mkpụmkpụ karịa ụdị ndị gara aga. Ogo cache ndabara (32 MB) dabara maka ọtụtụ saịtị, enweghị ike gafere 512 MB.

Iji rụọ ọrụ, wụnye PHP APCu modul:

dnf -y install php-pecl-apcu

Malitegharịa nginx na php-fpm:

service nginx restart
service php-fpm restart

Ọ bụrụ na ị na-eji asụsụ Rọshịa na APCu na nha ebe nchekwa akwadoro maka cache, ị nwere ike ịhụ ịdọ aka ná ntị na njikwa njikwa na nha nke ebe nchekwa ekenyela maka cache dị iche na nke a tụrụ aro, mana n'ezie ihe niile na-arụ ọrụ nke ọma. na ịdọ aka ná ntị na-ezighi ezi ka a ga-edozi ya na mmelite na-esote.

Ma ọ bụ ọ bụrụ na ịdọ aka ná ntị ahụ na-ewute gị anya, ị nwere ike iji Ihe nkwekọ kwekọrọ na saịtị.

Anyị ga-echetara gị na ị nwekwara ike ịmere anyị ihe onyonyo

Enwere nhọrọ atọ maka otu esi etinye aka.

Kwadebe ihe onyonyo a n'onwe gị wee nweta 3000 rubles na nguzozi gị

Ọ bụrụ na ị dị njikere ngwa ngwa ngwa ngwa n'ọgbọ ma mepụta ihe oyiyi ahụ ị na-efu, anyị ga-enye gị ụgwọ 3000 rubles na nguzozi nke ime gị, nke ị nwere ike imefu na sava.

Otu esi emepụta onyonyo nke gị:

  1. Mepụta akaụntụ na anyị saịtị
  2. Mee ka nkwado mara na ị ga-emepụta ma nwalee onyonyo
  3. Anyị ga-enye gị otuto 3000 rubles ma mee ka ike ịmepụta snapshots
  4. Nye iwu ihe nkesa mebere nwere sistemụ arụmọrụ dị ọcha
  5. Wụnye ngwanrọ na VPS a wee hazie ya
  6. Dee ntuziaka ma ọ bụ script maka ibunye ngwanrọ
  7. Mepụta nseta ihuenyo maka ihe nkesa ahaziri
  8. Nye iwu ọhụrụ mebere nkesa site na-ahọpụta mbụ kere snapshot na "Server template" ndọpụta ndepụta
  9. Ọ bụrụ na emepụtara ihe nkesa nke ọma, nyefee ihe ndị enwetara na ọkwa 6 gaa na nkwado teknụzụ
  10. Ọ bụrụ na enwere njehie, ịnwere ike ịlele site na nkwado maka ihe kpatara ya wee megharịa ntọala ahụ

Maka ndị nwe ụlọ ahịa: nye ngwanrọ gị

Ọ bụrụ na ị bụ onye nrụpụta ngwanrọ nke etinyere ma jiri ya na VPS, mgbe ahụ anyị nwere ike itinye gị n'ahịa. Nke a bụ otu anyị nwere ike isi nyere gị aka iweta ndị ahịa ọhụrụ, okporo ụzọ na mmata. Dee anyị akwụkwọ

Gwa anyị na nkọwa ndị a kedu onyonyo ị na-efu?

Anyị ga-edozikwa ya n'onwe anyị

Mepụta Template VPS na Drupal 9 na Centos 8

Mepụta Template VPS na Drupal 9 na Centos 8

isi: www.habr.com