Centos 9 මත Drupal 8 සමඟ VPS සැකිල්ලක් නිර්මාණය කිරීම

අපි අපේ වෙළඳපොළ තවදුරටත් පුළුල් කරනවා. අපි මෑතකදී කතා කළේ කෙසේද යන්න ගැන Gitlab රූපයක් හැදුවා, සහ මෙම සතියේ Drupal අපගේ වෙළඳපොලේ පෙනී සිටියේය.

අපි එය තෝරා ගත්තේ ඇයි සහ රූපය නිර්මාණය කළ ආකාරය අපි කියන්නෙමු.

Centos 9 මත Drupal 8 සමඟ VPS සැකිල්ලක් නිර්මාණය කිරීම

ඩොප්පාල් ඕනෑම ආකාරයක වෙබ් අඩවි නිර්මාණය කිරීම සඳහා පහසු සහ බලවත් වේදිකාවකි: මයික්‍රොසයිට් සහ බ්ලොග් වල සිට විශාල සමාජ ව්‍යාපෘති දක්වා, එය වෙබ් යෙදුම් සඳහා පදනම ලෙසද භාවිතා කරයි, PHP වලින් ලියා ඇති අතර දත්ත ගබඩාවක් ලෙස සම්බන්ධක දත්ත සමුදායන් භාවිතා කරයි.

Drupal 9 හි 8.9 අනුවාදයේ හඳුන්වා දී ඇති සියලුම විශේෂාංග ඇතුළත් වේ. 9 අනුවාදය සහ 8 අනුවාදය අතර ඇති ප්‍රධාන වෙනස නම් වේදිකාවට 2021 නොවැම්බරයෙන් පසුව යාවත්කාලීන සහ ආරක්ෂක නිවැරදි කිරීම් දිගටම ලැබෙනු ඇත. එසේම 9 අනුවාදයේ, උත්ශ්‍රේණි කිරීමේ ක්‍රියාවලිය සරල කර ඇති අතර, 8 අනුවාදයෙන් උත්ශ්‍රේණි කිරීමේ ක්‍රියාවලිය වඩාත් පහසු කර ඇත.

සේවාදායක අවශ්යතා

Drupal භාවිතා කිරීම සඳහා, 2 GB RAM සහ 2 CPU cores භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ.

ප්‍රධාන Drupal ගොනු 100 MB පමණ වේ, ඊට අමතරව ඔබට පින්තූර, දත්ත සමුදාය, තේමා, ඇඩෝන සහ උපස්ථ ගබඩා කිරීමට ඉඩ අවශ්‍ය වනු ඇත, එය ඔබේ වෙබ් අඩවියේ ප්‍රමාණය මත රඳා පවතී.

Drupal 9 සඳහා අවම සීමාවක් සහිත PHP 7.4 හෝ ඉහළ අවශ්‍ය වේ (memory_limit) සිට 64 MB මතකය දක්වා, අතිරේක මොඩියුල භාවිතා කරන විට, 128 MB ස්ථාපනය කිරීම රෙකමදාරු කරනු ලැබේ.

Drupal වෙබ් සේවාදායකයක් ලෙස Apache හෝ Nginx භාවිතා කළ හැකි අතර දත්ත සමුදායක් ලෙස MySQL, PostgreSQL හෝ SQLite භාවිතා කළ හැක.

අපි Nginx සහ MySQL භාවිතයෙන් Drupal ස්ථාපනය කරන්නෙමු.

ස්ථාපනය

ස්ථාපිත පැකේජ නවතම අනුවාදයට යාවත්කාලීන කරන්න:

sudo dnf update -y

අපි http/80 සහ https/443 ports වෙත එන ගමනාගමනය සඳහා ස්ථිර අවසරයක් එක් කරමු:

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

නව ෆයර්වෝල් නීති යොදන්න:

sudo systemctl reload firewalld

Nginx ස්ථාපනය කරන්න:

sudo dnf install nginx -y

