በሴንቶስ 9 ላይ ከ Drupal 8 ጋር የVPS አብነት መፍጠር

የገበያ ቦታችንን ማስፋፋታችንን እንቀጥላለን። እንዴት እንደሆነ በቅርቡ ነግረንዎታል የጊትላብ ምስል ሠራእና በዚህ ሳምንት Drupal በገበያ ቦታችን ታየ።

ለምን እንደመረጥን እና ምስሉ እንዴት እንደተፈጠረ እንነግርዎታለን.

በሴንቶስ 9 ላይ ከ Drupal 8 ጋር የVPS አብነት መፍጠር

Drupal - ማንኛውንም አይነት ድር ጣቢያ ለመፍጠር ምቹ እና ኃይለኛ መድረክ፡ ከማይክሮሳይቶች እና ብሎጎች እስከ ትላልቅ ማህበራዊ ፕሮጀክቶች፣ እንዲሁም ለድር መተግበሪያዎች መሰረት ሆኖ የሚያገለግል፣ በPHP የተፃፈ እና ተዛማጅ የውሂብ ጎታዎችን እንደ የውሂብ ማከማቻ ይጠቀማል።

Drupal 9 በስሪት 8.9 ውስጥ የገቡትን ሁሉንም ባህሪያት ያካትታል። በስሪት 9 እና በስሪት 8 መካከል ያለው ቁልፍ ልዩነት የመሳሪያ ስርዓቱ ከኖቬምበር 2021 በኋላ ዝማኔዎችን እና የደህንነት ጥገናዎችን ማግኘቱን የሚቀጥል መሆኑ ነው። ስሪት 9 የማዘመን ሂደቱን ያቃልላል፣ ከስሪት 8 የማሻሻል ሂደቱን የበለጠ ቀላል ያደርገዋል።

የአገልጋይ መስፈርቶች

Drupal ን ለመጠቀም 2 ጂቢ ራም እና 2 ሲፒዩ ኮርሶችን ለመጠቀም ይመከራል።

ዋናዎቹ Drupal ፋይሎች 100 ሜባ ያህል ይወስዳሉ, በተጨማሪም ምስሎችን, የውሂብ ጎታ, ገጽታዎችን, ተጨማሪ ሞጁሎችን እና መጠባበቂያዎችን ለማከማቸት ቦታ ያስፈልግዎታል, ይህም በጣቢያዎ መጠን ይወሰናል.

Drupal 9 ከዝቅተኛ ገደብ ጋር ፒኤችፒ 7.4 ወይም ከዚያ በላይ ያስፈልገዋል (memory_limit) ለ 64 ሜባ ማህደረ ትውስታ, ተጨማሪ ሞጁሎች ጥቅም ላይ ከዋሉ, 128 ሜባ ለመጫን ይመከራል.

Drupal Apache ወይም Nginx እንደ ድር አገልጋይ፣ እና MySQL፣ PostgreSQL ወይም SQLite እንደ ዳታቤዝ ሊጠቀም ይችላል።

Nginx እና MySQL በመጠቀም Drupal እንጭናለን።

ቅንብር

የተጫኑትን ጥቅሎች ወደ የቅርብ ጊዜው ስሪት እናዘምን፦

sudo dnf update -y

ለገቢ ትራፊክ ቋሚ ፍቃድ ወደ http/80 እና https/443 ወደቦች እንጨምር፡-

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 ስለሚጠቀም፣ የ REMI ማከማቻን ከ PHP 7.4 ጋር እንጨምር (ዝቅተኛው ስሪት ለ Drupal 9)።
ይህንን ለማድረግ የ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:remi-7.4 ሞጁሉን php 7.4 እንዲጭን እናድርግ፡

sudo dnf module enable php:remi-7.4 -y

php-fpm እና php-cli ጫን፡-

sudo dnf install -y php-fpm php-cli

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

እንዲሁም የሚመከሩትን የ 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

ለቪዲኤስ አብነት እያዘጋጀን ስለሆነ እና እነሱ ቀርፋፋ ሊሆኑ ስለሚችሉ፣ የ mysqld ጅምር የ30 ሰከንድ መዘግየት እንጨምራለን፣ ያለበለዚያ አገልጋዩ በመጀመሪያው የስርዓት ጅምር ላይ ችግሮች ሊኖሩበት ይችላል።

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 እናስወግድ (ለሴድ ድርብ ቀስቅሴዎች እንዳይኖሩ)

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 ሶኬት በኩል ማስኬድ፣ የስታቲክ ፋይሎችን መዝገብ ያሰናክሉ፣ ጊዜው የሚያበቃበት ጊዜ ያሳድጉ፣ የ 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

ሰርትቦትን ለመጫን wgetን ይጫኑ፡-

sudo dnf install wget -y

