የገበያ ቦታችንን ማስፋፋታችንን እንቀጥላለን። እንዴት እንደሆነ በቅርቡ ነግረንዎታል እና በዚህ ሳምንት በገበያ ቦታችን ታየ Drupal.
ለምን እንደመረጥን እና ምስሉ እንዴት እንደተፈጠረ እንነግርዎታለን.
Drupal - ማንኛውንም አይነት ድር ጣቢያ ለመፍጠር ምቹ እና ኃይለኛ መድረክ፡ ከማይክሮሳይቶች እና ብሎጎች እስከ ትላልቅ ማህበራዊ ፕሮጀክቶች፣ እንዲሁም ለድር መተግበሪያዎች መሰረት ሆኖ የሚያገለግል፣ በPHP የተፃፈ እና ተዛማጅ የውሂብ ጎታዎችን እንደ የውሂብ ማከማቻ ይጠቀማል።
Drupal ስሪት 9 በስሪት 8.9 ውስጥ የተተገበሩትን ሁሉንም ባህሪያት ያካትታል። በስሪት 9 እና በስሪት 8 መካከል ያለው ቁልፍ ልዩነት መድረኩ ከኖቬምበር 2021 በኋላ ዝማኔዎችን እና የደህንነት ጥገናዎችን መቀበሉን ይቀጥላል። ስሪት 9 የዝማኔ ሂደቱንም ያቃልላል፣ ይህም ከስሪት 8 ማሻሻልን የበለጠ ቀላል ያደርገዋል።
የአገልጋይ መስፈርቶች
ለአጠቃቀም Drupal 2 ጊባ ራም እና 2 የሲፒዩ ኮሮች እንዲጠቀሙ ይመከራል።
ዋና ፋይሎች Drupal 100 ሜባ ያህል ይውሰዱ፣ ምስሎችን፣ የውሂብ ጎታ፣ ገጽታዎችን፣ ተጨማሪ ሞጁሎችን እና ምትኬዎችን ለማከማቸት ቦታ ያስፈልግዎታል። ይህም በጣቢያዎ መጠን ላይ የተመሠረተ ነው።
ለ Drupal 9 ዝቅተኛ ገደብ ያለው PHP 7.4 ወይም ከዚያ በላይ ይፈልጋል (memory_limit) ለ 64 ሜባ ማህደረ ትውስታ, ተጨማሪ ሞጁሎች ጥቅም ላይ ከዋሉ, 128 ሜባ ለመጫን ይመከራል.
እንደ የድር አገልጋይ Drupal Apache ወይም Nginx፣ እና MySQL፣ PostgreSQL ወይም SQLite እንደ የውሂብ ጎታ መጠቀም ይችላል።
እኛ እንጭናለን Drupal Nginx እና MySQL በመጠቀም።
ቅንብር
የተጫኑትን ጥቅሎች ወደ የቅርብ ጊዜው ስሪት እናዘምን፦
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 firewalldNginx ን እንጭነው፡-
sudo dnf install nginx -yየ Nginx አገልጋይን እንጀምር እና አንቃው፡-
sudo systemctl start nginx
sudo systemctl enable nginx በአሁኑ ጊዜ በዋናው ማከማቻ ውስጥ ስለነበረ Centos የ 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 -yphp-fpm እና php-cli ጫን፡-
sudo dnf install -y php-fpm php-cliለስራ የሚያስፈልጉትን የ PHP ሞጁሎችን እንጭናለን። 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-opcacheMySQL አገልጋይን እንጫን፡-
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 ከዚህ በኋላ, መጫኑን ለማጠናቀቅ, ወደ መሄድ እንችላለን
በዚህ አድራሻ የመጫኛ ገጹን እናያለን 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 (አማራጭ የPHP ተጠቃሚ መሸጎጫ) ይደግፋል። ስሪቶች 8 እና 9 ከቀደሙት ስሪቶች ይልቅ APCuን እንደ የአጭር ጊዜ የአካባቢ መሸጎጫ በበለጠ በጥልቀት ይጠቀማሉ። ነባሪው የመሸጎጫ መጠን (32 ሜባ) ለአብዛኛዎቹ ጣቢያዎች ተስማሚ ሲሆን ከ512 ሜባ መብለጥ አይችልም።
ለማግበር የPHP APCu ሞጁሉን ይጫኑ፡-
dnf -y install php-pecl-apcunginx እና php-fpmን እንደገና ያስጀምሩ፦
service nginx restart
service php-fpm restartየሩስያ ቋንቋን እና ኤፒሲዩን ለመሸጎጫ ከሚመከረው የማህደረ ትውስታ መጠን ጋር ከተጠቀሙ በመቆጣጠሪያ ፓኔል ውስጥ ለካሼው የተመደበው ማህደረ ትውስታ መጠን ከተመከረው የተለየ መሆኑን ማስጠንቀቂያ ሊመለከቱ ይችላሉ, ነገር ግን በእውነቱ ሁሉም ነገር በትክክል ይሰራል. እና የተሳሳተው ማስጠንቀቂያ በሚቀጥሉት ዝማኔዎች ውስጥ ይስተካከላል።
ወይም ማስጠንቀቂያው ዓይኖችዎን የሚጎዳ ከሆነ, መጠቀም ይችላሉ .
እርስዎም ለእኛ ምስል መስራት እንደሚችሉ ልናስታውስዎ እንወዳለን።
እንዴት እንደሚሳተፉ ሶስት አማራጮች አሉ።
ምስሉን እራስዎ ያዘጋጁ እና 3000 ሩብልስ ወደ ሂሳብዎ ያግኙ
ወዲያውኑ ወደ ጦርነት ለመሮጥ እና እራስዎን የጎደለውን ምስል ለመፍጠር ዝግጁ ከሆኑ በ 3000 ሩብልስ ወደ ውስጣዊ ሚዛንዎ እናመሰግንዎታለን - በአገልጋዮች ላይ ሊያወጡት ይችላሉ።
ምስልዎን እንዴት እንደሚፈጥሩ:
- ከእኛ ጋር መለያ ይፍጠሩ
- ምስሎችን እንደሚፈጥሩ እና እንደሚሞክሩ ለድጋፍ ይንገሩ
- እኛ 3000 ሩብልስ እናመሰግንዎታለን እና ቅጽበተ-ፎቶዎችን የመፍጠር ችሎታን እናነቃለን።
- ንጹህ ኦፐሬቲንግ ሲስተም ያለው ምናባዊ አገልጋይ ይዘዙ
- በዚህ VPS ላይ ሶፍትዌሩን ይጫኑ እና ያዋቅሩት
- ለሶፍትዌር ማሰማራት መመሪያዎችን ወይም ስክሪፕቶችን ይጻፉ
- ለተዋቀረው አገልጋይ ቅጽበተ-ፎቶ ይፍጠሩ
- በ "የአገልጋይ አብነት" ተቆልቋይ ዝርዝር ውስጥ ቀደም ሲል የተፈጠረውን ቅጽበታዊ ገጽ እይታ በመምረጥ አዲስ ምናባዊ አገልጋይ ይዘዙ
- አገልጋዩ በተሳካ ሁኔታ ከተፈጠረ, በደረጃ 6 የተቀበሉትን ቁሳቁሶች ወደ ቴክኒካዊ ድጋፍ ያስተላልፉ
- ስህተት ከተፈጠረ, ምክንያቱን በመደገፍ ማረጋገጥ እና ማዋቀሩን መድገም ይችላሉ
ለንግድ ሥራ ባለቤቶች፡ ሶፍትዌርዎን ያቅርቡ
በቪፒኤስ ላይ የተሰማራ እና ጥቅም ላይ የሚውል የሶፍትዌር ገንቢ ከሆንክ በገበያ ቦታ ልናካትትህ እንችላለን። አዳዲስ ደንበኞችን፣ ትራፊክ እና ታይነትን እንዲያመጡ ልንረዳዎ የምንችለው በዚህ መንገድ ነው።
ምን ምስል እንደጎደለህ በአስተያየቶቹ ውስጥ ንገረን?
እና እኛ እራሳችንን እናዘጋጃለን
ምንጭ: hab.com