අපි Nginx සේවාදායකය ආරම්භ කර සක්‍රීය කරමු:

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7.2 දැනට ප්‍රධාන Centos ගබඩාවේ භාවිතා වන බැවින්, අපි PHP 7.4 (Drupal 9 සඳහා අවම අනුවාදය) සමඟ REMI ගබඩාව එකතු කරමු.
මෙය සිදු කිරීම සඳහා, EPEL ගබඩාව එක් කරන්න (REMI ගබඩාවට අවශ්‍ය වේ):

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

අපි REMI ගබඩාව එකතු කරමු:

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

php 7.4 ස්ථාපනය කිරීමට php:remi-7.4 මොඩියුලය සක්‍රීය කරන්න:

sudo dnf module enable php:remi-7.4 -y

php-fpm සහ php-cli ස්ථාපනය කරන්න:

sudo dnf install -y php-fpm php-cli

Drupal වැඩ කිරීමට අවශ්‍ය PHP මොඩියුල ස්ථාපනය කරන්න:

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

අපි නිර්දේශිත PHP මොඩියුල mbstring opcache ද ස්ථාපනය කරන්නෙමු:

sudo dnf install -y php-mbstring php-opcache

MySQL සේවාදායකය ස්ථාපනය කරන්න:

sudo dnf install mysql-server -y

MySQL සේවාදායකය සක්රිය කර ආරම්භ කරන්න:

sudo systemctl start mysqld
sudo systemctl enable mysqld

අපි VDS සඳහා අච්චුවක් සාදන බැවින් සහ ඒවා මන්දගාමී විය හැකි බැවින්, අපි තත්පර 30 ක mysqld ආරම්භක ප්‍රමාදයක් එක් කරන්නෙමු, එසේ නොමැතිනම් ආරම්භක පද්ධති ආරම්භයේදී සේවාදායකය ආරම්භ කිරීමේදී ගැටළු ඇති විය හැකිය:

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

/etc/php-fpm.d/www.conf වෙත වෙනස්කම් සිදු කිරීමෙන් nginx ධාවනය වන කණ්ඩායම සහ පරිශීලකයා වෙනස් කරමු:

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

ඒ අනුව PHP සැසි නාමාවලියෙහි හිමිකරු nginx වෙත වෙනස් කරන්න:

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

අපි /etc/nginx/nginx.conf වින්‍යාස ගොනුවෙන් අදහස් රේඛා ඉවත් කරමු (එමගින් sed සඳහා ද්විත්ව පහරවල් නොමැත):

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

gzip සම්පීඩන සැකසුම් /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

අපි index.php දර්ශක ගොනුවේ සැකසුම් /etc/nginx/nginx.conf වෙත එකතු කරමු:

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

අපි php-fpm සොකට් එක හරහා පෙරනිමි සේවාදායක සැකසුම් php සඳහා සැකසුම් එකතු කරමු, ස්ථිතික ගොනු සඳහා ලොගය අක්‍රිය කරන්න, කල් ඉකුත්වන කාලය වැඩි කරන්න, favicon.ico සහ robots.txt සඳහා ප්‍රවේශ සහ දෝෂ ලොගය අක්‍රිය කර .ht ගොනු සඳහා ප්‍රවේශය ප්‍රතික්ෂේප කරමු. හැමෝම:

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

certbot ස්ථාපනය කිරීමට අවශ්‍ය wget ස්ථාපනය කරන්න:

sudo dnf install wget -y

certbot ක්‍රියාත්මක කළ හැකි ගොනුව offsite වෙතින් බාගන්න:

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

certbot /usr/local/bin/ වෙත ගෙන යන්න:

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

සහ root සඳහා හිමිකම් සහ හිමිකාරිත්වය පවරන්න:

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

certbot හි පරායත්තතා ස්ථාපනය කර මෙම අදියරේදී එය නවත්වන්න (පිළිතුරු: Y, c):

certbot-auto

Drupal 9 හි නවතම අනුවාදය සමඟ සංරක්ෂිතය offsite වෙතින් බාගන්න:

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