የcertbot executable ፋይል ከጣቢያው ውጪ ያውርዱ፡-

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

ሰርትቦትን ወደ /usr/local/bin/ ውሰድ፡

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

እና መብቶቹን እንደ ባለቤት ለመሠረት እንመድበው፡-

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

የሰርትቦት ጥገኞችን እንጭን እና በዚህ ደረጃ ስራውን እናቋርጥ (መልሶች፡ Y፣ c)

certbot-auto

ማኅደሩን በቅርብ ጊዜው የ Drupal 9 ስሪት ከቦታው እናውርድ፡-

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/*

ፋይሎቹን ወደ የድር አገልጋይ ማውጫ ውስጥ እንከፍታቸው፡-

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 ስርወ ተጠቃሚ የይለፍ ቃሉን እናዘጋጅ፡-

New password:
Re-enter new password:

ማንነታቸው ያልታወቁ ተጠቃሚዎችን እናስወግድ፡-

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

ሩት በርቀት እንዳይገናኝ እንከላከል፡-

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 መጫኛ ገጽን እናያለን.

የምንጠቀምበትን ቋንቋ እንምረጥ። ለምሳሌ: ሩሲያኛ. "አስቀምጥ እና ቀጥል" ን ጠቅ ያድርጉ

የመጫኛ ፕሮፋይልን እንምረጥ (ማሳያው ጥቅም ላይ የሚውለው ከስርዓቱ ጋር ለመተዋወቅ ብቻ ነው)። በእኛ ሁኔታ, "መደበኛ" ይሁን.

በሚቀጥለው ገጽ ላይ የውሂብ ጎታውን ስም እንሰጣለን, ለምሳሌ "ድርፓል". mysql_secure_installation ን ሲያስኬድ የውሂብ ጎታውን የተጠቃሚ ስም ስር እና የተሰጠውን የይለፍ ቃል እንጠቁም። “አስቀምጥ እና ቀጥል” ን ጠቅ ያድርጉ።

የትርጉሞችን መጫን እና ማዘመን እስኪጠናቀቅ እንጠብቅ (ሂደቱ ብዙ ደቂቃዎችን ሊወስድ ይችላል)።

የጣቢያውን ስም እንጠቁማለን ፣ የጣቢያውን ኢሜል እናዘጋጃለን (በየትኞቹ የጣቢያ ማስታወቂያዎች እንደሚላኩ) ፣ የመግቢያ ፣ የይለፍ ቃል እና የ Drupal አስተዳዳሪ መለያ ኢሜል እናዘጋጃለን። እንዲሁም አገሪቱን እና የሰዓት ዞኑን በክልል መቼቶች እናዘጋጃለን. እና "አስቀምጥ እና ቀጥል" የሚለውን ጠቅ በማድረግ መጫኑን ያጠናቅቁ.

ከዚህ በኋላ, በተፈጠረው Drupal አስተዳዳሪ መግቢያ እና የይለፍ ቃል ወደ የቁጥጥር ፓነል መሄድ ይችላሉ.

HTTPS ማዋቀር (አማራጭ)

HTTPSን ለማዋቀር፣ VDS ትክክለኛ የዲ ኤን ኤስ ስም ሊኖረው ይገባል፣ ይግለጹ

/etc/nginx/nginx.conf

በአገልጋዩ ክፍል ውስጥ የአገልጋይ ስም (ለምሳሌ)

server_name  domainname.ru;

nginxን እንደገና እንጀምር፡-

service nginx restart

ሰርትቦትን እናስጀምር፡-

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

ኢሜልዎን ያስገቡ ፣ በአገልግሎት ውሉ (ሀ) ይስማሙ ፣ ለጋዜጣው ይመዝገቡ (አማራጭ) (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 አወሳሰን ጋር ለተገናኘው ችግር እንደ መፍትሄ የታሰበ ነው እና የኤችቲቲፒ HOST ራስጌ ጥቃቶችን ለመከላከል (ጣቢያዎ ሌላ ሰው ነው ብሎ ሲያስብ) የተዘጋጀ ነው።

ይህንን ለማድረግ በቅንብሮች ፋይል ውስጥ ለጣቢያው የታመኑ የጎራ ስሞችን መግለጽ ያስፈልግዎታል።

በፋይል ውስጥ

/usr/share/nginx/html/sites/default/settings.php አስተያየት አንስጥ ወይም ቅንብርን ከትክክለኛ የጣቢያ ስሞች ቅጦች ጋር እንጨምር፣ ለምሳሌ፡-

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

PHP APCu ን መጫን (የሚመከር)

Drupal APCuን ይደግፋል - ተለዋጭ ፒኤችፒ ተጠቃሚ መሸጎጫ፣ እትሞች 8 እና 9 ኤፒሲዩን እንደ የአጭር ጊዜ የአካባቢ መሸጎጫ ከቀደሙት ስሪቶች የበለጠ ይጠቀማሉ። ነባሪው የመሸጎጫ መጠን (32 ሜባ) ለአብዛኛዎቹ ጣቢያዎች ተስማሚ ነው እና ከ 512 ሜባ መብለጥ አይችልም።

ለማግበር የPHP APCu ሞጁሉን ይጫኑ፡-

dnf -y install php-pecl-apcu

nginx እና php-fpmን እንደገና ያስጀምሩ፦

service nginx restart
service php-fpm restart

የሩስያ ቋንቋን እና ኤፒሲዩን ለመሸጎጫ ከሚመከረው የማህደረ ትውስታ መጠን ጋር ከተጠቀሙ በመቆጣጠሪያ ፓኔል ውስጥ ለካሼው የተመደበው ማህደረ ትውስታ መጠን ከተመከረው የተለየ መሆኑን ማስጠንቀቂያ ሊመለከቱ ይችላሉ, ነገር ግን በእውነቱ ሁሉም ነገር በትክክል ይሰራል. እና የተሳሳተው ማስጠንቀቂያ በሚቀጥሉት ዝማኔዎች ውስጥ ይስተካከላል።

ወይም ማስጠንቀቂያው ዓይኖችዎን የሚጎዳ ከሆነ, መጠቀም ይችላሉ ከጣቢያው ውጭ ተዛማጅ ማጣበቂያ.

እርስዎም ለእኛ ምስል መስራት እንደሚችሉ ልናስታውስዎ እንወዳለን።

እንዴት እንደሚሳተፉ ሶስት አማራጮች አሉ።

ምስሉን እራስዎ ያዘጋጁ እና 3000 ሩብልስ ወደ ሂሳብዎ ያግኙ

ወዲያውኑ ወደ ጦርነት ለመሮጥ እና እራስዎን የጎደለውን ምስል ለመፍጠር ዝግጁ ከሆኑ በ 3000 ሩብልስ ወደ ውስጣዊ ሚዛንዎ እናመሰግንዎታለን - በአገልጋዮች ላይ ሊያወጡት ይችላሉ።

ምስልዎን እንዴት እንደሚፈጥሩ:

  1. ከእኛ ጋር መለያ ይፍጠሩ ጣቢያ
  2. ምስሎችን እንደሚፈጥሩ እና እንደሚሞክሩ ለድጋፍ ይንገሩ
  3. እኛ 3000 ሩብልስ እናመሰግንዎታለን እና ቅጽበተ-ፎቶዎችን የመፍጠር ችሎታን እናነቃለን።
  4. ንጹህ ኦፐሬቲንግ ሲስተም ያለው ምናባዊ አገልጋይ ይዘዙ
  5. በዚህ VPS ላይ ሶፍትዌሩን ይጫኑ እና ያዋቅሩት
  6. ለሶፍትዌር ማሰማራት መመሪያዎችን ወይም ስክሪፕቶችን ይጻፉ
  7. ለተዋቀረው አገልጋይ ቅጽበተ-ፎቶ ይፍጠሩ
  8. በ "የአገልጋይ አብነት" ተቆልቋይ ዝርዝር ውስጥ ቀደም ሲል የተፈጠረውን ቅጽበታዊ ገጽ እይታ በመምረጥ አዲስ ምናባዊ አገልጋይ ይዘዙ
  9. አገልጋዩ በተሳካ ሁኔታ ከተፈጠረ, በደረጃ 6 የተቀበሉትን ቁሳቁሶች ወደ ቴክኒካዊ ድጋፍ ያስተላልፉ
  10. ስህተት ከተፈጠረ, ምክንያቱን በመደገፍ ማረጋገጥ እና ማዋቀሩን መድገም ይችላሉ

ለንግድ ሥራ ባለቤቶች፡ ሶፍትዌርዎን ያቅርቡ

በቪፒኤስ ላይ የተሰማራ እና ጥቅም ላይ የሚውል የሶፍትዌር ገንቢ ከሆንክ በገበያ ቦታ ልናካትትህ እንችላለን። አዳዲስ ደንበኞችን፣ ትራፊክ እና ታይነትን እንዲያመጡ ልንረዳዎ የምንችለው በዚህ መንገድ ነው። ይፃፉልን

ምን ምስል እንደጎደለህ በአስተያየቶቹ ውስጥ ንገረን?

እና እኛ እራሳችንን እናዘጋጃለን

በሴንቶስ 9 ላይ ከ Drupal 8 ጋር የVPS አብነት መፍጠር

በሴንቶስ 9 ላይ ከ Drupal 8 ጋር የVPS አብነት መፍጠር

ምንጭ: hab.com