Biz bozorimizni kengaytirishda davom etamiz. Biz sizga yaqinda qanday qilib aytdik va bu hafta u bizning bozorimizda paydo bo'ldi Drupal.
Biz uni nima uchun tanlaganimizni va tasvir qanday yaratilganini aytib beramiz.
Drupal — har qanday turdagi veb-saytlarni yaratish uchun qulay va kuchli platforma: mikrosaytlar va bloglardan tortib yirik ijtimoiy loyihalargacha, shuningdek, PHP-da yozilgan veb-ilovalar uchun asos sifatida ishlatiladi va ma'lumotlarni saqlash sifatida relyatsion ma'lumotlar bazalaridan foydalanadi.
Drupal 9-versiya 8.9-versiyada joriy etilgan barcha funksiyalarni o'z ichiga oladi. 9-versiya va 8-versiya o'rtasidagi asosiy farq shundaki, platforma 2021-yil noyabridan keyin ham yangilanishlar va xavfsizlik yamoqlarini olishda davom etadi. 9-versiya shuningdek, yangilash jarayonini soddalashtiradi, bu esa 8-versiyadan yangilashni yanada osonlashtiradi.
Server talablari
Foydalanish uchun Drupal 2 GB operativ xotira va 2 ta protsessor yadrosidan foydalanish tavsiya etiladi.
Asosiy fayllar Drupal taxminan 100 MB joy egallaydi, shuningdek, saytingiz hajmiga bog'liq bo'lgan rasmlarni, ma'lumotlar bazasini, mavzularni, qo'shimcha modullarni va zaxira nusxalarini saqlash uchun joy kerak bo'ladi.
uchun Drupal 9 minimal cheklov bilan PHP 7.4 yoki undan yuqori versiyasini talab qiladi (memory_limit) 64 MB xotira uchun; agar qo'shimcha modullar ishlatilsa, 128 MB o'rnatish tavsiya etiladi.
Veb-server sifatida Drupal ma'lumotlar bazasi sifatida Apache yoki Nginx, va MySQL, PostgreSQL yoki SQLite dan foydalanishi mumkin.
Biz o'rnatamiz Drupal Nginx va MySQL dan foydalanish.
sozlama
O'rnatilgan paketlarni eng so'nggi versiyaga yangilaymiz:
sudo dnf update -yKeling, http/80 va https/443 portlariga kiruvchi trafik uchun doimiy ruxsatni qo'shamiz:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsYangi xavfsizlik devori qoidalarini qo'llaymiz:
sudo systemctl reload firewalldNginx ni o'rnatamiz:
sudo dnf install nginx -yNginx serverini ishga tushiramiz va yoqamiz:
sudo systemctl start nginx
sudo systemctl enable nginx Hozirda asosiy omborda Centos PHP 7.2 versiyasi ishlatilgan, keling, PHP 7.4 bilan REMI omborini qo'shaylik (minimal versiya uchun Drupal 9).
Buning uchun EPEL omborini qo'shing (REMI ombori tomonidan talab qilinadi):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmREMI omborini qo'shamiz:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
php 7.4 ni o'rnatish uchun php:remi-7.4 modulini yoqaylik:
sudo dnf module enable php:remi-7.4 -yphp-fpm va php-cli-ni o'rnating:
sudo dnf install -y php-fpm php-cliBiz ish uchun zarur bo'lgan PHP modullarini o'rnatamiz. 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-xmlBiz tavsiya etilgan PHP mbstring opcache modullarini ham oʻrnatamiz:
sudo dnf install -y php-mbstring php-opcacheKeling, MySQL serverini o'rnatamiz:
sudo dnf install mysql-server -yKeling, MySQL serverini yoqamiz va ishga tushiramiz:
sudo systemctl start mysqld
sudo systemctl enable mysqldBiz VDS uchun shablonni yaratayotganimiz va ular sekin bo'lishi mumkinligi sababli, biz MySQLD ishga tushirish kechikishini 30 soniya qo'shamiz, aks holda tizimni dastlabki yuklash paytida server ishga tushishi bilan bog'liq muammolar bo'lishi mumkin:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.serviceKeling, /etc/php-fpm.d/www.conf ga o'zgartirish kiritish orqali nginx ishlaydigan guruh va foydalanuvchini o'zgartiraylik:
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.confPHP seanslari katalogining egasini mos ravishda nginx ga o'zgartiramiz:
sudo chown -R nginx. /var/lib/php/sessionKeling, /etc/nginx/nginx.conf konfiguratsiya faylidan izohli satrlarni olib tashlaymiz (sed uchun qo'sh triggerlar bo'lmasligi uchun):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.confGzip siqish sozlamalarini /etc/nginx/nginx.conf ga qo'shing
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.confindex.php indeks faylining sozlamalarini /etc/nginx/nginx.conf ga qo'shamiz:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confStandart server uchun sozlamalarni qo‘shamiz: PHP-ni php-fpm rozetkasi orqali qayta ishlash, statik fayllar uchun jurnalni o‘chirish, amal qilish muddatini oshirish, favicon.ico va robots.txt uchun kirish va xatolar jurnalini o‘chirib qo‘yish va .ht saytiga kirishni rad etish. hamma uchun fayllar:
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.confSertbotni o'rnatish uchun zarur bo'lgan wget ni o'rnating:
sudo dnf install wget -ySaytdan tashqarida certbot bajariladigan faylni yuklab oling:
cd ~
wget https://dl.eff.org/certbot-autoSertbotni /usr/local/bin/ ga o'tkazing:
mv certbot-auto /usr/local/bin/certbot-autoKeling, root egasi sifatida huquqlarni belgilaylik:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoKeling, certbot bog'liqliklarini o'rnatamiz va bu bosqichda uning ishini to'xtatamiz (Javoblar: Y, c):
certbot-autoArxivni rasmiy veb-saytdan so'nggi versiyasi bilan yuklab oling. Drupal 9:
cd ~
wget https://www.drupal.org/download-latest/tar.gzArxivni ochish uchun tarni o'rnating:
sudo dnf install tar -yKeling, /usr/share/nginx/html/ katalogidagi standart fayllarni o'chirib tashlaymiz:
rm -rf /usr/share/nginx/html/*Keling, fayllarni veb-server katalogiga ochamiz:
tar xf tar.gz -C /usr/share/nginx/html/Fayllarni pastki katalogdan veb-serverning asosiy katalogiga o'tkazamiz:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Keling, quyi katalogni o'chirib tashlaymiz:
rm -rf /usr/share/nginx/html/drupal-9.0.7O'rnatish fayllari bilan arxivni o'chirib tashlaymiz:
rm -f ./tar.gzNginx fayllari egasini tayinlaymiz:
chown -R nginx. /usr/share/nginx/htmlUshbu bosqichda biz serverni o'chirib, suratga olamiz:
shutdown -h nowSuratdan VDS-ni ishga tushirgandan so'ng, biz skriptni ishga tushirish orqali MySQL serverini dastlabki sozlashni amalga oshiramiz:
mysql_secure_installationParolni tekshirgichni yoqaylik:
Would you like to setup VALIDATE PASSWORD component? : yKeling, MySQL ildiz foydalanuvchisi uchun parolni o'rnatamiz:
New password:
Re-enter new password:Keling, anonim foydalanuvchilarni o'chirib tashlaymiz:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : yKeling, ildizning masofadan ulanishini oldini olaylik:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yTest ma'lumotlar bazasini o'chirib tashlaymiz:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yKeling, imtiyozlar jadvallarini qayta yuklaymiz:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Shundan so'ng, o'rnatishni yakunlash uchun biz o'tishimiz mumkin
Ushbu manzilda biz o'rnatish sahifasini ko'ramiz Drupal.
Keling, foydalanish uchun tilni tanlaylik. Masalan: rus. "Saqlash va Davom etish" tugmasini bosing
O'rnatish profilini tanlaylik (demo faqat tizim bilan tanishish uchun ishlatiladi). Bizning holatda, u "standart" bo'lsin.
Keyingi sahifada biz ma'lumotlar bazasiga nom beramiz, masalan, "drupal". Mysql_secure_installation dasturini ishga tushirishda ma'lumotlar bazasi foydalanuvchi nomi ildizini va unga berilgan parolni ko'rsatamiz. "Saqlash va Davom etish" tugmasini bosing.
Keling, tarjimalarni o'rnatish va yangilash tugashini kutamiz (jarayon bir necha daqiqa vaqt olishi mumkin).
Biz sayt nomini ko'rsatamiz, sayt elektron pochta manzilini (sayt bildirishnomalari qaysi manzildan yuboriladi), login, parol va administrator hisobining elektron pochta manzilini o'rnatamiz. DrupalShuningdek, biz mintaqaviy sozlamalarda mamlakat va vaqt mintaqasini o'rnatamiz. Keyin, "Saqlash va davom etish" tugmasini bosib, o'rnatishni yakunlang.
Shundan so'ng, siz yaratilgan administrator login va paroli bilan boshqaruv paneliga o'tishingiz mumkin. Drupal.
HTTPS sozlash (ixtiyoriy)
HTTPS-ni sozlash uchun VDS to'g'ri DNS nomiga ega bo'lishi kerak, uni kiriting
/etc/nginx/nginx.confserver bo'limida server nomi (masalan):
server_name domainname.ru;Nginx-ni qayta ishga tushiramiz:
service nginx restartKeling, certbotni ishga tushiramiz:
sudo /usr/local/bin/certbot-auto --nginxElektron pochtangizni kiriting, xizmat ko'rsatish shartlariga rozilik bildiring (A), axborot byulleteniga obuna bo'ling (ixtiyoriy) (N), sertifikat bermoqchi bo'lgan domen nomlarini tanlang (Hamma uchun kiriting).
Agar hamma narsa xatosiz o'tgan bo'lsa, biz sertifikatlarning muvaffaqiyatli chiqarilishi va server konfiguratsiyasi haqida xabarni ko'ramiz:
Congratulations! You have successfully enabled ...Shundan so'ng, 80-portga ulanishlar 443 (https) ga yo'naltiriladi.
Sertifikatlarni avtomatik yangilash uchun /etc/crontab ga qo'shing:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Ishonchli xost xavfsizligini sozlash (tavsiya etiladi)
Ushbu sozlama dinamik base_url manzilini aniqlash bilan bog'liq muammoni hal qilish uchun mo'ljallangan va HTTP HOST sarlavhasi hujumlarini oldini olish uchun mo'ljallangan (saytingiz uni boshqa birov deb hisoblaganda).
Buni amalga oshirish uchun sozlamalar faylida sayt uchun ishonchli domen nomlarini ko'rsatishingiz kerak.
Fayl ichida
/usr/share/nginx/html/sites/default/settings.php Sharhni bekor qilaylik yoki haqiqiy sayt nomlari naqshlari bilan sozlamani qo'shamiz, masalan:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
PHP APCu ni o'rnatish (TAVsiya etiladi)
Drupal APCu (muqobil PHP foydalanuvchi keshi) ni qo'llab-quvvatlaydi. 8 va 9-versiyalar oldingi versiyalarga qaraganda APCu dan qisqa muddatli mahalliy kesh sifatida ko'proq intensiv foydalanadi. Standart kesh hajmi (32 MB) ko'pgina saytlar uchun mos keladi va 512 MB dan oshmasligi kerak.
Faollashtirish uchun PHP APCu modulini o'rnating:
dnf -y install php-pecl-apcuNginx va php-fpm ni qayta ishga tushiring:
service nginx restart
service php-fpm restartAgar siz rus tilidan va kesh uchun tavsiya etilgan xotira hajmi bilan APCu dan foydalansangiz, boshqaruv panelida kesh uchun ajratilgan xotira hajmi tavsiya etilganidan farq qilishi haqida ogohlantirishni ko'rishingiz mumkin, lekin aslida hamma narsa to'g'ri ishlaydi, va noto'g'ri ogohlantirish keyingi yangilanishlarda tuzatiladi.
Yoki ogohlantirish ko'zingizga zarar yetkazsa, siz foydalanishingiz mumkin .
Sizga shuni eslatib o'tmoqchimizki, siz biz uchun rasm ham qilishingiz mumkin
Qanday ishtirok etishning uchta varianti mavjud.
Tasvirni o'zingiz tayyorlang va balansingizga 3000 rubl oling
Agar siz darhol jangga kirishga va o'zingiz etishmayotgan tasvirni yaratishga tayyor bo'lsangiz, biz sizning ichki balansingizga 3000 rublni to'laymiz, uni serverlarga sarflashingiz mumkin.
O'zingizning rasmingizni qanday yaratishingiz mumkin:
- Biz bilan hisob yarating
- Tasvirlarni yaratmoqchi va sinab ko'rmoqchi ekanligingizni qo'llab-quvvatlash xizmatiga bildiring
- Biz sizga 3000 rubl miqdorida kredit beramiz va suratlarni yaratish imkoniyatini yoqamiz
- Toza operatsion tizimga ega virtual serverga buyurtma bering
- Ushbu VPS-ga dasturiy ta'minotni o'rnating va uni sozlang
- Dasturiy ta'minotni joylashtirish uchun ko'rsatmalar yoki skript yozing
- Sozlangan server uchun oniy rasm yarating
- “Server shabloni” ochiladigan ro‘yxatida avval yaratilgan suratni tanlab, yangi virtual serverga buyurtma bering.
- Agar server muvaffaqiyatli yaratilgan bo'lsa, 6-bosqichda olingan materiallarni texnik yordamga o'tkazing
- Agar xato bo'lsa, siz sababni ko'mak bilan tekshirishingiz va sozlashni takrorlashingiz mumkin
Biznes egalari uchun: dasturiy ta'minotingizni taklif qiling
Agar siz VPS-da o'rnatilgan va foydalaniladigan dasturiy ta'minot ishlab chiqaruvchisi bo'lsangiz, biz sizni bozorga qo'shishimiz mumkin. Shunday qilib, biz sizga yangi mijozlar, trafik va xabardorlikni jalb qilishda yordam bera olamiz.
Izohlarda bizga qanday rasm etishmayotganini ayting?
Va biz uni o'zimiz tayyorlaymiz
Manba: www.habr.com