සංරක්ෂිතය ඉවත් කිරීමට තාර ස්ථාපනය කරන්න:

sudo dnf install tar -y

/usr/share/nginx/html/ බහලුම තුළ ඇති පෙරනිමි ගොනු මකන්න:

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

වෙබ් සේවාදායක නාමාවලිය වෙත ගොනු Unzip කරන්න:

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

උප බහලුමේ සිට වෙබ් සේවාදායකයේ මූල නාමාවලිය වෙත ගොනු ගෙන යන්න:

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

උප බහලුම මකන්න:

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

ස්ථාපන ගොනු සමඟ සංරක්ෂිතය මකන්න:

rm -f ./tar.gz

nginx ගොනු වල හිමිකරු සකසන්න:

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

මෙම අදියරේදී, අපි සේවාදායකය අක්‍රිය කර ඡායාරූපයක් ගනිමු:

shutdown -h now

ස්නැප්ෂොට් එකෙන් VDS ආරම්භ කිරීමෙන් පසු, අපි ස්ක්‍රිප්ට් ධාවනය කිරීමෙන් MySQL සේවාදායකයේ මූලික සැකසුම සිදු කරන්නෙමු:

mysql_secure_installation

මුරපද වලංගුකාරකය සබල කරන්න:

Would you like to setup VALIDATE PASSWORD component? : y

MySQL root පරිශීලක මුරපදය සකසන්න:

New password:
Re-enter new password:

නිර්නාමික පරිශීලකයින් ඉවත් කරන්න:

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

Root දුරස්ථව සම්බන්ධ වීම වළක්වමු:

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

පරීක්ෂණ දත්ත සමුදාය ඉවත් කරමු:

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

වරප්‍රසාද වගු නැවත පූරණය කරන්න:

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

ඊට පසු, ස්ථාපනය සම්පූර්ණ කිරීම සඳහා, අපට යන්න පුළුවන් vps_ip_ලිපිනය
මෙම ලිපිනයේ අපි Drupal ස්ථාපනය සහිත පිටුවක් දකිමු.

භාවිතා කළ යුතු භාෂාව තෝරන්න. උදාහරණයක් ලෙස: රුසියානු. "සුරකින්න සහ ඉදිරියට යන්න" ක්ලික් කරන්න

අපි ස්ථාපන පැතිකඩක් තෝරා ගනිමු (ආදර්ශනය භාවිතා කරනුයේ පද්ධතිය සමඟ හුරුපුරුදු වීම සඳහා පමණි). අපගේ නඩුවේදී, එය "සම්මත" වීමට ඉඩ දෙන්න.

ඊළඟ පිටුවේ, දත්ත සමුදායට "drupal" වැනි නමක් දෙන්න. mysql_secure_installation ආරම්භ කිරීමේදී දත්ත සමුදායේ පරිශීලක නාමය root සහ ඔහුට ලබා දී ඇති මුරපදය සඳහන් කරන්න. "සුරකින්න සහ ඉදිරියට යන්න" ක්ලික් කරන්න.

පරිවර්තන ස්ථාපනය සහ යාවත්කාලීන කිරීම සම්පූර්ණ වන තෙක් බලා සිටිමු (ක්‍රියාවලියට මිනිත්තු කිහිපයක් ගත විය හැක).

අඩවියේ නම සඳහන් කරන්න, වෙබ් අඩවියේ විද්‍යුත් තැපෑල සකසන්න (ඒ වෙනුවෙන් වෙබ් අඩවි දැනුම්දීම් පැමිණෙනු ඇත), පිවිසුම, මුරපදය සහ Drupal පරිපාලක ගිණුමේ විද්‍යුත් තැපෑල. අපි කලාපීය සැකසුම් තුළ රට සහ වේලා කලාපය ද සකසන්නෙමු. සහ "සුරකින්න සහ ඉදිරියට යන්න" ක්ලික් කිරීමෙන් ස්ථාපනය සම්පූර්ණ කරන්න.

ඊට පසු, ඔබට සාදන ලද Drupal පරිපාලක පිවිසුම් සහ මුරපදය සමඟ පාලක පැනලය වෙත යා හැකිය.

HTTPS සැකසීම (විකල්ප)

HTTPS වින්‍යාස කිරීමට, VDS හට වලංගු DNS නමක් තිබිය යුතුය, සඳහන් කරන්න

/etc/nginx/nginx.conf

සේවාදායක කොටසේ සේවාදායකයේ නම (උදාහරණයක් ලෙස):

server_name  domainname.ru;

nginx නැවත ආරම්භ කරන්න:

service nginx restart

අපි certbot ආරම්භ කරමු:

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

ඔබගේ විද්‍යුත් තැපෑල ඇතුලත් කරන්න, සේවා කොන්දේසි වලට එකඟ වන්න (A), පුවත් පත්‍රිකාවට දායක වන්න (විකල්ප) (N), ඔබට සහතිකයක් නිකුත් කිරීමට අවශ්‍ය වසම් නාම තෝරන්න (සියල්ල සඳහා ඇතුලත් කරන්න).

සෑම දෙයක්ම දෝෂයකින් තොරව සිදු වූවා නම්, සහතික නිකුත් කිරීම සහ සේවාදායක සැකසුම පිළිබඳ පණිවිඩයක් අපට පෙනෙනු ඇත:

Congratulations! You have successfully enabled ...

ඊට පසු, වරාය 80 හි සම්බන්ධතා 443 (https) වෙත හරවා යවනු ලැබේ.

සහතික ස්වයංක්‍රීයව අලුත් කිරීමට /etc/crontab වෙත එක් කරන්න:

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

විශ්වාසදායී සත්කාරක ආරක්ෂාව පිහිටුවීම (නිර්දේශිත)

මෙම සැකසුම ගතික base_url හඳුනාගැනීමේ ගැටලුවට විසඳුමක් ලෙස අදහස් කරන අතර, HTTP HOST ශීර්ෂ ප්‍රහාර (ඔබේ වෙබ් අඩවිය එය වෙනත් අයෙකු යැයි සිතන විට) වැළැක්වීමට අදහස් කෙරේ.

මෙය සිදු කිරීම සඳහා, ඔබ විසින් සැකසුම් ගොනුවේ වෙබ් අඩවියේ විශ්වාසදායක වසම් නාම සඳහන් කළ යුතුය.

ගොනුවේ

/usr/share/nginx/html/sites/default/settings.php අදහස් දැක්වීම ඉවත් කිරීම හෝ සත්‍ය අඩවි නාම රටා සහිත සැකසීමක් එක් කරන්න, උදාහරණයක් ලෙස:

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

PHP APCu ස්ථාපනය කිරීම (නිර්දේශිත)

Drupal APCu - විකල්ප PHP පරිශීලක හැඹිලි සඳහා සහය දක්වයි, 8 සහ 9 අනුවාද APCu පෙර අනුවාදවලට වඩා කෙටි කාලීන දේශීය හැඹිලියක් ලෙස වඩාත් තීව්‍ර ලෙස භාවිතා කරයි. පෙරනිමි හැඹිලි ප්‍රමාණය (32 MB) බොහෝ අඩවි වලට ගැලපෙන අතර 512 MB නොඉක්මවිය යුතුය.

සක්‍රිය කිරීමට, PHP APCu මොඩියුලය ස්ථාපනය කරන්න:

dnf -y install php-pecl-apcu

nginx සහ php-fpm නැවත ආරම්භ කරන්න:

service nginx restart
service php-fpm restart

නිර්දේශිත හැඹිලි මතක ප්‍රමාණය සමඟ රුසියානු භාෂාව සහ APCu භාවිතා කිරීමේදී, වෙන් කරන ලද හැඹිලි මතකයේ ප්‍රමාණය නිර්දේශිත එකට වඩා වෙනස් වන බවට පාලක පැනලයේ අනතුරු ඇඟවීමක් ඔබට දැකිය හැකිය, නමුත් ඇත්ත වශයෙන්ම සියල්ල නිවැරදිව ක්‍රියා කරයි, සහ වැරදියි. අනතුරු ඇඟවීම බොහෝ විට මීළඟ යාවත්කාලීන වලදී නිවැරදි වනු ඇත.

නැතහොත් අනතුරු ඇඟවීම ඇසට රිදෙනවා නම්, ඔබට භාවිතා කළ හැකිය offsite වෙතින් අනුරූප පැච්.

ඔබට අප වෙනුවෙන් රූපයක් සාදා ගත හැකි බව අපි ඔබට මතක් කර දීමට කැමැත්තෙමු

සහභාගී වන ආකාරය සඳහා විකල්ප තුනක් තිබේ.

රූපය ඔබම සූදානම් කර ඔබගේ ශේෂය මත රුබල් 3000 ක් ලබා ගන්න

ඔබ වහාම සටනට ගොස් ඔබටම නැති රූපයක් නිර්මාණය කිරීමට ඔබ සූදානම් නම්, අපි ඔබේ අභ්‍යන්තර ශේෂයට රුබල් 3000 ක් බැර කරන්නෙමු - ඔබට එය සේවාදායකයන් මත වියදම් කළ හැකිය.

ඔබේ රූපය සාදා ගන්නේ කෙසේද:

  1. අප සමඟ ගිණුමක් සාදන්න වෙබ් අඩවිය
  2. ඔබ රූප නිර්මාණය කිරීමට සහ පරීක්ෂා කිරීමට යන බව සහායට කියන්න
  3. අපි ඔබට රුබල් 3000 ක් බැර කර ස්නැප්ෂොට් සෑදීමේ හැකියාව සක්‍රීය කරන්නෙමු
  4. පිරිසිදු මෙහෙයුම් පද්ධතියක් සහිත අතථ්‍ය සේවාදායකයක් ඇණවුම් කරන්න
  5. මෙම VPS මත මෘදුකාංගය ස්ථාපනය කර එය සකස් කරන්න
  6. මෘදුකාංග යෙදවීම සඳහා උපදෙස් හෝ ස්ක්‍රිප්ට් ලියන්න
  7. වින්‍යාසගත සේවාදායකය සඳහා ස්නැප්ෂොට් එකක් සාදන්න
  8. "සේවාදායක අච්චුව" පතන ලැයිස්තුවේ කලින් සාදන ලද ස්නැප්ෂොට් තේරීමෙන් නව අථත්‍ය සේවාදායකයක් ඇණවුම් කරන්න
  9. සේවාදායකය සාර්ථකව නිර්මාණය කිරීමේදී, 6 වන පියවරේදී ලැබුණු ද්‍රව්‍ය තාක්ෂණික සහාය වෙත මාරු කරන්න
  10. දෝෂයක් ඇති වුවහොත්, ඔබට හේතුව සඳහා සහය සමඟ පරීක්ෂා කර නැවත සැකසීමට හැකිය

ව්‍යාපාර හිමිකරුවන් සඳහා: ඔබේ මෘදුකාංගය පිරිනමන්න

ඔබ VPS එකක යොදවා භාවිතා කරන මෘදුකාංග සංවර්ධකයෙක් නම්, අපට ඔබව වෙළඳපොළට ඇතුළත් කළ හැක. නව පාරිභෝගිකයින්, ගමනාගමනය සහ දෘශ්‍යතාව ගෙන ඒමට අපට ඔබට උපකාර කළ හැක්කේ මෙලෙසය. අපට ලියන්න

ඔබට මග හැරෙන්නේ කුමන රූපයද යන්න අදහස් දැක්වීමේදී අපට දන්වන්න?

තවද අපි එය අප විසින්ම සූදානම් කරමු

Centos 9 මත Drupal 8 සමඟ VPS සැකිල්ලක් නිර්මාණය කිරීම

Centos 9 මත Drupal 8 සමඟ VPS සැකිල්ලක් නිර්මාණය කිරීම

මූලාශ්රය: www.habr.com